|
CDI SDK
SDK for transporting chunks of data reliably and with low latency using a polled mode network driver.
|
This file contains definitions and functions for accessing libfabric 1.9 and mainline through a generic V-table interface. It is used to generate two shared libraries, each linking to a unique version of libfabric as shown below: More...
Macros | |
| #define | LOAD_LIBRARY(filename_str) |
| Macro used to dynamically load a library. | |
| #define | GET_PROC_ADDRESS(handle, name_str) |
| Macro used to get an address to function in a dynamically loaded library using its name. | |
| #define | FREE_LIBRARY(handle) |
| Macro used to free resources used by a dynmically loaded library. | |
Functions | |
| CDI_STATIC_ASSERT (FI_MAJOR_VERSION==1 &&FI_MINOR_VERSION==9, "Incorrect libfabric version.") | |
| To provide backwards compatibility with previous versions of the SDK, libfabric version 1.9.x must be used here. | |
| static struct fi_info * | fi_allocinfo_internal (void) |
| Forward reference. | |
| static CdiReturnStatus | DynamicallyLoadLibrary (const char *libfabric_filename_str, LibfabricApi **ret_api_ptr) |
| Dynamically load a version of the libfabric library. | |
| CdiReturnStatus | LoadLibfabric1_9 (LibfabricApi **ret_api_ptr) |
| Dynamically load libfabric 1.9 and return a V-table to the API used by the SDK. | |
Variables | |
| static LibfabricApi | api_vtable |
| API V-table for libfabric API. | |
| static void * | lib_handle = NULL |
| Handle for libfabric library. | |
| static struct fi_info *(* | internal_fi_dupinfo_ptr )(const struct fi_info *info) |
| Pointer to fi_dupinfo, which is dynamically loaded. | |
This file contains definitions and functions for accessing libfabric 1.9 and mainline through a generic V-table interface. It is used to generate two shared libraries, each linking to a unique version of libfabric as shown below:
libfabric_api.so -> links to libfabric 1.9 libfabric_api_new.so -> links to libfabric new
| #define FREE_LIBRARY | ( | handle | ) |
Macro used to free resources used by a dynmically loaded library.
| #define GET_PROC_ADDRESS | ( | handle, | |
| name_str ) |
Macro used to get an address to function in a dynamically loaded library using its name.
| #define LOAD_LIBRARY | ( | filename_str | ) |
Macro used to dynamically load a library.
|
static |
Dynamically load a version of the libfabric library.
| libfabric_filename_str | Pointer to name of libfabric library to load. |
| ret_api_ptr | Address where to write pointer to the V-table API. |
|
static |
Forward reference.
Wrapper function for fi_allocinfo(), which is a static line function that simply calls the non-static function fi_dupinfo(). Wrapper required here since we want to dynamically load and use libfabric's non-static functions.
| CdiReturnStatus LoadLibfabric1_9 | ( | LibfabricApi ** | ret_api_ptr | ) |
Dynamically load libfabric 1.9 and return a V-table to the API used by the SDK.
| ret_api_ptr | Address where to write pointer to the V-table API. |
|
static |
API V-table for libfabric API.