7 * Argument block types for the Portals 3.0 library
12 #include <portals/types.h>
14 /* put LIB_MAX_DISPATCH last here -- these must match the
15 assignements to the dispatch table in lib-p30/dispatch.c */
17 #define PTL_NISTATUS 2
20 #define PTL_MEATTACH 5
21 #define PTL_MEINSERT 6
22 // #define PTL_MEPREPEND 7
23 #define PTL_MEUNLINK 8
26 #define PTL_MDATTACH 11
27 // #define PTL_MDINSERT 12
29 #define PTL_MDUPDATE 14
30 #define PTL_MDUNLINK 15
31 #define PTL_EQALLOC 16
33 #define PTL_ACENTRY 18
36 #define PTL_FAILNID 21
37 #define LIB_MAX_DISPATCH 21
39 typedef struct PtlFailNid_in {
40 ptl_handle_ni_t interface;
42 unsigned int threshold;
45 typedef struct PtlFailNid_out {
49 typedef struct PtlGetId_in {
50 ptl_handle_ni_t handle_in;
53 typedef struct PtlGetId_out {
55 ptl_process_id_t id_out;
58 typedef struct PtlNIStatus_in {
59 ptl_handle_ni_t interface_in;
60 ptl_sr_index_t register_in;
63 typedef struct PtlNIStatus_out {
65 ptl_sr_value_t status_out;
69 typedef struct PtlNIDist_in {
70 ptl_handle_ni_t interface_in;
71 ptl_process_id_t process_in;
74 typedef struct PtlNIDist_out {
76 unsigned long distance_out;
80 typedef struct PtlNIDebug_in {
84 typedef struct PtlNIDebug_out {
89 typedef struct PtlMEAttach_in {
90 ptl_handle_ni_t interface_in;
91 ptl_pt_index_t index_in;
92 ptl_ins_pos_t position_in;
93 ptl_process_id_t match_id_in;
94 ptl_match_bits_t match_bits_in;
95 ptl_match_bits_t ignore_bits_in;
96 ptl_unlink_t unlink_in;
99 typedef struct PtlMEAttach_out {
101 ptl_handle_me_t handle_out;
105 typedef struct PtlMEInsert_in {
106 ptl_handle_me_t current_in;
107 ptl_process_id_t match_id_in;
108 ptl_match_bits_t match_bits_in;
109 ptl_match_bits_t ignore_bits_in;
110 ptl_unlink_t unlink_in;
111 ptl_ins_pos_t position_in;
114 typedef struct PtlMEInsert_out {
116 ptl_handle_me_t handle_out;
119 typedef struct PtlMEUnlink_in {
120 ptl_handle_me_t current_in;
121 ptl_unlink_t unlink_in;
124 typedef struct PtlMEUnlink_out {
129 typedef struct PtlTblDump_in {
133 typedef struct PtlTblDump_out {
138 typedef struct PtlMEDump_in {
139 ptl_handle_me_t current_in;
142 typedef struct PtlMEDump_out {
147 typedef struct PtlMDAttach_in {
148 ptl_handle_me_t me_in;
149 ptl_handle_eq_t eq_in;
151 ptl_unlink_t unlink_in;
154 typedef struct PtlMDAttach_out {
156 ptl_handle_md_t handle_out;
160 typedef struct PtlMDBind_in {
161 ptl_handle_ni_t ni_in;
162 ptl_handle_eq_t eq_in;
166 typedef struct PtlMDBind_out {
168 ptl_handle_md_t handle_out;
172 typedef struct PtlMDUpdate_internal_in {
173 ptl_handle_md_t md_in;
174 ptl_handle_eq_t testq_in;
175 ptl_seq_t sequence_in;
181 } PtlMDUpdate_internal_in;
183 typedef struct PtlMDUpdate_internal_out {
187 } PtlMDUpdate_internal_out;
190 typedef struct PtlMDUnlink_in {
191 ptl_handle_md_t md_in;
194 typedef struct PtlMDUnlink_out {
200 typedef struct PtlEQAlloc_in {
201 ptl_handle_ni_t ni_in;
205 int (*callback_in) (ptl_event_t * event);
208 typedef struct PtlEQAlloc_out {
210 ptl_handle_eq_t handle_out;
214 typedef struct PtlEQFree_in {
215 ptl_handle_eq_t eventq_in;
218 typedef struct PtlEQFree_out {
223 typedef struct PtlACEntry_in {
224 ptl_handle_ni_t ni_in;
225 ptl_ac_index_t index_in;
226 ptl_process_id_t match_id_in;
227 ptl_pt_index_t portal_in;
230 typedef struct PtlACEntry_out {
235 typedef struct PtlPut_in {
236 ptl_handle_md_t md_in;
237 ptl_ack_req_t ack_req_in;
238 ptl_process_id_t target_in;
239 ptl_pt_index_t portal_in;
240 ptl_ac_index_t cookie_in;
241 ptl_match_bits_t match_bits_in;
242 ptl_size_t offset_in;
243 ptl_hdr_data_t hdr_data_in;
246 typedef struct PtlPut_out {
251 typedef struct PtlGet_in {
252 ptl_handle_md_t md_in;
253 ptl_process_id_t target_in;
254 ptl_pt_index_t portal_in;
255 ptl_ac_index_t cookie_in;
256 ptl_match_bits_t match_bits_in;
257 ptl_size_t offset_in;
260 typedef struct PtlGet_out {