NewMadeleine

Documentation

« back to PM2 home.

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
 

Data Fields

nm_cond_status_t status
 status, including status bits and synchronization
 
struct nm_data_s data
 data descriptor to send/recv
 
struct nm_monitor_s monitor
 monitor attached to this request (only 1)
 
nm_req_flag_t flags
 flags given by user
 
nm_gate_t p_gate
 dest/src gate; NULL if recv from any source
 
nm_core_tag_t tag
 tag to send to/from (works in combination with tag_mask for recv)
 
nm_seq_t seq
 packet sequence number on the given tag
 
struct nm_gtag_sp_gtag
 cache for tag status on gate; NULL if tag or gate is unspecified yet
 
int err
 error status of the request
 
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)
 

Detailed Description

a generic pack/unpack request

Definition at line 482 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]

union { ... } nm_req_s

◆ checksum

uint32_t nm_req_s::checksum

data checkusm when pack was submitted- for debug only

Definition at line 502 of file nm_core_interface.h.

◆ chunk_len

nm_len_t nm_req_s::chunk_len

Definition at line 519 of file nm_core_interface.h.

◆ chunk_offset

nm_len_t nm_req_s::chunk_offset

Definition at line 518 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 507 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 486 of file nm_core_interface.h.

Referenced by nm_req_chunk_init(), and nm_req_chunk_update().

◆ done

nm_len_t nm_req_s::done

cumulated length of data sent so far

Definition at line 499 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 493 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 506 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 500 of file nm_core_interface.h.

Referenced by nm_core_pack_set_hlen().

◆ len

◆ matching

struct nm_matching_container_s nm_req_s::matching

link to store request in a matching map

Definition at line 511 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 487 of file nm_core_interface.h.

◆ n_partitions

int nm_req_s::n_partitions

Definition at line 514 of file nm_core_interface.h.

◆ offset

nm_len_t nm_req_s::offset

offset of data partially received

Definition at line 508 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 489 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 492 of file nm_core_interface.h.

◆ p_next

struct nm_req_pchunk_s* nm_req_s::p_next

Definition at line 517 of file nm_core_interface.h.

◆ [struct]

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 522 of file nm_core_interface.h.

◆ [struct]

◆ [struct]

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 501 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 525 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 509 of file nm_core_interface.h.

◆ seq

nm_seq_t nm_req_s::seq

packet sequence number on the given tag

Definition at line 491 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 485 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 490 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 510 of file nm_core_interface.h.

◆ [struct]

struct { ... } nm_req_s::unpack

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