|
| 1 | +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ |
1 | 2 | /* |
2 | 3 | * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana |
3 | 4 | * University Research and Technology |
|
13 | 14 | * Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. |
14 | 15 | * Copyright (c) 2015 Research Organization for Information Science |
15 | 16 | * and Technology (RIST). All rights reserved. |
| 17 | + * Copyright (c) 2016 Los Alamos National Security, LLC. All rights |
| 18 | + * reserved. |
16 | 19 | * $COPYRIGHT$ |
17 | 20 | * |
18 | 21 | * Additional copyrights may follow |
|
30 | 33 | #include "opal/mca/btl/btl.h" |
31 | 34 | #include "opal/mca/btl/base/base.h" |
32 | 35 |
|
| 36 | +mca_base_var_enum_flag_t *mca_btl_base_flag_enum = NULL; |
| 37 | +mca_base_var_enum_flag_t *mca_btl_base_atomic_enum = NULL; |
| 38 | + |
| 39 | +mca_base_var_enum_value_flag_t mca_btl_base_flag_enum_flags[] = { |
| 40 | + {MCA_BTL_FLAGS_SEND, "send", 0}, |
| 41 | + {MCA_BTL_FLAGS_PUT, "put", 0}, |
| 42 | + {MCA_BTL_FLAGS_GET, "get", 0}, |
| 43 | + {MCA_BTL_FLAGS_SEND_INPLACE, "inplace", 0}, |
| 44 | + {MCA_BTL_FLAGS_SIGNALED, "signaled", 0}, |
| 45 | + {MCA_BTL_FLAGS_ATOMIC_OPS, "atomics", 0}, |
| 46 | + {MCA_BTL_FLAGS_ATOMIC_FOPS, "fetching-atomics", 0}, |
| 47 | + {MCA_BTL_FLAGS_SINGLE_ADD_PROCS, "static", 0}, |
| 48 | + {MCA_BTL_FLAGS_CUDA_PUT, "cuda-put", 0}, |
| 49 | + {MCA_BTL_FLAGS_CUDA_GET, "cuda-get", 0}, |
| 50 | + {MCA_BTL_FLAGS_CUDA_COPY_ASYNC_SEND, "cuda-async-send", 0}, |
| 51 | + {MCA_BTL_FLAGS_CUDA_COPY_ASYNC_RECV, "cuda-async-recv", 0}, |
| 52 | + {MCA_BTL_FLAGS_FAILOVER_SUPPORT, "failover", 0}, |
| 53 | + {MCA_BTL_FLAGS_NEED_ACK, "need-ack", 0}, |
| 54 | + {MCA_BTL_FLAGS_NEED_CSUM, "need-csum", 0}, |
| 55 | + {MCA_BTL_FLAGS_HETEROGENEOUS_RDMA, "hetero-rdma", 0}, |
| 56 | + {0, NULL, 0} |
| 57 | +}; |
| 58 | + |
| 59 | +mca_base_var_enum_value_flag_t mca_btl_base_atomic_enum_flags[] = { |
| 60 | + {MCA_BTL_ATOMIC_SUPPORTS_ADD, "add", 0}, |
| 61 | + {MCA_BTL_ATOMIC_SUPPORTS_AND, "and", 0}, |
| 62 | + {MCA_BTL_ATOMIC_SUPPORTS_OR, "or", 0}, |
| 63 | + {MCA_BTL_ATOMIC_SUPPORTS_XOR, "xor", 0}, |
| 64 | + {MCA_BTL_ATOMIC_SUPPORTS_CSWAP, "compare-and-swap", 0}, |
| 65 | + {MCA_BTL_ATOMIC_SUPPORTS_GLOB, "global"}, |
| 66 | + {0, NULL, 0} |
| 67 | +}; |
| 68 | + |
33 | 69 | mca_btl_active_message_callback_t mca_btl_base_active_message_trigger[MCA_BTL_TAG_MAX] = {{0}}; |
34 | 70 |
|
35 | 71 | /* |
@@ -104,6 +140,9 @@ static int mca_btl_base_register(mca_base_register_flag_t flags) |
104 | 140 | MCA_BASE_VAR_SCOPE_READONLY, |
105 | 141 | &mca_btl_base_warn_component_unused); |
106 | 142 |
|
| 143 | + (void) mca_base_var_enum_create_flag ("btl_flags", mca_btl_base_flag_enum_flags, &mca_btl_base_flag_enum); |
| 144 | + (void) mca_base_var_enum_create_flag ("btl_atomic_flags", mca_btl_base_atomic_enum_flags, &mca_btl_base_atomic_enum); |
| 145 | + |
107 | 146 | return OPAL_SUCCESS; |
108 | 147 | } |
109 | 148 |
|
@@ -159,6 +198,14 @@ static int mca_btl_base_close(void) |
159 | 198 |
|
160 | 199 | OBJ_DESTRUCT(&mca_btl_base_modules_initialized); |
161 | 200 |
|
| 201 | + if (mca_btl_base_flag_enum) { |
| 202 | + OBJ_RELEASE(mca_btl_base_flag_enum); |
| 203 | + } |
| 204 | + |
| 205 | + if (mca_btl_base_atomic_enum) { |
| 206 | + OBJ_RELEASE(mca_btl_base_atomic_enum); |
| 207 | + } |
| 208 | + |
162 | 209 | #if 0 |
163 | 210 | /* restore event processing */ |
164 | 211 | opal_event_enable(); |
|
0 commit comments