OpenMPI  0.1.1
pml_bfo_rdmafrag.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2006 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2005 The Regents of the University of California.
11  * All rights reserved.
12  * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
13  * $COPYRIGHT$
14  *
15  * Additional copyrights may follow
16  *
17  * $HEADER$
18  */
19 /**
20  * @file
21  */
22 
23 #ifndef MCA_PML_BFO_RDMAFRAG_H
24 #define MCA_PML_BFO_RDMAFRAG_H
25 
26 #include "ompi/mca/btl/btl.h"
27 #include "pml_bfo_hdr.h"
28 
29 BEGIN_C_DECLS
30 
31 typedef enum {
32  MCA_PML_BFO_RDMA_PUT,
33  MCA_PML_BFO_RDMA_GET
34 } mca_pml_bfo_rdma_state_t;
35 
38  mca_bml_base_btl_t* rdma_bml;
39 #if PML_BFO
40  mca_btl_base_module_t* rdma_btl;
41 #endif /* PML_BFO */
42  mca_pml_bfo_hdr_t rdma_hdr;
43  mca_pml_bfo_rdma_state_t rdma_state;
44  size_t rdma_length;
46  void *rdma_req;
47  struct mca_bml_base_endpoint_t* rdma_ep;
48  opal_convertor_t convertor;
50  uint32_t retries;
51 };
53 
55 
56 
57 #define MCA_PML_BFO_RDMA_FRAG_ALLOC(frag,rc) \
58 do { \
59  ompi_free_list_item_t* item; \
60  OMPI_FREE_LIST_WAIT(&mca_pml_bfo.rdma_frags, item, rc); \
61  frag = (mca_pml_bfo_rdma_frag_t*)item; \
62 } while(0)
63 
64 #define MCA_PML_BFO_RDMA_FRAG_RETURN(frag) \
65 do { \
66  /* return fragment */ \
67  OMPI_FREE_LIST_RETURN(&mca_pml_bfo.rdma_frags, \
68  (ompi_free_list_item_t*)frag); \
69 } while(0)
70 
71 
72 END_C_DECLS
73 
74 #endif
75 
Union of defined hdr types.
Definition: pml_bfo_hdr.h:441
Definition: mpool.h:44
#define MCA_BTL_DES_MAX_SEGMENTS
Maximum number of allowed segments in src/dst fields of a descriptor.
Definition: btl.h:316
Byte Transfer Layer (BTL)
Definition: ompi_free_list.h:62
Structure associated w/ ompi_proc_t that contains the set of BTLs used to reach a destination...
Definition: bml.h:222
Definition: opal_convertor.h:90
Definition: pml_bfo_rdmafrag.h:36
Definition: bml.h:58
BTL module interface functions and attributes.
Definition: btl.h:786
Describes a region/segment of memory that is addressable by an BTL.
Definition: btl.h:236
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236