39 nm_req_list_init(&p_gtag->
unpacks);
41 nm_unexpected_gtag_list_init(&p_gtag->
unexpected);
58 nm_req_list_init(&p_gsession->
unpacks);
59 nm_unexpected_gate_list_init(&p_gsession->
unexpected);
84 &puk_hash_pointer_default_hash, &puk_hash_pointer_default_eq, NULL);
146#define NM_FOR_EACH_GATE(P_GATE, P_CORE) \
147 puk_list_foreach(nm_gate, P_GATE, &(P_CORE)->gate_list)
struct nm_core_event_s __attribute__
nm_tag_t tag
the user-supplied tag
#define NM_SEQ_FIRST
First sequence number.
static struct nm_matching_gsession_s * nm_matching_gsession_bytag(struct nm_gate_s *p_gate, nm_core_tag_t core_tag)
PUK_HASHTABLE_TYPE(nm_trk, void *, struct nm_trk_s *, &puk_hash_pointer_default_hash, &puk_hash_pointer_default_eq, NULL)
static void nm_matching_gsession_dtor(struct nm_matching_gsession_s *p_gsession __attribute__((unused)))
static void nm_matching_gsession_ctor(struct nm_matching_gsession_s *p_gsession, nm_core_tag_t tag __attribute__((unused)))
enum nm_gate_status_e nm_gate_status_t
nm_gate_status_e
status of a gate, used for dynamic connections
@ NM_GATE_STATUS_CONNECTING
connection establishment is in progress
@ NM_GATE_STATUS_DISCONNECTING
gate will be disconnected, do not post new request
@ NM_GATE_STATUS_DISCONNECTED
gate has been disconnected, do not use
@ NM_GATE_STATUS_INIT
gate created, not connected
@ NM_GATE_STATUS_CONNECTED
gate actually connected, may be used/polled
static void nm_gtag_dtor(struct nm_gtag_s *p_gtag __attribute__((unused)))
PUK_LIST_DECLARE_TYPE(nm_gate)
PUK_LIST_DECLARE_TYPE2(nm_active_gate, struct nm_gate_s)
static void nm_gtag_ctor(struct nm_gtag_s *p_gtag, nm_core_tag_t tag __attribute__((unused)))
PUK_LIST_CREATE_FUNCS(nm_gate)
int8_t nm_trk_id_t
ID of a track, assigned in order.
uint32_t nm_seq_t
Sequence number for packets on a given gate/tag.
enum nm_trk_kind_e nm_trk_kind_t
Core NewMadeleine structure.
Connection to another process.
puk_instance_t strategy_instance
struct puk_receptacle_NewMad_Strategy_s strategy_receptacle
Strategy components elements.
struct nm_core * p_core
NM core object.
struct nm_pkt_wrap_list_s pending_large_send
large messages waiting for RTRs- list of pw, lookup by [gate,tag,seq,chunk_offset]
PUK_LIST_LINK(nm_active_gate)
PUK_LIST_LINK(nm_gate)
link to store gates in the core gate_list
struct nm_ctrl_chunk_list_s ctrl_chunk_list
control chunks posted to the gate
struct nm_matching_gsession_table_s gsessions
table of gate/session
struct nm_trk_s * trks
Tracks opened for each driver.
int n_trks
Number of tracks opened on this gate.
struct nm_gtag_table_s tags
table of tag status
struct nm_req_chunk_list_s req_chunk_list
send reqs posted to the gate
nm_gate_status_t status
current status of the gate (connected / not connected)
struct nm_pkt_wrap_list_s pending_large_recv
large messages waiting for Track 1 (or 2) to be free- list of pw
status of tags on each gate
struct nm_unexpected_gtag_list_s unexpected
unexpected chunks pending on this gate/tag; sorted by seq number
struct nm_core_pending_event_list_s pending_events
events received out-of-order, waiting for dispatch
nm_seq_t send_seq_number
next sequence number for send
struct nm_req_list_s unpacks
posted unpacks on this gate/tag
struct nm_req_list_s pending_packs
pack reqs waiting for ACK
nm_seq_t recv_seq_number
next sequence number for recv
struct nm_unexpected_gate_list_s unexpected
unexpected chunks pending on this gate/session; sorted by seq number
struct nm_req_list_s unpacks
posted unpacks on this gate/session (any tag)
struct nm_pkt_wrap_list_s pending_pw_send
pw ready to post, waiting for track to be free
puk_instance_t instance
driver instance
struct nm_pkt_wrap_list_s active_pw_recv
active pws for recv on the given trk
struct nm_pkt_wrap_list_s active_pw_send
active pws for send on the given trk
size_t binary_url_size
size of the above url
nm_trk_id_t trk_id
numeric ID of the track; usually NM_TRK_SMALL (=0) or NM_TRK_LARGE (=1); more in case of multi-rail
struct nm_gate_s * p_gate
gate this trk belong to
void * binary_url
url for the driver on this trk
struct puk_receptacle_NewMad_minidriver_s receptacle
receptacle for the driver
struct nm_drv_s * p_drv
driver attached to the track