OpenMPI  0.1.1
mtl_psm_types.h
1 /*
2  * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2007 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-2006 The Regents of the University of California.
11  * All rights reserved.
12  * Copyright (c) 2006 QLogic Corporation. All rights reserved.
13  * Copyright (c) 2011 Los Alamos National Security, LLC.
14  * All rights reserved.
15  * $COPYRIGHT$
16  *
17  * Additional copyrights may follow
18  *
19  * $HEADER$
20  */
21 
22 #ifndef MTL_PSM_TYPES_H_HAS_BEEN_INCLUDED
23 #define MTL_PSM_TYPES_H_HAS_BEEN_INCLUDED
24 
25 #include "ompi_config.h"
26 #include "mtl_psm.h"
27 
28 #include "ompi/mca/mtl/mtl.h"
29 #include "ompi/mca/mtl/base/base.h"
30 #include "mtl_psm_endpoint.h"
31 
32 #include "psm.h"
33 
34 
35 BEGIN_C_DECLS
36 
37 /**
38  * MTL Module Interface
39  */
41  mca_mtl_base_module_t super; /**< base MTL interface */
42 
43  int32_t connect_timeout;
44 
45  uint32_t debug_level;
46  int32_t ib_unit;
47  int32_t ib_port;
48  int32_t ib_service_level;
49  uint64_t ib_pkey;
50 
51 #if PSM_VERNO >= 0x010d
52  uint64_t ib_service_id;
53  psm_path_res_t path_res_type;
54 #endif
55 
56  psm_ep_t ep;
57  psm_mq_t mq;
58  psm_epid_t epid;
59  psm_epaddr_t epaddr;
60 };
61 
63 
64 extern mca_mtl_psm_module_t ompi_mtl_psm;
65 
67  mca_mtl_base_component_2_0_0_t super; /**< base MTL component */
68 };
70 
71 OMPI_DECLSPEC mca_mtl_psm_component_t mca_mtl_psm_component;
72 
73 #define PSM_MAKE_MQTAG(ctxt,rank,utag) \
74  ( (((ctxt)&0xffffULL)<<48)| (((rank)&0xffffULL)<<32)| \
75  (((utag)&0xffffffffULL)) )
76 
77 #define PSM_GET_MQRANK(tag_u64) ((int)(((tag_u64)>>32)&0xffff))
78 #define PSM_GET_MQUTAG(tag_u64) ((int)((tag_u64)&0xffffffffULL))
79 
80 #define PSM_MAKE_TAGSEL(user_rank, user_tag, user_ctxt, tag, tagsel) \
81  do { \
82  (tagsel) = 0xffffffffffffffffULL; \
83  (tag) = PSM_MAKE_MQTAG((user_ctxt),(user_rank),(user_tag)); \
84  if ((user_tag) == MPI_ANY_TAG) { \
85  (tagsel) &= ~0x7fffffffULL; \
86  (tag) &= ~0xffffffffULL; \
87  } \
88  if ((user_rank) == MPI_ANY_SOURCE) \
89  (tagsel) &= ~0xffff00000000ULL; \
90  } while (0)
91 
92 END_C_DECLS
93 
94 #endif /* MTL_PSM_TYPES_H_HAS_BEEN_INCLUDED */
95 
Definition: mtl.h:93
MTL Module Interface.
Definition: mtl_psm_types.h:40
Matching Transport Layer.
MTL module interface functions and attributes.
Definition: mtl.h:399
Definition: mtl_psm_types.h:66
mca_mtl_base_component_2_0_0_t super
base MTL component
Definition: mtl_psm_types.h:67
mca_mtl_base_module_t super
base MTL interface
Definition: mtl_psm_types.h:41