1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
/*
* Copyright (C) 2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
* @file zel_tracing_ldrddi.cpp
*
*/
#include "ze_loader_internal.h"
#include "layers/zel_tracing_ddi.h"
namespace loader
{
#if defined(__cplusplus)
extern "C" {
#endif
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Tracer table
/// with current process' addresses
///
/// @returns
/// - ::ZE_RESULT_SUCCESS
/// - ::ZE_RESULT_ERROR_UNINITIALIZED
/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
/// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION
ZE_DLLEXPORT ze_result_t ZE_APICALL
zelGetTracerApiProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zel_tracer_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
)
{
if( loader::context->zeDrivers.size() < 1 )
return ZE_RESULT_ERROR_UNINITIALIZED;
if( nullptr == pDdiTable )
return ZE_RESULT_ERROR_INVALID_NULL_POINTER;
if( loader::context->version < version )
return ZE_RESULT_ERROR_UNSUPPORTED_VERSION;
ze_result_t result = ZE_RESULT_SUCCESS;
if(( nullptr != loader::context->tracingLayer ))
{
auto getTable = reinterpret_cast<zel_pfnGetTracerApiProcAddrTable_t>(
GET_FUNCTION_PTR(loader::context->tracingLayer, "zelGetTracerApiProcAddrTable") );
if(!getTable)
return ZE_RESULT_ERROR_UNINITIALIZED;
result = getTable( version, pDdiTable );
}
return result;
}
#if defined(__cplusplus)
};
#endif
} // namespace loader
|