OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

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 */
40 struct mca_mtl_psm_module_t {
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
62 typedef struct mca_mtl_psm_module_t mca_mtl_psm_module_t;
63
64 extern mca_mtl_psm_module_t ompi_mtl_psm;
65
66 struct mca_mtl_psm_component_t {
67 mca_mtl_base_component_2_0_0_t super; /**< base MTL component */
68 };
69 typedef struct mca_mtl_psm_component_t mca_mtl_psm_component_t;
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
mca_mtl_base_component_2_0_0_t
Definition: mtl.h:93
mca_mtl_psm_module_t
MTL Module Interface.
Definition: mtl_psm_types.h:40
mtl.h
Matching Transport Layer.
mca_mtl_base_module_t
MTL module interface functions and attributes.
Definition: mtl.h:399
mca_mtl_psm_component_t
Definition: mtl_psm_types.h:66
mca_mtl_psm_component_t::super
mca_mtl_base_component_2_0_0_t super
base MTL component
Definition: mtl_psm_types.h:67
mca_mtl_psm_module_t::super
mca_mtl_base_module_t super
base MTL interface
Definition: mtl_psm_types.h:41