Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
ucp_dyn_load.h
Go to the documentation of this file.
1/*
2 * Copyright 2025 NVIDIA Corporation
3 * SPDX-License-Identifier: Apache-2.0
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef UCP_DYN_LOAD_H
19#define UCP_DYN_LOAD_H
20
21namespace Realm {
22 namespace UCP {
23
24#ifdef REALM_UCX_DYNAMIC_LOAD
25#define UCP_FNPTR(name) (name##_fnptr)
26
27#define UCP_APIS(__op__) \
28 __op__(ucp_am_data_release); \
29 __op__(ucp_am_recv_data_nbx); \
30 __op__(ucp_am_send_nbx); \
31 __op__(ucp_cleanup); \
32 __op__(ucp_config_modify); \
33 __op__(ucp_config_read); \
34 __op__(ucp_config_release); \
35 __op__(ucp_context_query); \
36 __op__(ucp_ep_close_nbx); \
37 __op__(ucp_ep_create); \
38 __op__(ucp_ep_flush_nbx); \
39 __op__(ucp_ep_rkey_unpack); \
40 __op__(ucp_get_version); \
41 __op__(ucp_init_version); \
42 __op__(ucp_mem_map); \
43 __op__(ucp_mem_query); \
44 __op__(ucp_mem_unmap); \
45 __op__(ucp_put_nbx); \
46 __op__(ucp_request_check_status); \
47 __op__(ucp_request_free); \
48 __op__(ucp_rkey_buffer_release); \
49 __op__(ucp_rkey_destroy); \
50 __op__(ucp_rkey_pack); \
51 __op__(ucp_worker_arm); \
52 __op__(ucp_worker_create); \
53 __op__(ucp_worker_destroy); \
54 __op__(ucp_worker_get_address); \
55 __op__(ucp_worker_get_efd); \
56 __op__(ucp_worker_progress); \
57 __op__(ucp_worker_query); \
58 __op__(ucp_worker_release_address); \
59 __op__(ucp_worker_set_am_recv_handler);
60
61#define DECL_FNPTR_EXTERN(name) extern decltype(&name) name##_fnptr;
62#include <ucp/api/ucp.h>
63 UCP_APIS(DECL_FNPTR_EXTERN);
64#undef DECL_FNPTR_EXTERN
65
66#else
67#define UCP_FNPTR(name) (name)
68#endif
69
70 }; // namespace UCP
71
72}; // namespace Realm
73
74#endif
#define DECL_FNPTR_EXTERN(name, ver)
Definition cuda_internal.h:1417
Definition activemsg.h:38