1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef MCA_SPML_BASE_PUT_REQUEST_H
14 #define MCA_SPML_BASE_PUT_REQUEST_H
15
16 #include "oshmem_config.h"
17 #include "oshmem/mca/spml/spml.h"
18 #include "oshmem/mca/spml/base/spml_base_request.h"
19 #include "ompi/peruse/peruse-internal.h"
20
21 BEGIN_C_DECLS
22
23
24
25
26 struct mca_spml_base_put_request_t {
27 mca_spml_base_request_t req_base;
28 void *req_addr;
29 size_t req_bytes_packed;
30 };
31 typedef struct mca_spml_base_put_request_t mca_spml_base_put_request_t;
32
33 OSHMEM_DECLSPEC OBJ_CLASS_DECLARATION( mca_spml_base_put_request_t);
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 #define MCA_SPML_BASE_PUT_REQUEST_INIT( request, \
52 addr, \
53 count, \
54 peer, \
55 persistent) \
56 { \
57 OSHMEM_REQUEST_INIT(&(request)->req_base.req_oshmem, persistent); \
58 (request)->req_addr = addr; \
59 (request)->req_base.req_addr = addr; \
60 (request)->req_base.req_count = count; \
61 (request)->req_base.req_peer = (int32_t)peer; \
62 (request)->req_base.req_spml_complete = OPAL_INT_TO_BOOL(persistent); \
63 (request)->req_base.req_free_called = false; \
64 (request)->req_base.req_oshmem.req_status._cancelled = 0; \
65 (request)->req_bytes_packed = 0; \
66 \
67 }
68
69
70
71
72
73
74
75 #define MCA_SPML_BASE_PUT_START( request ) \
76 do { \
77 (request)->req_spml_complete = false; \
78 (request)->req_oshmem.req_complete = false; \
79 (request)->req_oshmem.req_state = OSHMEM_REQUEST_ACTIVE; \
80 (request)->req_oshmem.req_status._cancelled = 0; \
81 } while (0)
82
83
84
85
86
87
88
89 #define MCA_SPML_BASE_PUT_REQUEST_FINI( request ) \
90 do { \
91 OSHMEM_REQUEST_FINI(&(request)->req_base.req_oshmem); \
92 opal_convertor_cleanup( &((request)->req_base.req_convertor) ); \
93 } while (0)
94
95 END_C_DECLS
96
97 #endif
98