NewMadeleine

Documentation

« back to PM2 home.
Core tasks: internal asynchronous tasks.

Core tasks are defined here only for the sake of inlining, but are private. More...

Data Structures

struct  nm_matching_container_s
 containers for matching info, used for caching More...
 
struct  nm_core_task_s
 asynchronous tasks for nmad core. More...
 

Macros

#define NM_MATCHING_CONTAINER_NULL   ((struct nm_matching_container_s) { NULL })
 

Typedefs

typedef enum nm_core_task_kind_e nm_core_task_kind_t
 

Enumerations

enum  nm_core_task_kind_e {
  NM_CORE_TASK_INVALID = -1 , NM_CORE_TASK_NONE = 0 , NM_CORE_TASK_NOP = 1 , NM_CORE_TASK_UNPACK_NEXT = 2 ,
  NM_CORE_TASK_COMPLETED_PW = 3 , NM_CORE_TASK_COMPLETED_PREFETCH = 4 , NM_CORE_TASK_CANCELLED_PREFETCH = 5 , NM_CORE_TASK_PACK_SUBMISSION = 6 ,
  NM_CORE_TASK_RTR_SEND = 7 , NM_CORE_TASK_HANDLER = 8
}
 

Functions

void nm_core_task_submit_locked (struct nm_core *p_core, void(*p_handler)(void))
 lock then submit task to pending list This is used mostly for benchmarks.
 
void nm_core_task_submit_unlocked (struct nm_core *p_core, void(*p_handler)(void))
 submit task lock-free to the submission list This is used mostly for benchmarks.
 

Detailed Description

Core tasks are defined here only for the sake of inlining, but are private.

Macro Definition Documentation

◆ NM_MATCHING_CONTAINER_NULL

#define NM_MATCHING_CONTAINER_NULL   ((struct nm_matching_container_s) { NULL })

Definition at line 387 of file nm_core_interface.h.

Typedef Documentation

◆ nm_core_task_kind_t

Definition at line 377 of file nm_core_interface.h.

Enumeration Type Documentation

◆ nm_core_task_kind_e

Enumerator
NM_CORE_TASK_INVALID 
NM_CORE_TASK_NONE 
NM_CORE_TASK_NOP 

a core task that does nothing (but is not invalid nor uninitialized)

NM_CORE_TASK_UNPACK_NEXT 

try to match the next unpack on the given gate/tag/gtag

NM_CORE_TASK_COMPLETED_PW 

process a completed pw

NM_CORE_TASK_COMPLETED_PREFETCH 

prefetch completed; process RTR if received

NM_CORE_TASK_CANCELLED_PREFETCH 

prefetch cancelled; release ref on pw

NM_CORE_TASK_PACK_SUBMISSION 

process a submitted pack request

NM_CORE_TASK_RTR_SEND 

send a RTR once the large pw for recv has been posted

NM_CORE_TASK_HANDLER 

call a user handler, mainly for testing/benchmarking

Definition at line 364 of file nm_core_interface.h.

Function Documentation

◆ nm_core_task_submit_locked()

void nm_core_task_submit_locked ( struct nm_core p_core,
void(*)(void)  p_handler 
)

lock then submit task to pending list This is used mostly for benchmarks.

Internal uses may use directly nm_core_task_enqueue()

◆ nm_core_task_submit_unlocked()

void nm_core_task_submit_unlocked ( struct nm_core p_core,
void(*)(void)  p_handler 
)

submit task lock-free to the submission list This is used mostly for benchmarks.

Internal uses may use directly nm_core_task_enqueue()