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