NewMadeleine

Documentation

nm_req_s Struct Reference

a generic pack/unpack request More...

#include <nm_core_interface.h>

Collaboration diagram for nm_req_s:

Public Member Functions

 PUK_LIST_LINK (nm_req)
 link to enqueue req in pending requests lists More...
 

Data Fields

nm_cond_status_t status
 status, including status bits and synchronization More...
 
struct nm_data_s data
 data descriptor to send/recv More...
 
struct nm_monitor_s monitor
 monitor attached to this request (only 1) More...
 
nm_req_flag_t flags
 flags given by user More...
 
nm_gate_t p_gate
 dest/src gate; NULL if recv from any source More...
 
nm_core_tag_t tag
 tag to send to/from (works in combination with tag_mask for recv) More...
 
nm_seq_t seq
 packet sequence number on the given tag More...
 
struct nm_gtag_sp_gtag
 cache for tag status on gate; NULL if tag or gate is unspecified yet More...
 
int err
 error status of the request More...
 
union {
   struct {
      nm_len_t   len
 cumulated data length More...
 
      nm_len_t   done
 cumulated length of data sent so far More...
 
      nm_len_t   hlen
 length of header to send eagerly More...
 
      nm_prio_t   priority
 request priority level More...
 
      uint32_t   checksum
 data checkusm when pack was submitted- for debug only More...
 
   }   pack
 
   struct {
      nm_len_t   expected_len
 length of posted recv (may be updated if matched packet is shorter) More...
 
      nm_len_t   cumulated_len
 amount of data unpacked so far More...
 
      nm_len_t   offset
 offset of data partially received More...
 
      nm_req_seq_t   req_seq
 request sequence number used to interleave wildcard/non-wildcard requests More...
 
      nm_core_tag_t   tag_mask
 mask applied to tag for matching (only bits in mask need to match) More...
 
      struct nm_matching_container_s   matching
 link to store request in a matching map More...
 
      struct {
         int   n_partitions
 
         struct nm_req_pchunk_s {
            struct nm_req_pchunk_s *   p_next
 
            nm_len_t   chunk_offset
 
            nm_len_t   chunk_len
 
         }   p_pchunks
 unsorted list of arrived chunks; reads are lock-free, writes are within core_core_lock sections More...
 
      }   partition
 partitioned unpack, used only if NM_REQ_FLAG_UNPACK_PARTITIONED is set More...
 
      struct nm_pkt_wrap_s *   p_prefetch_pw
 packet wrapper to prefetch recv More...
 
   }   unpack
 
}; 
 
struct nm_req_chunk_s req_chunk
 preallocated chunk for the common case (single-chunk) More...
 

Detailed Description

a generic pack/unpack request

Definition at line 399 of file nm_core_interface.h.

Member Function Documentation

◆ PUK_LIST_LINK()

nm_req_s::PUK_LIST_LINK ( nm_req  )

link to enqueue req in pending requests lists

Field Documentation

◆ 

union { ... } nm_req_s::@19

◆ checksum

uint32_t nm_req_s::checksum

data checkusm when pack was submitted- for debug only

Definition at line 419 of file nm_core_interface.h.

◆ chunk_len

nm_len_t nm_req_s::chunk_len

Definition at line 436 of file nm_core_interface.h.

◆ chunk_offset

nm_len_t nm_req_s::chunk_offset

Definition at line 435 of file nm_core_interface.h.

◆ cumulated_len

nm_len_t nm_req_s::cumulated_len

amount of data unpacked so far

Definition at line 424 of file nm_core_interface.h.

Referenced by nm_sr_request_get_size().

◆ data

struct nm_data_s nm_req_s::data

data descriptor to send/recv

Definition at line 403 of file nm_core_interface.h.

Referenced by nm_req_chunk_init(), and nm_tactic_req_data_density().

◆ done

nm_len_t nm_req_s::done

cumulated length of data sent so far

Definition at line 416 of file nm_core_interface.h.

Referenced by nm_sr_request_get_size().

◆ err

int nm_req_s::err

error status of the request

Definition at line 410 of file nm_core_interface.h.

Referenced by nm_sr_request_get_error(), and nm_sr_rwait_data().

◆ expected_len

nm_len_t nm_req_s::expected_len

length of posted recv (may be updated if matched packet is shorter)

Definition at line 423 of file nm_core_interface.h.

Referenced by nm_sr_request_get_expected_size().

◆ flags

nm_req_flag_t nm_req_s::flags

◆ hlen

nm_len_t nm_req_s::hlen

length of header to send eagerly

Definition at line 417 of file nm_core_interface.h.

Referenced by nm_core_pack_set_hlen().

◆ len

nm_len_t nm_req_s::len

cumulated data length

Definition at line 415 of file nm_core_interface.h.

Referenced by nm_header_init_rdv(), nm_req_chunk_init(), nm_sr_request_get_expected_size(), and nm_tactic_req_is_short().

◆ matching

struct nm_matching_container_s nm_req_s::matching

link to store request in a matching map

Definition at line 428 of file nm_core_interface.h.

◆ monitor

struct nm_monitor_s nm_req_s::monitor

monitor attached to this request (only 1)

Definition at line 404 of file nm_core_interface.h.

◆ n_partitions

int nm_req_s::n_partitions

Definition at line 431 of file nm_core_interface.h.

◆ offset

nm_len_t nm_req_s::offset

offset of data partially received

Definition at line 425 of file nm_core_interface.h.

Referenced by nm_status_wait_all().

◆ p_gate

nm_gate_t nm_req_s::p_gate

dest/src gate; NULL if recv from any source

Definition at line 406 of file nm_core_interface.h.

Referenced by nm_sr_request_get_gate().

◆ p_gtag

struct nm_gtag_s* nm_req_s::p_gtag

cache for tag status on gate; NULL if tag or gate is unspecified yet

Definition at line 409 of file nm_core_interface.h.

◆ p_next

struct nm_req_pchunk_s* nm_req_s::p_next

Definition at line 434 of file nm_core_interface.h.

◆ 

struct { ... } ::nm_req_pchunk_s * nm_req_s::p_pchunks

unsorted list of arrived chunks; reads are lock-free, writes are within core_core_lock sections

◆ p_prefetch_pw

struct nm_pkt_wrap_s* nm_req_s::p_prefetch_pw

packet wrapper to prefetch recv

Definition at line 439 of file nm_core_interface.h.

◆ 

◆ 

struct { ... } nm_req_s::partition

partitioned unpack, used only if NM_REQ_FLAG_UNPACK_PARTITIONED is set

◆ priority

nm_prio_t nm_req_s::priority

request priority level

Definition at line 418 of file nm_core_interface.h.

Referenced by nm_header_init_rdv().

◆ req_chunk

struct nm_req_chunk_s nm_req_s::req_chunk

preallocated chunk for the common case (single-chunk)

Definition at line 442 of file nm_core_interface.h.

Referenced by nm_req_chunk_destroy().

◆ req_seq

nm_req_seq_t nm_req_s::req_seq

request sequence number used to interleave wildcard/non-wildcard requests

Definition at line 426 of file nm_core_interface.h.

◆ seq

nm_seq_t nm_req_s::seq

packet sequence number on the given tag

Definition at line 408 of file nm_core_interface.h.

Referenced by nm_header_init_rdv().

◆ status

nm_cond_status_t nm_req_s::status

status, including status bits and synchronization

Definition at line 402 of file nm_core_interface.h.

Referenced by nm_status_add(), nm_status_destroy(), nm_status_init(), nm_status_signal(), nm_status_test(), nm_status_unset(), nm_status_wait(), and nm_status_wait_all().

◆ tag

nm_core_tag_t nm_req_s::tag

tag to send to/from (works in combination with tag_mask for recv)

Definition at line 407 of file nm_core_interface.h.

Referenced by nm_header_init_rdv(), and nm_sr_request_get_tag().

◆ tag_mask

nm_core_tag_t nm_req_s::tag_mask

mask applied to tag for matching (only bits in mask need to match)

Definition at line 427 of file nm_core_interface.h.

◆ 

struct { ... } nm_req_s::unpack

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