asynchronous tasks for nmad core. More...
#include <nm_core_interface.h>

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:
- 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).
- 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 |
Referenced by nm_pw_completed_enqueue(), and nm_req_chunk_submit().
◆ [struct]
| struct { ... } nm_core_task_s::handler |
◆ kind
| enum nm_core_task_kind_e nm_core_task_s::kind |
Definition at line 402 of file nm_core_interface.h.
Referenced by nm_core_task_enqueue(), nm_pw_completed_enqueue(), nm_req_chunk_init(), and nm_req_chunk_submit().
◆ 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: