1 /*
2  * Copyright (C) by Argonne National Laboratory
3  *     See COPYRIGHT in top-level directory
4  */
5 
6 #ifndef IPC_PRE_H_INCLUDED
7 #define IPC_PRE_H_INCLUDED
8 
9 #include "../xpmem/xpmem_pre.h"
10 #include "../gpu/gpu_pre.h"
11 #include "ipc_types.h"
12 
13 /* request extension */
14 typedef struct MPIDI_IPC_am_unexp_rreq {
15     MPIDI_IPCI_ipc_handle_t ipc_handle;
16     uint64_t data_sz;
17     MPIR_Request *sreq_ptr;
18     int src_lrank;
19 } MPIDI_IPC_am_unexp_rreq_t;
20 
21 typedef struct MPIDI_IPC_am_request {
22     MPIDI_IPCI_type_t ipc_type;
23     union {
24         MPIDI_XPMEM_am_request_t xpmem;
25     } u;
26     MPIDI_IPC_am_unexp_rreq_t unexp_rreq;
27 } MPIDI_IPC_am_request_t;
28 
29 /* ctrl packet header types */
30 typedef struct MPIDI_IPC_ctrl_send_contig_lmt_rts {
31     MPIDI_IPCI_type_t ipc_type;
32     MPIDI_IPCI_ipc_handle_t ipc_handle;
33     uint64_t data_sz;           /* data size in bytes */
34     MPIR_Request *sreq_ptr;     /* send request pointer */
35     int src_lrank;              /* sender rank on local node */
36 
37     /* matching info */
38     int src_rank;
39     int tag;
40     MPIR_Context_id_t context_id;
41 } MPIDI_IPC_ctrl_send_contig_lmt_rts_t;
42 
43 typedef struct MPIDI_IPC_ctrl_send_contig_lmt_fin {
44     MPIDI_IPCI_type_t ipc_type;
45     MPIR_Request *req_ptr;
46 } MPIDI_IPC_ctrl_send_contig_lmt_fin_t;
47 
48 #endif /* IPC_PRE_H_INCLUDED */
49