26#include "nm_private_config.h"
27#include <Padico/Puk.h>
33#include <Padico/Puk-ABI.h>
35#if defined(PUKABI_ENABLE_FSYS)
36#define NM_SYS(SYMBOL) PUK_ABI_FSYS_WRAP(SYMBOL)
38#define NM_SYS(SYMBOL) SYMBOL
42# error "NMAD_BUILD flag not set while including nm_private.h. This header is not part of API and cannot be used outside of nmad."
52#include <Padico/Module.h>
74# define NMAD_CONFIG_PIOMAN 1
76# define NMAD_CONFIG_PIOMAN 0
80# define NMAD_CONFIG_HWLOC 1
82# define NMAD_CONFIG_HWLOC 0
86# define NMAD_CONFIG_PUKABI 1
88# define NMAD_CONFIG_PUKABI 0
92# define NMAD_CONFIG_DEBUG 1
94# define NMAD_CONFIG_DEBUG 0
98# define NMAD_CONFIG_NDEBUG 1
100# define NMAD_CONFIG_NDEBUG 0
104# define NMAD_CONFIG_SIMGRID 1
106# define NMAD_CONFIG_SIMGRID 0
109#define _tostring2(s) #s
110#define _tostring(s) _tostring2(s)
112#define NMAD_CONFIG_STRING \
113 " pioman = " _tostring(NMAD_CONFIG_PIOMAN) \
114 " hwloc = " _tostring(NMAD_CONFIG_HWLOC) \
115 " pukabi = " _tostring(NMAD_CONFIG_PUKABI) \
116 " debug = " _tostring(NMAD_CONFIG_DEBUG) \
117 " ndebug = " _tostring(NMAD_CONFIG_NDEBUG) \
118 " simgrid = " _tostring(NMAD_CONFIG_SIMGRID)
__PUK_SYM_INTERNAL void nm_core_gate_disconnected(struct nm_core *p_core, nm_gate_t p_gate, nm_drv_t p_drv)
__PUK_SYM_INTERNAL void nm_core_driver_flush(struct nm_core *p_core)
void nm_pw_send_poll(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_core_status_event(nm_core_t p_core, const struct nm_core_event_s *const p_event, struct nm_req_s *p_req)
__PUK_SYM_INTERNAL void nm_pw_send_unfetch(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_core_driver_connect_wait_all(struct nm_core *p_core, struct nm_drv_s *p_drv)
void nm_data_pkt_unpack(const struct nm_data_s *p_data, const struct nm_header_pkt_data_s *h, const struct nm_pkt_wrap_s *p_pw, nm_len_t chunk_offset, nm_len_t chunk_len)
unpack from pkt format to data format
__PUK_SYM_INTERNAL void nm_pw_recv_wait(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_pw_recv_progress(struct nm_pkt_wrap_s *p_pw)
void nm_pw_process_complete_send(struct nm_core *p_core, struct nm_pkt_wrap_s *p_pw)
Process a complete successful outgoing request.
__PUK_SYM_INTERNAL void nm_core_driver_close(struct nm_drv_s *p_drv)
__PUK_SYM_INTERNAL void nm_core_matching_check(struct nm_core *p_core)
void nm_pw_process_complete_recv(struct nm_core *p_core, struct nm_pkt_wrap_s *p_pw)
Process complete incoming request.
__PUK_SYM_INTERNAL void nm_rtr_handler(struct nm_pkt_wrap_s *p_rtr_pw, const struct nm_header_ctrl_rtr_s *p_header)
__PUK_SYM_INTERNAL void nm_core_driver_destroy(struct nm_drv_s *p_drv)
__PUK_SYM_INTERNAL void nm_so_schedule_clean(struct nm_core *p_core)
void nm_core_post_send(struct nm_pkt_wrap_s *p_pw, nm_gate_t p_gate, nm_trk_id_t trk_id)
void nm_pw_send_post(struct nm_pkt_wrap_s *p_pw)
void nm_pw_send_trigger(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_core_progress(struct nm_core *p_core)
__PUK_SYM_INTERNAL void nm_pw_recv_prefetch(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_core_task_flush(struct nm_core *p_core)
__PUK_SYM_INTERNAL void nm_pw_send_wait(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_pw_send_progress(struct nm_pkt_wrap_s *p_pw)
void nm_core_unpack_trigger_next(struct nm_core *p_core, struct nm_core_task_s *p_core_task)
void nm_pw_send_complete_default(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_core_events_dispatch(struct nm_core *p_core)
void nm_core_post_recv(struct nm_pkt_wrap_s *p_pw, nm_gate_t p_gate, nm_trk_id_t trk_id, nm_drv_t p_drv)
__PUK_SYM_INTERNAL void nm_drv_refill_recv(nm_drv_t p_drv, nm_gate_t p_gate)
__PUK_SYM_INTERNAL void nm_pw_send_prefetch(struct nm_pkt_wrap_s *p_pw)
__PUK_SYM_INTERNAL void nm_core_gate_disconnect(struct nm_gate_s *p_gate)
void nm_pw_send_post_default(struct nm_pkt_wrap_s *p_pw)
void nm_data_pkt_pack(struct nm_pkt_wrap_s *p_pw, nm_core_tag_t tag, nm_seq_t seq, const struct nm_data_s *p_data, nm_len_t chunk_offset, nm_len_t chunk_len, uint8_t flags)
pack data from nm_data format to pkt format
__PUK_SYM_INTERNAL void nm_core_gate_destroy(struct nm_gate_s *p_gate)
__PUK_SYM_INTERNAL void nm_pw_recv_unfetch(struct nm_pkt_wrap_s *p_pw)
without even the implied warranty of !MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU !General Public License for more details !mpif h
Definition for nmad core.
Inline functions for nmad core.
nm_tag_t tag
the user-supplied tag
Private definitions for nmad core.
Locking interface used in nm core.
Basic primitives to display info & warnings.
Definition of the driver interface.
This is the internal interface for packet wrappers, bellow the scheduler.
This is the common public header for NewMad.
int8_t nm_trk_id_t
ID of a track, assigned in order.
uint64_t nm_len_t
data length used by nmad
uint32_t nm_seq_t
Sequence number for packets on a given gate/tag.
An event, generated by the NewMad core.
asynchronous tasks for nmad core.
Core NewMadeleine structure.
a data descriptor, used to pack/unpack data from app layout to/from contiguous buffers
Connection to another process.
a generic pack/unpack request