/* * * Copyright (C) 2019-2021 Intel Corporation * * SPDX-License-Identifier: MIT * * @file zet_ddi.h * @version v1.12-r1.12.15 * */ #ifndef _ZET_DDI_H #define _ZET_DDI_H #if defined(__cplusplus) #pragma once #endif #include "zet_api.h" #if defined(__cplusplus) extern "C" { #endif /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricProgrammableGetExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricProgrammableGetExp_t)( zet_device_handle_t, uint32_t*, zet_metric_programmable_exp_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricProgrammableGetPropertiesExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricProgrammableGetPropertiesExp_t)( zet_metric_programmable_exp_handle_t, zet_metric_programmable_exp_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricProgrammableGetParamInfoExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricProgrammableGetParamInfoExp_t)( zet_metric_programmable_exp_handle_t, uint32_t*, zet_metric_programmable_param_info_exp_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricProgrammableGetParamValueInfoExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricProgrammableGetParamValueInfoExp_t)( zet_metric_programmable_exp_handle_t, uint32_t, uint32_t*, zet_metric_programmable_param_value_info_exp_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricProgrammableExp functions pointers typedef struct _zet_metric_programmable_exp_dditable_t { zet_pfnMetricProgrammableGetExp_t pfnGetExp; zet_pfnMetricProgrammableGetPropertiesExp_t pfnGetPropertiesExp; zet_pfnMetricProgrammableGetParamInfoExp_t pfnGetParamInfoExp; zet_pfnMetricProgrammableGetParamValueInfoExp_t pfnGetParamValueInfoExp; } zet_metric_programmable_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricProgrammableExp 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 zetGetMetricProgrammableExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_programmable_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricProgrammableExpProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricProgrammableExpProcAddrTable_t)( ze_api_version_t, zet_metric_programmable_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricTracerCreateExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricTracerCreateExp_t)( zet_context_handle_t, zet_device_handle_t, uint32_t, zet_metric_group_handle_t*, zet_metric_tracer_exp_desc_t*, ze_event_handle_t, zet_metric_tracer_exp_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricTracerDestroyExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricTracerDestroyExp_t)( zet_metric_tracer_exp_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricTracerEnableExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricTracerEnableExp_t)( zet_metric_tracer_exp_handle_t, ze_bool_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricTracerDisableExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricTracerDisableExp_t)( zet_metric_tracer_exp_handle_t, ze_bool_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricTracerReadDataExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricTracerReadDataExp_t)( zet_metric_tracer_exp_handle_t, size_t*, uint8_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricTracerDecodeExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricTracerDecodeExp_t)( zet_metric_decoder_exp_handle_t, size_t*, uint8_t*, uint32_t, zet_metric_handle_t*, uint32_t*, uint32_t*, uint32_t*, zet_metric_entry_exp_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricTracerExp functions pointers typedef struct _zet_metric_tracer_exp_dditable_t { zet_pfnMetricTracerCreateExp_t pfnCreateExp; zet_pfnMetricTracerDestroyExp_t pfnDestroyExp; zet_pfnMetricTracerEnableExp_t pfnEnableExp; zet_pfnMetricTracerDisableExp_t pfnDisableExp; zet_pfnMetricTracerReadDataExp_t pfnReadDataExp; zet_pfnMetricTracerDecodeExp_t pfnDecodeExp; } zet_metric_tracer_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricTracerExp 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 zetGetMetricTracerExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_tracer_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricTracerExpProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricTracerExpProcAddrTable_t)( ze_api_version_t, zet_metric_tracer_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricDecoderCreateExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricDecoderCreateExp_t)( zet_metric_tracer_exp_handle_t, zet_metric_decoder_exp_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricDecoderDestroyExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricDecoderDestroyExp_t)( zet_metric_decoder_exp_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricDecoderGetDecodableMetricsExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricDecoderGetDecodableMetricsExp_t)( zet_metric_decoder_exp_handle_t, uint32_t*, zet_metric_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricDecoderExp functions pointers typedef struct _zet_metric_decoder_exp_dditable_t { zet_pfnMetricDecoderCreateExp_t pfnCreateExp; zet_pfnMetricDecoderDestroyExp_t pfnDestroyExp; zet_pfnMetricDecoderGetDecodableMetricsExp_t pfnGetDecodableMetricsExp; } zet_metric_decoder_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricDecoderExp 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 zetGetMetricDecoderExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_decoder_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricDecoderExpProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricDecoderExpProcAddrTable_t)( ze_api_version_t, zet_metric_decoder_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDeviceGetDebugProperties typedef ze_result_t (ZE_APICALL *zet_pfnDeviceGetDebugProperties_t)( zet_device_handle_t, zet_device_debug_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Device functions pointers typedef struct _zet_device_dditable_t { zet_pfnDeviceGetDebugProperties_t pfnGetDebugProperties; } zet_device_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Device 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 zetGetDeviceProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_device_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetDeviceProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetDeviceProcAddrTable_t)( ze_api_version_t, zet_device_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDeviceGetConcurrentMetricGroupsExp typedef ze_result_t (ZE_APICALL *zet_pfnDeviceGetConcurrentMetricGroupsExp_t)( zet_device_handle_t, uint32_t, zet_metric_group_handle_t *, uint32_t *, uint32_t * ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDeviceCreateMetricGroupsFromMetricsExp typedef ze_result_t (ZE_APICALL *zet_pfnDeviceCreateMetricGroupsFromMetricsExp_t)( zet_device_handle_t, uint32_t, zet_metric_handle_t *, const char *, const char *, uint32_t *, zet_metric_group_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of DeviceExp functions pointers typedef struct _zet_device_exp_dditable_t { zet_pfnDeviceGetConcurrentMetricGroupsExp_t pfnGetConcurrentMetricGroupsExp; zet_pfnDeviceCreateMetricGroupsFromMetricsExp_t pfnCreateMetricGroupsFromMetricsExp; } zet_device_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's DeviceExp 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 zetGetDeviceExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_device_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetDeviceExpProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetDeviceExpProcAddrTable_t)( ze_api_version_t, zet_device_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetContextActivateMetricGroups typedef ze_result_t (ZE_APICALL *zet_pfnContextActivateMetricGroups_t)( zet_context_handle_t, zet_device_handle_t, uint32_t, zet_metric_group_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Context functions pointers typedef struct _zet_context_dditable_t { zet_pfnContextActivateMetricGroups_t pfnActivateMetricGroups; } zet_context_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Context 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 zetGetContextProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_context_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetContextProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetContextProcAddrTable_t)( ze_api_version_t, zet_context_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetCommandListAppendMetricStreamerMarker typedef ze_result_t (ZE_APICALL *zet_pfnCommandListAppendMetricStreamerMarker_t)( zet_command_list_handle_t, zet_metric_streamer_handle_t, uint32_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetCommandListAppendMetricQueryBegin typedef ze_result_t (ZE_APICALL *zet_pfnCommandListAppendMetricQueryBegin_t)( zet_command_list_handle_t, zet_metric_query_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetCommandListAppendMetricQueryEnd typedef ze_result_t (ZE_APICALL *zet_pfnCommandListAppendMetricQueryEnd_t)( zet_command_list_handle_t, zet_metric_query_handle_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetCommandListAppendMetricMemoryBarrier typedef ze_result_t (ZE_APICALL *zet_pfnCommandListAppendMetricMemoryBarrier_t)( zet_command_list_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of CommandList functions pointers typedef struct _zet_command_list_dditable_t { zet_pfnCommandListAppendMetricStreamerMarker_t pfnAppendMetricStreamerMarker; zet_pfnCommandListAppendMetricQueryBegin_t pfnAppendMetricQueryBegin; zet_pfnCommandListAppendMetricQueryEnd_t pfnAppendMetricQueryEnd; zet_pfnCommandListAppendMetricMemoryBarrier_t pfnAppendMetricMemoryBarrier; } zet_command_list_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's CommandList 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 zetGetCommandListProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_command_list_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetCommandListProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetCommandListProcAddrTable_t)( ze_api_version_t, zet_command_list_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetModuleGetDebugInfo typedef ze_result_t (ZE_APICALL *zet_pfnModuleGetDebugInfo_t)( zet_module_handle_t, zet_module_debug_info_format_t, size_t*, uint8_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Module functions pointers typedef struct _zet_module_dditable_t { zet_pfnModuleGetDebugInfo_t pfnGetDebugInfo; } zet_module_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Module 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 zetGetModuleProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_module_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetModuleProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetModuleProcAddrTable_t)( ze_api_version_t, zet_module_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetKernelGetProfileInfo typedef ze_result_t (ZE_APICALL *zet_pfnKernelGetProfileInfo_t)( zet_kernel_handle_t, zet_profile_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Kernel functions pointers typedef struct _zet_kernel_dditable_t { zet_pfnKernelGetProfileInfo_t pfnGetProfileInfo; } zet_kernel_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Kernel 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 zetGetKernelProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_kernel_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetKernelProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetKernelProcAddrTable_t)( ze_api_version_t, zet_kernel_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGet typedef ze_result_t (ZE_APICALL *zet_pfnMetricGet_t)( zet_metric_group_handle_t, uint32_t*, zet_metric_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGetProperties typedef ze_result_t (ZE_APICALL *zet_pfnMetricGetProperties_t)( zet_metric_handle_t, zet_metric_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Metric functions pointers typedef struct _zet_metric_dditable_t { zet_pfnMetricGet_t pfnGet; zet_pfnMetricGetProperties_t pfnGetProperties; } zet_metric_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Metric 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 zetGetMetricProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricProcAddrTable_t)( ze_api_version_t, zet_metric_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricCreateFromProgrammableExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricCreateFromProgrammableExp_t)( zet_metric_programmable_exp_handle_t, zet_metric_programmable_param_value_exp_t*, uint32_t, const char*, const char*, uint32_t*, zet_metric_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricDestroyExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricDestroyExp_t)( zet_metric_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricCreateFromProgrammableExp2 typedef ze_result_t (ZE_APICALL *zet_pfnMetricCreateFromProgrammableExp2_t)( zet_metric_programmable_exp_handle_t, uint32_t, zet_metric_programmable_param_value_exp_t*, const char*, const char*, uint32_t*, zet_metric_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricExp functions pointers typedef struct _zet_metric_exp_dditable_t { zet_pfnMetricCreateFromProgrammableExp_t pfnCreateFromProgrammableExp; zet_pfnMetricDestroyExp_t pfnDestroyExp; zet_pfnMetricCreateFromProgrammableExp2_t pfnCreateFromProgrammableExp2; } zet_metric_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricExp 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 zetGetMetricExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricExpProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricExpProcAddrTable_t)( ze_api_version_t, zet_metric_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupGet typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupGet_t)( zet_device_handle_t, uint32_t*, zet_metric_group_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupGetProperties typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupGetProperties_t)( zet_metric_group_handle_t, zet_metric_group_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupCalculateMetricValues typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupCalculateMetricValues_t)( zet_metric_group_handle_t, zet_metric_group_calculation_type_t, size_t, const uint8_t*, uint32_t*, zet_typed_value_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricGroup functions pointers typedef struct _zet_metric_group_dditable_t { zet_pfnMetricGroupGet_t pfnGet; zet_pfnMetricGroupGetProperties_t pfnGetProperties; zet_pfnMetricGroupCalculateMetricValues_t pfnCalculateMetricValues; } zet_metric_group_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricGroup 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 zetGetMetricGroupProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_group_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricGroupProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricGroupProcAddrTable_t)( ze_api_version_t, zet_metric_group_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupCalculateMultipleMetricValuesExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupCalculateMultipleMetricValuesExp_t)( zet_metric_group_handle_t, zet_metric_group_calculation_type_t, size_t, const uint8_t*, uint32_t*, uint32_t*, uint32_t*, zet_typed_value_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupGetGlobalTimestampsExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupGetGlobalTimestampsExp_t)( zet_metric_group_handle_t, ze_bool_t, uint64_t*, uint64_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupGetExportDataExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupGetExportDataExp_t)( zet_metric_group_handle_t, const uint8_t*, size_t, size_t*, uint8_t * ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupCalculateMetricExportDataExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupCalculateMetricExportDataExp_t)( ze_driver_handle_t, zet_metric_group_calculation_type_t, size_t, const uint8_t*, zet_metric_calculate_exp_desc_t*, uint32_t*, uint32_t*, uint32_t*, zet_typed_value_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupCreateExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupCreateExp_t)( zet_device_handle_t, const char*, const char*, zet_metric_group_sampling_type_flags_t, zet_metric_group_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupAddMetricExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupAddMetricExp_t)( zet_metric_group_handle_t, zet_metric_handle_t, size_t *, char* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupRemoveMetricExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupRemoveMetricExp_t)( zet_metric_group_handle_t, zet_metric_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupCloseExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupCloseExp_t)( zet_metric_group_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricGroupDestroyExp typedef ze_result_t (ZE_APICALL *zet_pfnMetricGroupDestroyExp_t)( zet_metric_group_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricGroupExp functions pointers typedef struct _zet_metric_group_exp_dditable_t { zet_pfnMetricGroupCalculateMultipleMetricValuesExp_t pfnCalculateMultipleMetricValuesExp; zet_pfnMetricGroupGetGlobalTimestampsExp_t pfnGetGlobalTimestampsExp; zet_pfnMetricGroupGetExportDataExp_t pfnGetExportDataExp; zet_pfnMetricGroupCalculateMetricExportDataExp_t pfnCalculateMetricExportDataExp; zet_pfnMetricGroupCreateExp_t pfnCreateExp; zet_pfnMetricGroupAddMetricExp_t pfnAddMetricExp; zet_pfnMetricGroupRemoveMetricExp_t pfnRemoveMetricExp; zet_pfnMetricGroupCloseExp_t pfnCloseExp; zet_pfnMetricGroupDestroyExp_t pfnDestroyExp; } zet_metric_group_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricGroupExp 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 zetGetMetricGroupExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_group_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricGroupExpProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricGroupExpProcAddrTable_t)( ze_api_version_t, zet_metric_group_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricStreamerOpen typedef ze_result_t (ZE_APICALL *zet_pfnMetricStreamerOpen_t)( zet_context_handle_t, zet_device_handle_t, zet_metric_group_handle_t, zet_metric_streamer_desc_t*, ze_event_handle_t, zet_metric_streamer_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricStreamerClose typedef ze_result_t (ZE_APICALL *zet_pfnMetricStreamerClose_t)( zet_metric_streamer_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricStreamerReadData typedef ze_result_t (ZE_APICALL *zet_pfnMetricStreamerReadData_t)( zet_metric_streamer_handle_t, uint32_t, size_t*, uint8_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricStreamer functions pointers typedef struct _zet_metric_streamer_dditable_t { zet_pfnMetricStreamerOpen_t pfnOpen; zet_pfnMetricStreamerClose_t pfnClose; zet_pfnMetricStreamerReadData_t pfnReadData; } zet_metric_streamer_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricStreamer 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 zetGetMetricStreamerProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_streamer_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricStreamerProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricStreamerProcAddrTable_t)( ze_api_version_t, zet_metric_streamer_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricQueryPoolCreate typedef ze_result_t (ZE_APICALL *zet_pfnMetricQueryPoolCreate_t)( zet_context_handle_t, zet_device_handle_t, zet_metric_group_handle_t, const zet_metric_query_pool_desc_t*, zet_metric_query_pool_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricQueryPoolDestroy typedef ze_result_t (ZE_APICALL *zet_pfnMetricQueryPoolDestroy_t)( zet_metric_query_pool_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricQueryPool functions pointers typedef struct _zet_metric_query_pool_dditable_t { zet_pfnMetricQueryPoolCreate_t pfnCreate; zet_pfnMetricQueryPoolDestroy_t pfnDestroy; } zet_metric_query_pool_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricQueryPool 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 zetGetMetricQueryPoolProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_query_pool_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricQueryPoolProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricQueryPoolProcAddrTable_t)( ze_api_version_t, zet_metric_query_pool_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricQueryCreate typedef ze_result_t (ZE_APICALL *zet_pfnMetricQueryCreate_t)( zet_metric_query_pool_handle_t, uint32_t, zet_metric_query_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricQueryDestroy typedef ze_result_t (ZE_APICALL *zet_pfnMetricQueryDestroy_t)( zet_metric_query_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricQueryReset typedef ze_result_t (ZE_APICALL *zet_pfnMetricQueryReset_t)( zet_metric_query_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetMetricQueryGetData typedef ze_result_t (ZE_APICALL *zet_pfnMetricQueryGetData_t)( zet_metric_query_handle_t, size_t*, uint8_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MetricQuery functions pointers typedef struct _zet_metric_query_dditable_t { zet_pfnMetricQueryCreate_t pfnCreate; zet_pfnMetricQueryDestroy_t pfnDestroy; zet_pfnMetricQueryReset_t pfnReset; zet_pfnMetricQueryGetData_t pfnGetData; } zet_metric_query_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MetricQuery 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 zetGetMetricQueryProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_metric_query_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetMetricQueryProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetMetricQueryProcAddrTable_t)( ze_api_version_t, zet_metric_query_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetTracerExpCreate typedef ze_result_t (ZE_APICALL *zet_pfnTracerExpCreate_t)( zet_context_handle_t, const zet_tracer_exp_desc_t*, zet_tracer_exp_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetTracerExpDestroy typedef ze_result_t (ZE_APICALL *zet_pfnTracerExpDestroy_t)( zet_tracer_exp_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetTracerExpSetPrologues typedef ze_result_t (ZE_APICALL *zet_pfnTracerExpSetPrologues_t)( zet_tracer_exp_handle_t, zet_core_callbacks_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetTracerExpSetEpilogues typedef ze_result_t (ZE_APICALL *zet_pfnTracerExpSetEpilogues_t)( zet_tracer_exp_handle_t, zet_core_callbacks_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetTracerExpSetEnabled typedef ze_result_t (ZE_APICALL *zet_pfnTracerExpSetEnabled_t)( zet_tracer_exp_handle_t, ze_bool_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of TracerExp functions pointers typedef struct _zet_tracer_exp_dditable_t { zet_pfnTracerExpCreate_t pfnCreate; zet_pfnTracerExpDestroy_t pfnDestroy; zet_pfnTracerExpSetPrologues_t pfnSetPrologues; zet_pfnTracerExpSetEpilogues_t pfnSetEpilogues; zet_pfnTracerExpSetEnabled_t pfnSetEnabled; } zet_tracer_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's TracerExp 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 zetGetTracerExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_tracer_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetTracerExpProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetTracerExpProcAddrTable_t)( ze_api_version_t, zet_tracer_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugAttach typedef ze_result_t (ZE_APICALL *zet_pfnDebugAttach_t)( zet_device_handle_t, const zet_debug_config_t*, zet_debug_session_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugDetach typedef ze_result_t (ZE_APICALL *zet_pfnDebugDetach_t)( zet_debug_session_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugReadEvent typedef ze_result_t (ZE_APICALL *zet_pfnDebugReadEvent_t)( zet_debug_session_handle_t, uint64_t, zet_debug_event_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugAcknowledgeEvent typedef ze_result_t (ZE_APICALL *zet_pfnDebugAcknowledgeEvent_t)( zet_debug_session_handle_t, const zet_debug_event_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugInterrupt typedef ze_result_t (ZE_APICALL *zet_pfnDebugInterrupt_t)( zet_debug_session_handle_t, ze_device_thread_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugResume typedef ze_result_t (ZE_APICALL *zet_pfnDebugResume_t)( zet_debug_session_handle_t, ze_device_thread_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugReadMemory typedef ze_result_t (ZE_APICALL *zet_pfnDebugReadMemory_t)( zet_debug_session_handle_t, ze_device_thread_t, const zet_debug_memory_space_desc_t*, size_t, void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugWriteMemory typedef ze_result_t (ZE_APICALL *zet_pfnDebugWriteMemory_t)( zet_debug_session_handle_t, ze_device_thread_t, const zet_debug_memory_space_desc_t*, size_t, const void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugGetRegisterSetProperties typedef ze_result_t (ZE_APICALL *zet_pfnDebugGetRegisterSetProperties_t)( zet_device_handle_t, uint32_t*, zet_debug_regset_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugReadRegisters typedef ze_result_t (ZE_APICALL *zet_pfnDebugReadRegisters_t)( zet_debug_session_handle_t, ze_device_thread_t, uint32_t, uint32_t, uint32_t, void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugWriteRegisters typedef ze_result_t (ZE_APICALL *zet_pfnDebugWriteRegisters_t)( zet_debug_session_handle_t, ze_device_thread_t, uint32_t, uint32_t, uint32_t, void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetDebugGetThreadRegisterSetProperties typedef ze_result_t (ZE_APICALL *zet_pfnDebugGetThreadRegisterSetProperties_t)( zet_debug_session_handle_t, ze_device_thread_t, uint32_t*, zet_debug_regset_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Debug functions pointers typedef struct _zet_debug_dditable_t { zet_pfnDebugAttach_t pfnAttach; zet_pfnDebugDetach_t pfnDetach; zet_pfnDebugReadEvent_t pfnReadEvent; zet_pfnDebugAcknowledgeEvent_t pfnAcknowledgeEvent; zet_pfnDebugInterrupt_t pfnInterrupt; zet_pfnDebugResume_t pfnResume; zet_pfnDebugReadMemory_t pfnReadMemory; zet_pfnDebugWriteMemory_t pfnWriteMemory; zet_pfnDebugGetRegisterSetProperties_t pfnGetRegisterSetProperties; zet_pfnDebugReadRegisters_t pfnReadRegisters; zet_pfnDebugWriteRegisters_t pfnWriteRegisters; zet_pfnDebugGetThreadRegisterSetProperties_t pfnGetThreadRegisterSetProperties; } zet_debug_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Debug 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 zetGetDebugProcAddrTable( ze_api_version_t version, ///< [in] API version requested zet_debug_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zetGetDebugProcAddrTable typedef ze_result_t (ZE_APICALL *zet_pfnGetDebugProcAddrTable_t)( ze_api_version_t, zet_debug_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Container for all DDI tables typedef struct _zet_dditable_t { zet_metric_programmable_exp_dditable_t MetricProgrammableExp; zet_metric_tracer_exp_dditable_t MetricTracerExp; zet_metric_decoder_exp_dditable_t MetricDecoderExp; zet_device_dditable_t Device; zet_device_exp_dditable_t DeviceExp; zet_context_dditable_t Context; zet_command_list_dditable_t CommandList; zet_module_dditable_t Module; zet_kernel_dditable_t Kernel; zet_metric_dditable_t Metric; zet_metric_exp_dditable_t MetricExp; zet_metric_group_dditable_t MetricGroup; zet_metric_group_exp_dditable_t MetricGroupExp; zet_metric_streamer_dditable_t MetricStreamer; zet_metric_query_pool_dditable_t MetricQueryPool; zet_metric_query_dditable_t MetricQuery; zet_tracer_exp_dditable_t TracerExp; zet_debug_dditable_t Debug; } zet_dditable_t; /// @brief Container for all DDI tables with version and tables set by the Driver typedef struct _zet_dditable_driver_t { ze_api_version_t version; uint8_t isValidFlag; zet_metric_programmable_exp_dditable_t * MetricProgrammableExp; zet_metric_tracer_exp_dditable_t * MetricTracerExp; zet_metric_decoder_exp_dditable_t * MetricDecoderExp; zet_device_dditable_t * Device; zet_device_exp_dditable_t * DeviceExp; zet_context_dditable_t * Context; zet_command_list_dditable_t * CommandList; zet_module_dditable_t * Module; zet_kernel_dditable_t * Kernel; zet_metric_dditable_t * Metric; zet_metric_exp_dditable_t * MetricExp; zet_metric_group_dditable_t * MetricGroup; zet_metric_group_exp_dditable_t * MetricGroupExp; zet_metric_streamer_dditable_t * MetricStreamer; zet_metric_query_pool_dditable_t * MetricQueryPool; zet_metric_query_dditable_t * MetricQuery; zet_tracer_exp_dditable_t * TracerExp; zet_debug_dditable_t * Debug; } zet_dditable_driver_t; #if defined(__cplusplus) } // extern "C" #endif #endif // _ZET_DDI_H