This source file includes following definitions.
- request_cancel
- request_free
- request_construct
- request_destruct
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include "ompi_config.h"
17
18 #include "ompi/request/request.h"
19 #include "ompi/mca/osc/osc.h"
20 #include "ompi/mca/osc/base/base.h"
21 #include "ompi/mca/osc/base/osc_base_obj_convert.h"
22
23 #include "osc_rdma.h"
24 #include "osc_rdma_request.h"
25
26 static int request_cancel(struct ompi_request_t *request, int complete)
27 {
28 return MPI_ERR_REQUEST;
29 }
30
31 static int request_free(struct ompi_request_t **ompi_req)
32 {
33 ompi_osc_rdma_request_t *request =
34 (ompi_osc_rdma_request_t*) *ompi_req;
35
36 if (!REQUEST_COMPLETE(&request->super)) {
37 return MPI_ERR_REQUEST;
38 }
39
40 OMPI_OSC_RDMA_REQUEST_RETURN(request);
41
42 *ompi_req = MPI_REQUEST_NULL;
43
44 return OMPI_SUCCESS;
45 }
46
47 static void request_construct(ompi_osc_rdma_request_t *request)
48 {
49 request->super.req_type = OMPI_REQUEST_WIN;
50 request->super.req_status._cancelled = 0;
51 request->super.req_free = request_free;
52 request->super.req_cancel = request_cancel;
53 request->parent_request = NULL;
54 request->to_free = NULL;
55 request->buffer = NULL;
56 request->internal = false;
57 request->cleanup = NULL;
58 request->outstanding_requests = 0;
59 OBJ_CONSTRUCT(&request->convertor, opal_convertor_t);
60 }
61
62 static void request_destruct(ompi_osc_rdma_request_t *request)
63 {
64 OBJ_DESTRUCT(&request->convertor);
65 }
66
67 OBJ_CLASS_INSTANCE(ompi_osc_rdma_request_t,
68 ompi_request_t,
69 request_construct,
70 request_destruct);