diff options
author | qrort <qrort@yandex-team.com> | 2022-11-30 23:47:12 +0300 |
---|---|---|
committer | qrort <qrort@yandex-team.com> | 2022-11-30 23:47:12 +0300 |
commit | 22f8ae0e3f5d68b92aecccdf96c1d841a0334311 (patch) | |
tree | bffa27765faf54126ad44bcafa89fadecb7a73d7 /contrib/libs/ibdrv/symbols.cpp | |
parent | 332b99e2173f0425444abb759eebcb2fafaa9209 (diff) | |
download | ydb-22f8ae0e3f5d68b92aecccdf96c1d841a0334311.tar.gz |
validate canons without yatest_common
Diffstat (limited to 'contrib/libs/ibdrv/symbols.cpp')
-rw-r--r-- | contrib/libs/ibdrv/symbols.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/contrib/libs/ibdrv/symbols.cpp b/contrib/libs/ibdrv/symbols.cpp new file mode 100644 index 0000000000..87bda96e9d --- /dev/null +++ b/contrib/libs/ibdrv/symbols.cpp @@ -0,0 +1,51 @@ +#include "symbols.h" + +#include <util/generic/singleton.h> +#include <util/generic/utility.h> +#include <util/system/dynlib.h> + +#define LOADSYM(name, type) {name = (TId<type>::R*)L->SymOptional(#name);} + +const TInfinibandSymbols* IBSym() { + struct TSymbols: TInfinibandSymbols { + TSymbols() { + L.Reset(new TDynamicLibrary("/usr/lib/libibverbs.so")); + + DOVERBS(LOADSYM) + } + + THolder<TDynamicLibrary> L; + }; + + return SingletonWithPriority<TSymbols, 100>(); +} + +const TRdmaSymbols* RDSym() { + struct TSymbols: TRdmaSymbols { + TSymbols() { + L.Reset(new TDynamicLibrary("/usr/lib/librdmacm.so")); + + DORDMA(LOADSYM) + } + + THolder<TDynamicLibrary> L; + }; + + return SingletonWithPriority<TSymbols, 100>(); +} + +const TMlx5Symbols* M5Sym() { + struct TSymbols: TMlx5Symbols { + TSymbols() { + L.Reset(new TDynamicLibrary("/usr/lib/libmlx5.so")); + + DOMLX5(LOADSYM) + } + + THolder<TDynamicLibrary> L; + }; + + return SingletonWithPriority<TSymbols, 100>(); +} + +#undef LOADSYM |