1 #ifndef PACKETFLOW_CROSSBAR_H 2 #define PACKETFLOW_CROSSBAR_H 119 typedef spkt_unordered_map<int, packet_flow_input>
input_map;
161 void resize(
int num_ports);
184 return "packet_flow_demuxer";
236 const char* name = 0);
240 if (name_)
return name_;
241 else return "crossbar";
253 #endif // PACKETFLOW_CROSSBAR_H std::vector< packet_flow_bandwidth_arbitrator * > port_arbitrators_
std::string packet_flow_name() const
virtual void start_message(message *msg)
A class describing an event.
std::map< int, std::map< int, std::list< packet_flow_payload * > > > blocked_messages_
std::map< int, std::set< int > > deadlocked_channels_
void configure_div_ports(int div, int max_port)
packet_flow_NtoM_queue(timestamp send_lat, timestamp credit_lat, double out_bw, int num_vc, int buffer_size, packet_flow_bandwidth_arbitrator *arb)
int local_slot(int port, int vc) const
void configure_offset_ports(int offset, int max_port)
void set_output(int my_outport, int dst_inport, event_handler *output)
virtual ~packet_flow_NtoM_queue()
event_handler * output_handler(packet_flow_payload *pkt)
int num_initial_credits() const
spkt_unordered_map< int, packet_flow_input > input_map
void handle_routed_payload(packet_flow_payload *pkt)
std::string output_name(packet_flow_payload *pkt)
void configure_mod_ports(int mod)
virtual void do_handle_payload(packet_flow_payload *pkt)
std::string input_name(packet_flow_payload *pkt)
The main interface for something that can respond to an event (sst_message).
packet_flow_bandwidth_arbitrator * arb_tmpl_
std::vector< packet_flow_output > output_map
virtual void handle_credit(packet_flow_credit *msg)
A basic container for time (subject to future transplant).
std::string packet_flow_name() const
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
std::list< request > buffer_request_list
std::string packet_flow_name() const
int local_port(int port) const
virtual std::string to_string() const
void send_payload(packet_flow_payload *pkt)
void init_credits(int port, int num_credits)
packet_flow_bandwidth_arbitrator *& port_arbitrator(int port)
void resize(int num_ports)
payload_queue & queue(int port, int vc)
int & credit(int port, int vc)
void configure_basic_ports(int num_ports)
std::vector< payload_queue > queue_map
std::vector< int > credit_map
void build_blocked_messages()
spkt_unordered_map< int, buffer_request_list > xbar_request_map
void set_input(int my_inport, int src_outport, event_handler *input)