NewMadeleine

Documentation

« back to PM2 home.
nm_core_private.h
Go to the documentation of this file.
1/*
2 * NewMadeleine
3 * Copyright (C) 2006-2024 (see AUTHORS file)
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 */
15
22#ifndef NM_CORE_PRIVATE_H
23#define NM_CORE_PRIVATE_H
24
25
26/* ** core ************************************************* */
27
29
31
32__PUK_SYM_INTERNAL
33void nm_core_driver_flush(struct nm_core*p_core);
34
35__PUK_SYM_INTERNAL
36void nm_core_driver_connect_wait_all(struct nm_core*p_core, struct nm_drv_s*p_drv);
37
38__PUK_SYM_INTERNAL
39void nm_core_driver_close(struct nm_drv_s*p_drv);
40
41__PUK_SYM_INTERNAL
43
44__PUK_SYM_INTERNAL
46
47__PUK_SYM_INTERNAL
48void nm_core_status_event(nm_core_t p_core, const struct nm_core_event_s*const p_event, struct nm_req_s*p_req);
49
50__PUK_SYM_INTERNAL
51void nm_core_events_dispatch(struct nm_core*p_core);
52
53__PUK_SYM_INTERNAL
54void nm_so_schedule_clean(struct nm_core*p_core);
55
56__PUK_SYM_INTERNAL
57void nm_core_progress(struct nm_core*p_core);
58
59__PUK_SYM_INTERNAL
60void nm_core_task_flush(struct nm_core*p_core);
61
62__PUK_SYM_INTERNAL
64
65__PUK_SYM_INTERNAL
67
68__PUK_SYM_INTERNAL
70
71__PUK_SYM_INTERNAL
73
74__PUK_SYM_INTERNAL
75void nm_core_matching_check(struct nm_core*p_core);
76
77__PUK_SYM_INTERNAL
78void nm_core_unpack_unexpected(struct nm_core*p_core, struct nm_req_s**pp_unpack, struct nm_unexpected_s*p_unexpected);
79
80__PUK_SYM_INTERNAL
81void nm_core_req_set_error(struct nm_core*p_core, struct nm_req_s*p_req, int err);
82
83/* ** pw send ********************************************** */
84
85__PUK_SYM_INTERNAL
87
88__PUK_SYM_INTERNAL
90
91__PUK_SYM_INTERNAL
93
95
97
99
100__PUK_SYM_INTERNAL
102
104
106
107__PUK_SYM_INTERNAL
109
112void nm_pw_process_complete_send(struct nm_core*p_core, struct nm_pkt_wrap_s*p_pw);
113
114/* ** pw recv ********************************************** */
115
116__PUK_SYM_INTERNAL
118
119__PUK_SYM_INTERNAL
121
122__PUK_SYM_INTERNAL
124
125__PUK_SYM_INTERNAL
127
130void nm_pw_process_complete_recv(struct nm_core*p_core, struct nm_pkt_wrap_s*p_pw);
131
132__PUK_SYM_INTERNAL
133void nm_rtr_handler(struct nm_gate_s*p_gate, const struct nm_header_ctrl_rtr_s*p_header, const void*p_payload);
134
135/* ** data ************************************************* */
136
140
142void 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,
144
145
146
147#endif /* NM_CORE_PRIVATE_H */
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 mpif.h:19
nm_tag_t tag
the user-supplied tag
__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)
__PUK_SYM_INTERNAL void nm_rtr_handler(struct nm_gate_s *p_gate, const struct nm_header_ctrl_rtr_s *p_header, const void *p_payload)
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_core_prefetch_progress(struct nm_core *p_core)
__PUK_SYM_INTERNAL void nm_core_unpack_unexpected(struct nm_core *p_core, struct nm_req_s **pp_unpack, struct nm_unexpected_s *p_unexpected)
__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_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)
__PUK_SYM_INTERNAL void nm_core_req_set_error(struct nm_core *p_core, struct nm_req_s *p_req, int err)
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)
__PUK_SYM_INTERNAL void nm_pw_send_pkt_fill(struct nm_pkt_wrap_s *p_pw)
nm_data_propertie_gpu_preinit & p_data
Definition nm_data.h:538
static nm_gate_t p_gate
nm_len_t chunk_len
length of this chunk
Definition nm_headers.h:4
nm_trk_id_t trk_id
index of the track relative to the gate
Definition nm_headers.h:3
nm_len_t chunk_offset
offset of the enclosed chunk
Definition nm_headers.h:4
nm_seq_t seq
sequence number
Definition nm_headers.h:2
nm_onesided_flag_t flags
int8_t nm_trk_id_t
ID of a track, assigned in order.
Definition nm_types.h:86
uint64_t nm_len_t
data length used by nmad
Definition nm_types.h:68
uint32_t nm_seq_t
Sequence number for packets on a given gate/tag.
Definition nm_types.h:102
An event, generated by the NewMad core.
An internal tag.
Core NewMadeleine structure.
Definition nm_core.h:43
a data descriptor, used to pack/unpack data from app layout to/from contiguous buffers
Definition nm_data.h:199
a driver.
Definition nm_drv.h:35
Connection to another process.
Definition nm_gate.h:104
Internal packet wrapper.
a generic pack/unpack request
a chunk of unexpected message to be stored