diff options
| author | Ross Brunton <ross@codeplay.com> | 2025-07-11 15:29:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-11 15:29:53 +0100 |
| commit | 84e15d08c26eb56ca1edf35a17652ba0456d903b (patch) | |
| tree | 4dd0599604848f48eab0e095a74c7a6b9cb8397b /offload/liboffload/src | |
| parent | a386d0e13f7c7f2f894999d9cd56d6aa8fc90d58 (diff) | |
[Offload] Add `olGetSymbolInfo[Size]` (#147962)
This mirrors the similar functions for other handles. The only
implemented info at the moment is the symbol's kind.
Diffstat (limited to 'offload/liboffload/src')
| -rw-r--r-- | offload/liboffload/src/OffloadImpl.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/offload/liboffload/src/OffloadImpl.cpp b/offload/liboffload/src/OffloadImpl.cpp index af07a6786cfe..6d98c33ffb8d 100644 --- a/offload/liboffload/src/OffloadImpl.cpp +++ b/offload/liboffload/src/OffloadImpl.cpp @@ -748,5 +748,33 @@ Error olGetSymbol_impl(ol_program_handle_t Program, const char *Name, } } +Error olGetSymbolInfoImplDetail(ol_symbol_handle_t Symbol, + ol_symbol_info_t PropName, size_t PropSize, + void *PropValue, size_t *PropSizeRet) { + InfoWriter Info(PropSize, PropValue, PropSizeRet); + + switch (PropName) { + case OL_SYMBOL_INFO_KIND: + return Info.write<ol_symbol_kind_t>(Symbol->Kind); + default: + return createOffloadError(ErrorCode::INVALID_ENUMERATION, + "olGetSymbolInfo enum '%i' is invalid", PropName); + } + + return Error::success(); +} + +Error olGetSymbolInfo_impl(ol_symbol_handle_t Symbol, ol_symbol_info_t PropName, + size_t PropSize, void *PropValue) { + + return olGetSymbolInfoImplDetail(Symbol, PropName, PropSize, PropValue, + nullptr); +} + +Error olGetSymbolInfoSize_impl(ol_symbol_handle_t Symbol, + ol_symbol_info_t PropName, size_t *PropSizeRet) { + return olGetSymbolInfoImplDetail(Symbol, PropName, 0, nullptr, PropSizeRet); +} + } // namespace offload } // namespace llvm |
