quic/qbox
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | List of all members
gs::biflow_socket< MODULE, T > Class Template Reference
Inheritance diagram for gs::biflow_socket< MODULE, T >:
Inheritance graph
[legend]
Collaboration diagram for gs::biflow_socket< MODULE, T >:
Collaboration graph
[legend]

Public Member Functions

void new_bind (biflow_bindable &other)
 
void bind_done (void)
 
const charname ()
 
 biflow_socket (sc_core::sc_module_name name)
 Construct a new biflow socket object.
 
tlm::tlm_target_socket< DEFAULT_TLM_BUSWIDTH > & get_input_socket ()
 
tlm::tlm_initiator_socket< DEFAULT_TLM_BUSWIDTH > & get_output_socket ()
 
tlm::tlm_initiator_socket< DEFAULT_TLM_BUSWIDTH > & get_input_control_socket ()
 
tlm::tlm_target_socket< DEFAULT_TLM_BUSWIDTH > & get_output_control_socket ()
 
void bind (biflow_bindable &other)
 Bind method to connect two biflow sockets.
 
void register_b_transport (MODULE *mod, void(MODULE::*cb)(tlm::tlm_generic_payload &, sc_core::sc_time &))
 Register b_transport to be called whenever data is received from the socket.
 
void can_receive_more (int i)
 can_receive_more
 
void can_receive_set (int i)
 can_receive_set
 
void can_receive_any ()
 can_receive_any Allow unlimited items to arrive.
 
void enqueue (T data)
 enqueue Enqueue data to be sent (unlimited queue size) NOTE: Thread safe.
 
void set_default_txn (tlm::tlm_generic_payload &txn)
 set_default_txn set transaction parameters (command, address and data_length)
 
void force_send (tlm::tlm_generic_payload &txn)
 force_send force send a transaction
 
void reset ()
 reset Clear the current send queue. NOTE: Thread safe.
 

Public Attributes

tlm_utils::simple_target_socket< MODULE, DEFAULT_TLM_BUSWIDTH > input_socket
 
tlm_utils::simple_initiator_socket< biflow_socket, DEFAULT_TLM_BUSWIDTH > input_control_socket
 
tlm_utils::simple_initiator_socket< biflow_socket, DEFAULT_TLM_BUSWIDTH > output_socket
 
tlm_utils::simple_target_socket< biflow_socket, DEFAULT_TLM_BUSWIDTH > output_control_socket
 

Constructor & Destructor Documentation

◆ biflow_socket()

template<class MODULE , class T = uint8_t>
gs::biflow_socket< MODULE, T >::biflow_socket ( sc_core::sc_module_name  name)
inline

Construct a new biflow socket object.

Parameters
name

Member Function Documentation

◆ bind()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::bind ( biflow_bindable other)
inlinevirtual

Bind method to connect two biflow sockets.

Template Parameters
M
Parameters
other: other socket

Implements gs::biflow_bindable.

◆ bind_done()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::bind_done ( void  )
inlinevirtual

Implements gs::biflow_bindable.

◆ can_receive_more()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::can_receive_more ( int  i)
inline

can_receive_more

Parameters
inumber of additional items that can now be received.

◆ can_receive_set()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::can_receive_set ( int  i)
inline

can_receive_set

Parameters
inumber of items that can now be received.

Setting this to zero will have the side effect of async_detach_suspending the other ends async_event. Setting this to NON-zero will have the side effect of async_attach_suspending the other ends async_event.

◆ enqueue()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::enqueue ( T  data)
inline

enqueue Enqueue data to be sent (unlimited queue size) NOTE: Thread safe.

Parameters
data

◆ force_send()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::force_send ( tlm::tlm_generic_payload &  txn)
inline

force_send force send a transaction

Parameters
txn

◆ get_input_control_socket()

template<class MODULE , class T = uint8_t>
tlm::tlm_initiator_socket< DEFAULT_TLM_BUSWIDTH > & gs::biflow_socket< MODULE, T >::get_input_control_socket ( )
inlinevirtual

Implements gs::biflow_bindable.

◆ get_input_socket()

template<class MODULE , class T = uint8_t>
tlm::tlm_target_socket< DEFAULT_TLM_BUSWIDTH > & gs::biflow_socket< MODULE, T >::get_input_socket ( )
inlinevirtual

Implements gs::biflow_bindable.

◆ get_output_control_socket()

template<class MODULE , class T = uint8_t>
tlm::tlm_target_socket< DEFAULT_TLM_BUSWIDTH > & gs::biflow_socket< MODULE, T >::get_output_control_socket ( )
inlinevirtual

Implements gs::biflow_bindable.

◆ get_output_socket()

template<class MODULE , class T = uint8_t>
tlm::tlm_initiator_socket< DEFAULT_TLM_BUSWIDTH > & gs::biflow_socket< MODULE, T >::get_output_socket ( )
inlinevirtual

Implements gs::biflow_bindable.

◆ name()

template<class MODULE , class T = uint8_t>
const char * gs::biflow_socket< MODULE, T >::name ( void  )
inlinevirtual

Implements gs::biflow_bindable.

◆ new_bind()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::new_bind ( biflow_bindable other)
inlinevirtual

Implements gs::biflow_bindable.

◆ register_b_transport()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::register_b_transport ( MODULE mod,
void(MODULE::*)(tlm::tlm_generic_payload &, sc_core::sc_time &)  cb 
)
inline

Register b_transport to be called whenever data is received from the socket.

NOTE: this strips the 'quantum time' from the normal b_transport as it makes no sense in this case.

Parameters
mod
cb

◆ set_default_txn()

template<class MODULE , class T = uint8_t>
void gs::biflow_socket< MODULE, T >::set_default_txn ( tlm::tlm_generic_payload &  txn)
inline

set_default_txn set transaction parameters (command, address and data_length)

Parameters
txn

The documentation for this class was generated from the following file: