NewMadeleine

Documentation

« back to PM2 home.

asynchronous tasks for nmad core. More...

#include <nm_core_interface.h>

Collaboration diagram for nm_core_task_s:

Data Fields

enum nm_core_task_kind_e kind
 
union { 
 
   struct { 
 
      struct nm_req_s *   p_unpack 
 
      struct nm_unexpected_s *   p_unexpected 
 
   }   unpack_next 
 
   struct { 
 
      struct nm_pkt_wrap_s *   p_pw 
 
   }   completed_pw 
 
   struct { 
 
      struct nm_pkt_wrap_s *   p_pw 
 
   }   completed_prefetch 
 
   struct { 
 
      struct nm_pkt_wrap_s *   p_pw 
 
   }   cancelled_prefetch 
 
   struct { 
 
      struct nm_req_chunk_s *   p_req_chunk 
 
   }   pack_submission 
 
   struct { 
 
      struct nm_pkt_wrap_s *   p_pw 
 
   }   rtr_send 
 
   struct { 
 
      void(*   p_handler )(void) 
 
   }   handler 
 
content 
 

Detailed Description

asynchronous tasks for nmad core.

These tasks are sheduled asynchronously and not immediately in 2 cases:

  1. they need the core lock but are scheduled from a code that doesn't hold the lock (we avoid to acquire/release the lock too often).
  2. they trigger the processing of one more request or packet after a completion, which could lead to unbounded recursion. Tasks are comprised of a kind and a parameter. They are combined in a struct preallocated in the parameter.

Definition at line 400 of file nm_core_interface.h.

Field Documentation

◆ [struct]

struct { ... } nm_core_task_s::cancelled_prefetch

◆ [struct]

struct { ... } nm_core_task_s::completed_prefetch

◆ [struct]

struct { ... } nm_core_task_s::completed_pw

Referenced by nm_pw_completed_enqueue().

◆ [union]

union { ... } nm_core_task_s::content

◆ [struct]

struct { ... } nm_core_task_s::handler

◆ kind

◆ p_handler

void(* nm_core_task_s::p_handler) (void)

Definition at line 432 of file nm_core_interface.h.

◆ p_pw

struct nm_pkt_wrap_s* nm_core_task_s::p_pw

Definition at line 412 of file nm_core_interface.h.

Referenced by nm_pw_completed_enqueue().

◆ p_req_chunk

struct nm_req_chunk_s* nm_core_task_s::p_req_chunk

Definition at line 424 of file nm_core_interface.h.

Referenced by nm_req_chunk_submit().

◆ p_unexpected

struct nm_unexpected_s* nm_core_task_s::p_unexpected

Definition at line 408 of file nm_core_interface.h.

◆ p_unpack

struct nm_req_s* nm_core_task_s::p_unpack

Definition at line 407 of file nm_core_interface.h.

◆ [struct]

struct { ... } nm_core_task_s::pack_submission

Referenced by nm_req_chunk_submit().

◆ [struct]

struct { ... } nm_core_task_s::rtr_send

◆ [struct]

struct { ... } nm_core_task_s::unpack_next

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