Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

2029 lines
82 KiB
C

/*
*
* Copyright (C) 2019-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
* @file zes_ddi.h
* @version v1.12-r1.12.15
*
*/
#ifndef _ZES_DDI_H
#define _ZES_DDI_H
#if defined(__cplusplus)
#pragma once
#endif
#include "zes_api.h"
#if defined(__cplusplus)
extern "C" {
#endif
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesInit
typedef ze_result_t (ZE_APICALL *zes_pfnInit_t)(
zes_init_flags_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Global functions pointers
typedef struct _zes_global_dditable_t
{
zes_pfnInit_t pfnInit;
} zes_global_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Global 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
zesGetGlobalProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_global_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetGlobalProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetGlobalProcAddrTable_t)(
ze_api_version_t,
zes_global_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGetProperties_t)(
zes_device_handle_t,
zes_device_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGetState
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGetState_t)(
zes_device_handle_t,
zes_device_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceReset
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceReset_t)(
zes_device_handle_t,
ze_bool_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceProcessesGetState
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceProcessesGetState_t)(
zes_device_handle_t,
uint32_t*,
zes_process_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDevicePciGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnDevicePciGetProperties_t)(
zes_device_handle_t,
zes_pci_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDevicePciGetState
typedef ze_result_t (ZE_APICALL *zes_pfnDevicePciGetState_t)(
zes_device_handle_t,
zes_pci_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDevicePciGetBars
typedef ze_result_t (ZE_APICALL *zes_pfnDevicePciGetBars_t)(
zes_device_handle_t,
uint32_t*,
zes_pci_bar_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDevicePciGetStats
typedef ze_result_t (ZE_APICALL *zes_pfnDevicePciGetStats_t)(
zes_device_handle_t,
zes_pci_stats_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumDiagnosticTestSuites
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumDiagnosticTestSuites_t)(
zes_device_handle_t,
uint32_t*,
zes_diag_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumEngineGroups
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumEngineGroups_t)(
zes_device_handle_t,
uint32_t*,
zes_engine_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEventRegister
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEventRegister_t)(
zes_device_handle_t,
zes_event_type_flags_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumFabricPorts
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumFabricPorts_t)(
zes_device_handle_t,
uint32_t*,
zes_fabric_port_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumFans
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumFans_t)(
zes_device_handle_t,
uint32_t*,
zes_fan_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumFirmwares
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumFirmwares_t)(
zes_device_handle_t,
uint32_t*,
zes_firmware_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumFrequencyDomains
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumFrequencyDomains_t)(
zes_device_handle_t,
uint32_t*,
zes_freq_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumLeds
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumLeds_t)(
zes_device_handle_t,
uint32_t*,
zes_led_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumMemoryModules
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumMemoryModules_t)(
zes_device_handle_t,
uint32_t*,
zes_mem_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumPerformanceFactorDomains
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumPerformanceFactorDomains_t)(
zes_device_handle_t,
uint32_t*,
zes_perf_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumPowerDomains
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumPowerDomains_t)(
zes_device_handle_t,
uint32_t*,
zes_pwr_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGetCardPowerDomain
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGetCardPowerDomain_t)(
zes_device_handle_t,
zes_pwr_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumPsus
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumPsus_t)(
zes_device_handle_t,
uint32_t*,
zes_psu_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumRasErrorSets
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumRasErrorSets_t)(
zes_device_handle_t,
uint32_t*,
zes_ras_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumSchedulers
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumSchedulers_t)(
zes_device_handle_t,
uint32_t*,
zes_sched_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumStandbyDomains
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumStandbyDomains_t)(
zes_device_handle_t,
uint32_t*,
zes_standby_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumTemperatureSensors
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumTemperatureSensors_t)(
zes_device_handle_t,
uint32_t*,
zes_temp_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEccAvailable
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEccAvailable_t)(
zes_device_handle_t,
ze_bool_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEccConfigurable
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEccConfigurable_t)(
zes_device_handle_t,
ze_bool_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGetEccState
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGetEccState_t)(
zes_device_handle_t,
zes_device_ecc_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceSetEccState
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceSetEccState_t)(
zes_device_handle_t,
const zes_device_ecc_desc_t*,
zes_device_ecc_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGet
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGet_t)(
zes_driver_handle_t,
uint32_t*,
zes_device_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceSetOverclockWaiver
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceSetOverclockWaiver_t)(
zes_device_handle_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGetOverclockDomains
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGetOverclockDomains_t)(
zes_device_handle_t,
uint32_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGetOverclockControls
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGetOverclockControls_t)(
zes_device_handle_t,
zes_overclock_domain_t,
uint32_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceResetOverclockSettings
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceResetOverclockSettings_t)(
zes_device_handle_t,
ze_bool_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceReadOverclockState
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceReadOverclockState_t)(
zes_device_handle_t,
zes_overclock_mode_t*,
ze_bool_t*,
ze_bool_t*,
zes_pending_action_t*,
ze_bool_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumOverclockDomains
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumOverclockDomains_t)(
zes_device_handle_t,
uint32_t*,
zes_overclock_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceResetExt
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceResetExt_t)(
zes_device_handle_t,
zes_reset_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Device functions pointers
typedef struct _zes_device_dditable_t
{
zes_pfnDeviceGetProperties_t pfnGetProperties;
zes_pfnDeviceGetState_t pfnGetState;
zes_pfnDeviceReset_t pfnReset;
zes_pfnDeviceProcessesGetState_t pfnProcessesGetState;
zes_pfnDevicePciGetProperties_t pfnPciGetProperties;
zes_pfnDevicePciGetState_t pfnPciGetState;
zes_pfnDevicePciGetBars_t pfnPciGetBars;
zes_pfnDevicePciGetStats_t pfnPciGetStats;
zes_pfnDeviceEnumDiagnosticTestSuites_t pfnEnumDiagnosticTestSuites;
zes_pfnDeviceEnumEngineGroups_t pfnEnumEngineGroups;
zes_pfnDeviceEventRegister_t pfnEventRegister;
zes_pfnDeviceEnumFabricPorts_t pfnEnumFabricPorts;
zes_pfnDeviceEnumFans_t pfnEnumFans;
zes_pfnDeviceEnumFirmwares_t pfnEnumFirmwares;
zes_pfnDeviceEnumFrequencyDomains_t pfnEnumFrequencyDomains;
zes_pfnDeviceEnumLeds_t pfnEnumLeds;
zes_pfnDeviceEnumMemoryModules_t pfnEnumMemoryModules;
zes_pfnDeviceEnumPerformanceFactorDomains_t pfnEnumPerformanceFactorDomains;
zes_pfnDeviceEnumPowerDomains_t pfnEnumPowerDomains;
zes_pfnDeviceGetCardPowerDomain_t pfnGetCardPowerDomain;
zes_pfnDeviceEnumPsus_t pfnEnumPsus;
zes_pfnDeviceEnumRasErrorSets_t pfnEnumRasErrorSets;
zes_pfnDeviceEnumSchedulers_t pfnEnumSchedulers;
zes_pfnDeviceEnumStandbyDomains_t pfnEnumStandbyDomains;
zes_pfnDeviceEnumTemperatureSensors_t pfnEnumTemperatureSensors;
zes_pfnDeviceEccAvailable_t pfnEccAvailable;
zes_pfnDeviceEccConfigurable_t pfnEccConfigurable;
zes_pfnDeviceGetEccState_t pfnGetEccState;
zes_pfnDeviceSetEccState_t pfnSetEccState;
zes_pfnDeviceGet_t pfnGet;
zes_pfnDeviceSetOverclockWaiver_t pfnSetOverclockWaiver;
zes_pfnDeviceGetOverclockDomains_t pfnGetOverclockDomains;
zes_pfnDeviceGetOverclockControls_t pfnGetOverclockControls;
zes_pfnDeviceResetOverclockSettings_t pfnResetOverclockSettings;
zes_pfnDeviceReadOverclockState_t pfnReadOverclockState;
zes_pfnDeviceEnumOverclockDomains_t pfnEnumOverclockDomains;
zes_pfnDeviceResetExt_t pfnResetExt;
} zes_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
zesGetDeviceProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_device_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetDeviceProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetDeviceProcAddrTable_t)(
ze_api_version_t,
zes_device_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceGetSubDevicePropertiesExp
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceGetSubDevicePropertiesExp_t)(
zes_device_handle_t,
uint32_t*,
zes_subdevice_exp_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumActiveVFExp
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumActiveVFExp_t)(
zes_device_handle_t,
uint32_t*,
zes_vf_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDeviceEnumEnabledVFExp
typedef ze_result_t (ZE_APICALL *zes_pfnDeviceEnumEnabledVFExp_t)(
zes_device_handle_t,
uint32_t*,
zes_vf_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of DeviceExp functions pointers
typedef struct _zes_device_exp_dditable_t
{
zes_pfnDeviceGetSubDevicePropertiesExp_t pfnGetSubDevicePropertiesExp;
zes_pfnDeviceEnumActiveVFExp_t pfnEnumActiveVFExp;
zes_pfnDeviceEnumEnabledVFExp_t pfnEnumEnabledVFExp;
} zes_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
zesGetDeviceExpProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_device_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetDeviceExpProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetDeviceExpProcAddrTable_t)(
ze_api_version_t,
zes_device_exp_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDriverEventListen
typedef ze_result_t (ZE_APICALL *zes_pfnDriverEventListen_t)(
ze_driver_handle_t,
uint32_t,
uint32_t,
zes_device_handle_t*,
uint32_t*,
zes_event_type_flags_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDriverEventListenEx
typedef ze_result_t (ZE_APICALL *zes_pfnDriverEventListenEx_t)(
ze_driver_handle_t,
uint64_t,
uint32_t,
zes_device_handle_t*,
uint32_t*,
zes_event_type_flags_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDriverGet
typedef ze_result_t (ZE_APICALL *zes_pfnDriverGet_t)(
uint32_t*,
zes_driver_handle_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDriverGetExtensionProperties
typedef ze_result_t (ZE_APICALL *zes_pfnDriverGetExtensionProperties_t)(
zes_driver_handle_t,
uint32_t*,
zes_driver_extension_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDriverGetExtensionFunctionAddress
typedef ze_result_t (ZE_APICALL *zes_pfnDriverGetExtensionFunctionAddress_t)(
zes_driver_handle_t,
const char*,
void**
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Driver functions pointers
typedef struct _zes_driver_dditable_t
{
zes_pfnDriverEventListen_t pfnEventListen;
zes_pfnDriverEventListenEx_t pfnEventListenEx;
zes_pfnDriverGet_t pfnGet;
zes_pfnDriverGetExtensionProperties_t pfnGetExtensionProperties;
zes_pfnDriverGetExtensionFunctionAddress_t pfnGetExtensionFunctionAddress;
} zes_driver_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Driver 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
zesGetDriverProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_driver_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetDriverProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetDriverProcAddrTable_t)(
ze_api_version_t,
zes_driver_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDriverGetDeviceByUuidExp
typedef ze_result_t (ZE_APICALL *zes_pfnDriverGetDeviceByUuidExp_t)(
zes_driver_handle_t,
zes_uuid_t,
zes_device_handle_t*,
ze_bool_t*,
uint32_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of DriverExp functions pointers
typedef struct _zes_driver_exp_dditable_t
{
zes_pfnDriverGetDeviceByUuidExp_t pfnGetDeviceByUuidExp;
} zes_driver_exp_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's DriverExp 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
zesGetDriverExpProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_driver_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetDriverExpProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetDriverExpProcAddrTable_t)(
ze_api_version_t,
zes_driver_exp_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockGetDomainProperties
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockGetDomainProperties_t)(
zes_overclock_handle_t,
zes_overclock_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockGetDomainVFProperties
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockGetDomainVFProperties_t)(
zes_overclock_handle_t,
zes_vf_property_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockGetDomainControlProperties
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockGetDomainControlProperties_t)(
zes_overclock_handle_t,
zes_overclock_control_t,
zes_control_property_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockGetControlCurrentValue
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockGetControlCurrentValue_t)(
zes_overclock_handle_t,
zes_overclock_control_t,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockGetControlPendingValue
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockGetControlPendingValue_t)(
zes_overclock_handle_t,
zes_overclock_control_t,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockSetControlUserValue
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockSetControlUserValue_t)(
zes_overclock_handle_t,
zes_overclock_control_t,
double,
zes_pending_action_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockGetControlState
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockGetControlState_t)(
zes_overclock_handle_t,
zes_overclock_control_t,
zes_control_state_t*,
zes_pending_action_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockGetVFPointValues
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockGetVFPointValues_t)(
zes_overclock_handle_t,
zes_vf_type_t,
zes_vf_array_type_t,
uint32_t,
uint32_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesOverclockSetVFPointValues
typedef ze_result_t (ZE_APICALL *zes_pfnOverclockSetVFPointValues_t)(
zes_overclock_handle_t,
zes_vf_type_t,
uint32_t,
uint32_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Overclock functions pointers
typedef struct _zes_overclock_dditable_t
{
zes_pfnOverclockGetDomainProperties_t pfnGetDomainProperties;
zes_pfnOverclockGetDomainVFProperties_t pfnGetDomainVFProperties;
zes_pfnOverclockGetDomainControlProperties_t pfnGetDomainControlProperties;
zes_pfnOverclockGetControlCurrentValue_t pfnGetControlCurrentValue;
zes_pfnOverclockGetControlPendingValue_t pfnGetControlPendingValue;
zes_pfnOverclockSetControlUserValue_t pfnSetControlUserValue;
zes_pfnOverclockGetControlState_t pfnGetControlState;
zes_pfnOverclockGetVFPointValues_t pfnGetVFPointValues;
zes_pfnOverclockSetVFPointValues_t pfnSetVFPointValues;
} zes_overclock_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Overclock 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
zesGetOverclockProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_overclock_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetOverclockProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetOverclockProcAddrTable_t)(
ze_api_version_t,
zes_overclock_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerGetProperties_t)(
zes_sched_handle_t,
zes_sched_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerGetCurrentMode
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerGetCurrentMode_t)(
zes_sched_handle_t,
zes_sched_mode_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerGetTimeoutModeProperties
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerGetTimeoutModeProperties_t)(
zes_sched_handle_t,
ze_bool_t,
zes_sched_timeout_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerGetTimesliceModeProperties
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerGetTimesliceModeProperties_t)(
zes_sched_handle_t,
ze_bool_t,
zes_sched_timeslice_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerSetTimeoutMode
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerSetTimeoutMode_t)(
zes_sched_handle_t,
zes_sched_timeout_properties_t*,
ze_bool_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerSetTimesliceMode
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerSetTimesliceMode_t)(
zes_sched_handle_t,
zes_sched_timeslice_properties_t*,
ze_bool_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerSetExclusiveMode
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerSetExclusiveMode_t)(
zes_sched_handle_t,
ze_bool_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesSchedulerSetComputeUnitDebugMode
typedef ze_result_t (ZE_APICALL *zes_pfnSchedulerSetComputeUnitDebugMode_t)(
zes_sched_handle_t,
ze_bool_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Scheduler functions pointers
typedef struct _zes_scheduler_dditable_t
{
zes_pfnSchedulerGetProperties_t pfnGetProperties;
zes_pfnSchedulerGetCurrentMode_t pfnGetCurrentMode;
zes_pfnSchedulerGetTimeoutModeProperties_t pfnGetTimeoutModeProperties;
zes_pfnSchedulerGetTimesliceModeProperties_t pfnGetTimesliceModeProperties;
zes_pfnSchedulerSetTimeoutMode_t pfnSetTimeoutMode;
zes_pfnSchedulerSetTimesliceMode_t pfnSetTimesliceMode;
zes_pfnSchedulerSetExclusiveMode_t pfnSetExclusiveMode;
zes_pfnSchedulerSetComputeUnitDebugMode_t pfnSetComputeUnitDebugMode;
} zes_scheduler_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Scheduler 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
zesGetSchedulerProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_scheduler_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetSchedulerProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetSchedulerProcAddrTable_t)(
ze_api_version_t,
zes_scheduler_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPerformanceFactorGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnPerformanceFactorGetProperties_t)(
zes_perf_handle_t,
zes_perf_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPerformanceFactorGetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnPerformanceFactorGetConfig_t)(
zes_perf_handle_t,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPerformanceFactorSetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnPerformanceFactorSetConfig_t)(
zes_perf_handle_t,
double
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of PerformanceFactor functions pointers
typedef struct _zes_performance_factor_dditable_t
{
zes_pfnPerformanceFactorGetProperties_t pfnGetProperties;
zes_pfnPerformanceFactorGetConfig_t pfnGetConfig;
zes_pfnPerformanceFactorSetConfig_t pfnSetConfig;
} zes_performance_factor_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's PerformanceFactor 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
zesGetPerformanceFactorProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_performance_factor_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetPerformanceFactorProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetPerformanceFactorProcAddrTable_t)(
ze_api_version_t,
zes_performance_factor_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnPowerGetProperties_t)(
zes_pwr_handle_t,
zes_power_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerGetEnergyCounter
typedef ze_result_t (ZE_APICALL *zes_pfnPowerGetEnergyCounter_t)(
zes_pwr_handle_t,
zes_power_energy_counter_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerGetLimits
typedef ze_result_t (ZE_APICALL *zes_pfnPowerGetLimits_t)(
zes_pwr_handle_t,
zes_power_sustained_limit_t*,
zes_power_burst_limit_t*,
zes_power_peak_limit_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerSetLimits
typedef ze_result_t (ZE_APICALL *zes_pfnPowerSetLimits_t)(
zes_pwr_handle_t,
const zes_power_sustained_limit_t*,
const zes_power_burst_limit_t*,
const zes_power_peak_limit_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerGetEnergyThreshold
typedef ze_result_t (ZE_APICALL *zes_pfnPowerGetEnergyThreshold_t)(
zes_pwr_handle_t,
zes_energy_threshold_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerSetEnergyThreshold
typedef ze_result_t (ZE_APICALL *zes_pfnPowerSetEnergyThreshold_t)(
zes_pwr_handle_t,
double
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerGetLimitsExt
typedef ze_result_t (ZE_APICALL *zes_pfnPowerGetLimitsExt_t)(
zes_pwr_handle_t,
uint32_t*,
zes_power_limit_ext_desc_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPowerSetLimitsExt
typedef ze_result_t (ZE_APICALL *zes_pfnPowerSetLimitsExt_t)(
zes_pwr_handle_t,
uint32_t*,
zes_power_limit_ext_desc_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Power functions pointers
typedef struct _zes_power_dditable_t
{
zes_pfnPowerGetProperties_t pfnGetProperties;
zes_pfnPowerGetEnergyCounter_t pfnGetEnergyCounter;
zes_pfnPowerGetLimits_t pfnGetLimits;
zes_pfnPowerSetLimits_t pfnSetLimits;
zes_pfnPowerGetEnergyThreshold_t pfnGetEnergyThreshold;
zes_pfnPowerSetEnergyThreshold_t pfnSetEnergyThreshold;
zes_pfnPowerGetLimitsExt_t pfnGetLimitsExt;
zes_pfnPowerSetLimitsExt_t pfnSetLimitsExt;
} zes_power_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Power 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
zesGetPowerProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_power_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetPowerProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetPowerProcAddrTable_t)(
ze_api_version_t,
zes_power_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyGetProperties_t)(
zes_freq_handle_t,
zes_freq_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyGetAvailableClocks
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyGetAvailableClocks_t)(
zes_freq_handle_t,
uint32_t*,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyGetRange
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyGetRange_t)(
zes_freq_handle_t,
zes_freq_range_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencySetRange
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencySetRange_t)(
zes_freq_handle_t,
const zes_freq_range_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyGetState
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyGetState_t)(
zes_freq_handle_t,
zes_freq_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyGetThrottleTime
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyGetThrottleTime_t)(
zes_freq_handle_t,
zes_freq_throttle_time_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcGetCapabilities
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcGetCapabilities_t)(
zes_freq_handle_t,
zes_oc_capabilities_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcGetFrequencyTarget
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcGetFrequencyTarget_t)(
zes_freq_handle_t,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcSetFrequencyTarget
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcSetFrequencyTarget_t)(
zes_freq_handle_t,
double
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcGetVoltageTarget
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcGetVoltageTarget_t)(
zes_freq_handle_t,
double*,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcSetVoltageTarget
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcSetVoltageTarget_t)(
zes_freq_handle_t,
double,
double
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcSetMode
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcSetMode_t)(
zes_freq_handle_t,
zes_oc_mode_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcGetMode
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcGetMode_t)(
zes_freq_handle_t,
zes_oc_mode_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcGetIccMax
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcGetIccMax_t)(
zes_freq_handle_t,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcSetIccMax
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcSetIccMax_t)(
zes_freq_handle_t,
double
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcGetTjMax
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcGetTjMax_t)(
zes_freq_handle_t,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFrequencyOcSetTjMax
typedef ze_result_t (ZE_APICALL *zes_pfnFrequencyOcSetTjMax_t)(
zes_freq_handle_t,
double
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Frequency functions pointers
typedef struct _zes_frequency_dditable_t
{
zes_pfnFrequencyGetProperties_t pfnGetProperties;
zes_pfnFrequencyGetAvailableClocks_t pfnGetAvailableClocks;
zes_pfnFrequencyGetRange_t pfnGetRange;
zes_pfnFrequencySetRange_t pfnSetRange;
zes_pfnFrequencyGetState_t pfnGetState;
zes_pfnFrequencyGetThrottleTime_t pfnGetThrottleTime;
zes_pfnFrequencyOcGetCapabilities_t pfnOcGetCapabilities;
zes_pfnFrequencyOcGetFrequencyTarget_t pfnOcGetFrequencyTarget;
zes_pfnFrequencyOcSetFrequencyTarget_t pfnOcSetFrequencyTarget;
zes_pfnFrequencyOcGetVoltageTarget_t pfnOcGetVoltageTarget;
zes_pfnFrequencyOcSetVoltageTarget_t pfnOcSetVoltageTarget;
zes_pfnFrequencyOcSetMode_t pfnOcSetMode;
zes_pfnFrequencyOcGetMode_t pfnOcGetMode;
zes_pfnFrequencyOcGetIccMax_t pfnOcGetIccMax;
zes_pfnFrequencyOcSetIccMax_t pfnOcSetIccMax;
zes_pfnFrequencyOcGetTjMax_t pfnOcGetTjMax;
zes_pfnFrequencyOcSetTjMax_t pfnOcSetTjMax;
} zes_frequency_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Frequency 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
zesGetFrequencyProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_frequency_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetFrequencyProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetFrequencyProcAddrTable_t)(
ze_api_version_t,
zes_frequency_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesEngineGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnEngineGetProperties_t)(
zes_engine_handle_t,
zes_engine_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesEngineGetActivity
typedef ze_result_t (ZE_APICALL *zes_pfnEngineGetActivity_t)(
zes_engine_handle_t,
zes_engine_stats_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesEngineGetActivityExt
typedef ze_result_t (ZE_APICALL *zes_pfnEngineGetActivityExt_t)(
zes_engine_handle_t,
uint32_t*,
zes_engine_stats_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Engine functions pointers
typedef struct _zes_engine_dditable_t
{
zes_pfnEngineGetProperties_t pfnGetProperties;
zes_pfnEngineGetActivity_t pfnGetActivity;
zes_pfnEngineGetActivityExt_t pfnGetActivityExt;
} zes_engine_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Engine 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
zesGetEngineProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_engine_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetEngineProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetEngineProcAddrTable_t)(
ze_api_version_t,
zes_engine_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesStandbyGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnStandbyGetProperties_t)(
zes_standby_handle_t,
zes_standby_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesStandbyGetMode
typedef ze_result_t (ZE_APICALL *zes_pfnStandbyGetMode_t)(
zes_standby_handle_t,
zes_standby_promo_mode_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesStandbySetMode
typedef ze_result_t (ZE_APICALL *zes_pfnStandbySetMode_t)(
zes_standby_handle_t,
zes_standby_promo_mode_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Standby functions pointers
typedef struct _zes_standby_dditable_t
{
zes_pfnStandbyGetProperties_t pfnGetProperties;
zes_pfnStandbyGetMode_t pfnGetMode;
zes_pfnStandbySetMode_t pfnSetMode;
} zes_standby_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Standby 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
zesGetStandbyProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_standby_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetStandbyProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetStandbyProcAddrTable_t)(
ze_api_version_t,
zes_standby_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFirmwareGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnFirmwareGetProperties_t)(
zes_firmware_handle_t,
zes_firmware_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFirmwareFlash
typedef ze_result_t (ZE_APICALL *zes_pfnFirmwareFlash_t)(
zes_firmware_handle_t,
void*,
uint32_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFirmwareGetFlashProgress
typedef ze_result_t (ZE_APICALL *zes_pfnFirmwareGetFlashProgress_t)(
zes_firmware_handle_t,
uint32_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFirmwareGetConsoleLogs
typedef ze_result_t (ZE_APICALL *zes_pfnFirmwareGetConsoleLogs_t)(
zes_firmware_handle_t,
size_t*,
char*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Firmware functions pointers
typedef struct _zes_firmware_dditable_t
{
zes_pfnFirmwareGetProperties_t pfnGetProperties;
zes_pfnFirmwareFlash_t pfnFlash;
zes_pfnFirmwareGetFlashProgress_t pfnGetFlashProgress;
zes_pfnFirmwareGetConsoleLogs_t pfnGetConsoleLogs;
} zes_firmware_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Firmware 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
zesGetFirmwareProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_firmware_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetFirmwareProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetFirmwareProcAddrTable_t)(
ze_api_version_t,
zes_firmware_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFirmwareGetSecurityVersionExp
typedef ze_result_t (ZE_APICALL *zes_pfnFirmwareGetSecurityVersionExp_t)(
zes_firmware_handle_t,
char*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFirmwareSetSecurityVersionExp
typedef ze_result_t (ZE_APICALL *zes_pfnFirmwareSetSecurityVersionExp_t)(
zes_firmware_handle_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of FirmwareExp functions pointers
typedef struct _zes_firmware_exp_dditable_t
{
zes_pfnFirmwareGetSecurityVersionExp_t pfnGetSecurityVersionExp;
zes_pfnFirmwareSetSecurityVersionExp_t pfnSetSecurityVersionExp;
} zes_firmware_exp_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's FirmwareExp 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
zesGetFirmwareExpProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_firmware_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetFirmwareExpProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetFirmwareExpProcAddrTable_t)(
ze_api_version_t,
zes_firmware_exp_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesMemoryGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnMemoryGetProperties_t)(
zes_mem_handle_t,
zes_mem_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesMemoryGetState
typedef ze_result_t (ZE_APICALL *zes_pfnMemoryGetState_t)(
zes_mem_handle_t,
zes_mem_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesMemoryGetBandwidth
typedef ze_result_t (ZE_APICALL *zes_pfnMemoryGetBandwidth_t)(
zes_mem_handle_t,
zes_mem_bandwidth_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Memory functions pointers
typedef struct _zes_memory_dditable_t
{
zes_pfnMemoryGetProperties_t pfnGetProperties;
zes_pfnMemoryGetState_t pfnGetState;
zes_pfnMemoryGetBandwidth_t pfnGetBandwidth;
} zes_memory_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Memory 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
zesGetMemoryProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_memory_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetMemoryProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetMemoryProcAddrTable_t)(
ze_api_version_t,
zes_memory_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortGetProperties_t)(
zes_fabric_port_handle_t,
zes_fabric_port_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortGetLinkType
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortGetLinkType_t)(
zes_fabric_port_handle_t,
zes_fabric_link_type_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortGetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortGetConfig_t)(
zes_fabric_port_handle_t,
zes_fabric_port_config_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortSetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortSetConfig_t)(
zes_fabric_port_handle_t,
const zes_fabric_port_config_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortGetState
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortGetState_t)(
zes_fabric_port_handle_t,
zes_fabric_port_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortGetThroughput
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortGetThroughput_t)(
zes_fabric_port_handle_t,
zes_fabric_port_throughput_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortGetFabricErrorCounters
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortGetFabricErrorCounters_t)(
zes_fabric_port_handle_t,
zes_fabric_port_error_counters_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFabricPortGetMultiPortThroughput
typedef ze_result_t (ZE_APICALL *zes_pfnFabricPortGetMultiPortThroughput_t)(
zes_device_handle_t,
uint32_t,
zes_fabric_port_handle_t*,
zes_fabric_port_throughput_t**
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of FabricPort functions pointers
typedef struct _zes_fabric_port_dditable_t
{
zes_pfnFabricPortGetProperties_t pfnGetProperties;
zes_pfnFabricPortGetLinkType_t pfnGetLinkType;
zes_pfnFabricPortGetConfig_t pfnGetConfig;
zes_pfnFabricPortSetConfig_t pfnSetConfig;
zes_pfnFabricPortGetState_t pfnGetState;
zes_pfnFabricPortGetThroughput_t pfnGetThroughput;
zes_pfnFabricPortGetFabricErrorCounters_t pfnGetFabricErrorCounters;
zes_pfnFabricPortGetMultiPortThroughput_t pfnGetMultiPortThroughput;
} zes_fabric_port_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's FabricPort 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
zesGetFabricPortProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_fabric_port_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetFabricPortProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetFabricPortProcAddrTable_t)(
ze_api_version_t,
zes_fabric_port_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesTemperatureGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnTemperatureGetProperties_t)(
zes_temp_handle_t,
zes_temp_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesTemperatureGetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnTemperatureGetConfig_t)(
zes_temp_handle_t,
zes_temp_config_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesTemperatureSetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnTemperatureSetConfig_t)(
zes_temp_handle_t,
const zes_temp_config_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesTemperatureGetState
typedef ze_result_t (ZE_APICALL *zes_pfnTemperatureGetState_t)(
zes_temp_handle_t,
double*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Temperature functions pointers
typedef struct _zes_temperature_dditable_t
{
zes_pfnTemperatureGetProperties_t pfnGetProperties;
zes_pfnTemperatureGetConfig_t pfnGetConfig;
zes_pfnTemperatureSetConfig_t pfnSetConfig;
zes_pfnTemperatureGetState_t pfnGetState;
} zes_temperature_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Temperature 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
zesGetTemperatureProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_temperature_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetTemperatureProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetTemperatureProcAddrTable_t)(
ze_api_version_t,
zes_temperature_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPsuGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnPsuGetProperties_t)(
zes_psu_handle_t,
zes_psu_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesPsuGetState
typedef ze_result_t (ZE_APICALL *zes_pfnPsuGetState_t)(
zes_psu_handle_t,
zes_psu_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Psu functions pointers
typedef struct _zes_psu_dditable_t
{
zes_pfnPsuGetProperties_t pfnGetProperties;
zes_pfnPsuGetState_t pfnGetState;
} zes_psu_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Psu 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
zesGetPsuProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_psu_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetPsuProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetPsuProcAddrTable_t)(
ze_api_version_t,
zes_psu_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFanGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnFanGetProperties_t)(
zes_fan_handle_t,
zes_fan_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFanGetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnFanGetConfig_t)(
zes_fan_handle_t,
zes_fan_config_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFanSetDefaultMode
typedef ze_result_t (ZE_APICALL *zes_pfnFanSetDefaultMode_t)(
zes_fan_handle_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFanSetFixedSpeedMode
typedef ze_result_t (ZE_APICALL *zes_pfnFanSetFixedSpeedMode_t)(
zes_fan_handle_t,
const zes_fan_speed_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFanSetSpeedTableMode
typedef ze_result_t (ZE_APICALL *zes_pfnFanSetSpeedTableMode_t)(
zes_fan_handle_t,
const zes_fan_speed_table_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesFanGetState
typedef ze_result_t (ZE_APICALL *zes_pfnFanGetState_t)(
zes_fan_handle_t,
zes_fan_speed_units_t,
int32_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Fan functions pointers
typedef struct _zes_fan_dditable_t
{
zes_pfnFanGetProperties_t pfnGetProperties;
zes_pfnFanGetConfig_t pfnGetConfig;
zes_pfnFanSetDefaultMode_t pfnSetDefaultMode;
zes_pfnFanSetFixedSpeedMode_t pfnSetFixedSpeedMode;
zes_pfnFanSetSpeedTableMode_t pfnSetSpeedTableMode;
zes_pfnFanGetState_t pfnGetState;
} zes_fan_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Fan 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
zesGetFanProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_fan_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetFanProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetFanProcAddrTable_t)(
ze_api_version_t,
zes_fan_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesLedGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnLedGetProperties_t)(
zes_led_handle_t,
zes_led_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesLedGetState
typedef ze_result_t (ZE_APICALL *zes_pfnLedGetState_t)(
zes_led_handle_t,
zes_led_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesLedSetState
typedef ze_result_t (ZE_APICALL *zes_pfnLedSetState_t)(
zes_led_handle_t,
ze_bool_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesLedSetColor
typedef ze_result_t (ZE_APICALL *zes_pfnLedSetColor_t)(
zes_led_handle_t,
const zes_led_color_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Led functions pointers
typedef struct _zes_led_dditable_t
{
zes_pfnLedGetProperties_t pfnGetProperties;
zes_pfnLedGetState_t pfnGetState;
zes_pfnLedSetState_t pfnSetState;
zes_pfnLedSetColor_t pfnSetColor;
} zes_led_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Led 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
zesGetLedProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_led_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetLedProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetLedProcAddrTable_t)(
ze_api_version_t,
zes_led_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesRasGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnRasGetProperties_t)(
zes_ras_handle_t,
zes_ras_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesRasGetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnRasGetConfig_t)(
zes_ras_handle_t,
zes_ras_config_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesRasSetConfig
typedef ze_result_t (ZE_APICALL *zes_pfnRasSetConfig_t)(
zes_ras_handle_t,
const zes_ras_config_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesRasGetState
typedef ze_result_t (ZE_APICALL *zes_pfnRasGetState_t)(
zes_ras_handle_t,
ze_bool_t,
zes_ras_state_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Ras functions pointers
typedef struct _zes_ras_dditable_t
{
zes_pfnRasGetProperties_t pfnGetProperties;
zes_pfnRasGetConfig_t pfnGetConfig;
zes_pfnRasSetConfig_t pfnSetConfig;
zes_pfnRasGetState_t pfnGetState;
} zes_ras_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Ras 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
zesGetRasProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_ras_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetRasProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetRasProcAddrTable_t)(
ze_api_version_t,
zes_ras_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesRasGetStateExp
typedef ze_result_t (ZE_APICALL *zes_pfnRasGetStateExp_t)(
zes_ras_handle_t,
uint32_t*,
zes_ras_state_exp_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesRasClearStateExp
typedef ze_result_t (ZE_APICALL *zes_pfnRasClearStateExp_t)(
zes_ras_handle_t,
zes_ras_error_category_exp_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of RasExp functions pointers
typedef struct _zes_ras_exp_dditable_t
{
zes_pfnRasGetStateExp_t pfnGetStateExp;
zes_pfnRasClearStateExp_t pfnClearStateExp;
} zes_ras_exp_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's RasExp 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
zesGetRasExpProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_ras_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetRasExpProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetRasExpProcAddrTable_t)(
ze_api_version_t,
zes_ras_exp_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDiagnosticsGetProperties
typedef ze_result_t (ZE_APICALL *zes_pfnDiagnosticsGetProperties_t)(
zes_diag_handle_t,
zes_diag_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDiagnosticsGetTests
typedef ze_result_t (ZE_APICALL *zes_pfnDiagnosticsGetTests_t)(
zes_diag_handle_t,
uint32_t*,
zes_diag_test_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesDiagnosticsRunTests
typedef ze_result_t (ZE_APICALL *zes_pfnDiagnosticsRunTests_t)(
zes_diag_handle_t,
uint32_t,
uint32_t,
zes_diag_result_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of Diagnostics functions pointers
typedef struct _zes_diagnostics_dditable_t
{
zes_pfnDiagnosticsGetProperties_t pfnGetProperties;
zes_pfnDiagnosticsGetTests_t pfnGetTests;
zes_pfnDiagnosticsRunTests_t pfnRunTests;
} zes_diagnostics_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's Diagnostics 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
zesGetDiagnosticsProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_diagnostics_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetDiagnosticsProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetDiagnosticsProcAddrTable_t)(
ze_api_version_t,
zes_diagnostics_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementGetVFPropertiesExp
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementGetVFPropertiesExp_t)(
zes_vf_handle_t,
zes_vf_exp_properties_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementGetVFMemoryUtilizationExp
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementGetVFMemoryUtilizationExp_t)(
zes_vf_handle_t,
uint32_t*,
zes_vf_util_mem_exp_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementGetVFEngineUtilizationExp
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementGetVFEngineUtilizationExp_t)(
zes_vf_handle_t,
uint32_t*,
zes_vf_util_engine_exp_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementSetVFTelemetryModeExp
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementSetVFTelemetryModeExp_t)(
zes_vf_handle_t,
zes_vf_info_util_exp_flags_t,
ze_bool_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementSetVFTelemetrySamplingIntervalExp
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementSetVFTelemetrySamplingIntervalExp_t)(
zes_vf_handle_t,
zes_vf_info_util_exp_flags_t,
uint64_t
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementGetVFCapabilitiesExp
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementGetVFCapabilitiesExp_t)(
zes_vf_handle_t,
zes_vf_exp_capabilities_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementGetVFMemoryUtilizationExp2
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementGetVFMemoryUtilizationExp2_t)(
zes_vf_handle_t,
uint32_t*,
zes_vf_util_mem_exp2_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementGetVFEngineUtilizationExp2
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementGetVFEngineUtilizationExp2_t)(
zes_vf_handle_t,
uint32_t*,
zes_vf_util_engine_exp2_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesVFManagementGetVFCapabilitiesExp2
typedef ze_result_t (ZE_APICALL *zes_pfnVFManagementGetVFCapabilitiesExp2_t)(
zes_vf_handle_t,
zes_vf_exp2_capabilities_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Table of VFManagementExp functions pointers
typedef struct _zes_vf_management_exp_dditable_t
{
zes_pfnVFManagementGetVFPropertiesExp_t pfnGetVFPropertiesExp;
zes_pfnVFManagementGetVFMemoryUtilizationExp_t pfnGetVFMemoryUtilizationExp;
zes_pfnVFManagementGetVFEngineUtilizationExp_t pfnGetVFEngineUtilizationExp;
zes_pfnVFManagementSetVFTelemetryModeExp_t pfnSetVFTelemetryModeExp;
zes_pfnVFManagementSetVFTelemetrySamplingIntervalExp_t pfnSetVFTelemetrySamplingIntervalExp;
zes_pfnVFManagementGetVFCapabilitiesExp_t pfnGetVFCapabilitiesExp;
zes_pfnVFManagementGetVFMemoryUtilizationExp2_t pfnGetVFMemoryUtilizationExp2;
zes_pfnVFManagementGetVFEngineUtilizationExp2_t pfnGetVFEngineUtilizationExp2;
zes_pfnVFManagementGetVFCapabilitiesExp2_t pfnGetVFCapabilitiesExp2;
} zes_vf_management_exp_dditable_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Exported function for filling application's VFManagementExp 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
zesGetVFManagementExpProcAddrTable(
ze_api_version_t version, ///< [in] API version requested
zes_vf_management_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Function-pointer for zesGetVFManagementExpProcAddrTable
typedef ze_result_t (ZE_APICALL *zes_pfnGetVFManagementExpProcAddrTable_t)(
ze_api_version_t,
zes_vf_management_exp_dditable_t*
);
///////////////////////////////////////////////////////////////////////////////
/// @brief Container for all DDI tables
typedef struct _zes_dditable_t
{
zes_global_dditable_t Global;
zes_device_dditable_t Device;
zes_device_exp_dditable_t DeviceExp;
zes_driver_dditable_t Driver;
zes_driver_exp_dditable_t DriverExp;
zes_overclock_dditable_t Overclock;
zes_scheduler_dditable_t Scheduler;
zes_performance_factor_dditable_t PerformanceFactor;
zes_power_dditable_t Power;
zes_frequency_dditable_t Frequency;
zes_engine_dditable_t Engine;
zes_standby_dditable_t Standby;
zes_firmware_dditable_t Firmware;
zes_firmware_exp_dditable_t FirmwareExp;
zes_memory_dditable_t Memory;
zes_fabric_port_dditable_t FabricPort;
zes_temperature_dditable_t Temperature;
zes_psu_dditable_t Psu;
zes_fan_dditable_t Fan;
zes_led_dditable_t Led;
zes_ras_dditable_t Ras;
zes_ras_exp_dditable_t RasExp;
zes_diagnostics_dditable_t Diagnostics;
zes_vf_management_exp_dditable_t VFManagementExp;
} zes_dditable_t;
/// @brief Container for all DDI tables with version and tables set by the Driver
typedef struct _zes_dditable_driver_t
{
ze_api_version_t version;
uint8_t isValidFlag;
zes_global_dditable_t * Global;
zes_device_dditable_t * Device;
zes_device_exp_dditable_t * DeviceExp;
zes_driver_dditable_t * Driver;
zes_driver_exp_dditable_t * DriverExp;
zes_overclock_dditable_t * Overclock;
zes_scheduler_dditable_t * Scheduler;
zes_performance_factor_dditable_t * PerformanceFactor;
zes_power_dditable_t * Power;
zes_frequency_dditable_t * Frequency;
zes_engine_dditable_t * Engine;
zes_standby_dditable_t * Standby;
zes_firmware_dditable_t * Firmware;
zes_firmware_exp_dditable_t * FirmwareExp;
zes_memory_dditable_t * Memory;
zes_fabric_port_dditable_t * FabricPort;
zes_temperature_dditable_t * Temperature;
zes_psu_dditable_t * Psu;
zes_fan_dditable_t * Fan;
zes_led_dditable_t * Led;
zes_ras_dditable_t * Ras;
zes_ras_exp_dditable_t * RasExp;
zes_diagnostics_dditable_t * Diagnostics;
zes_vf_management_exp_dditable_t * VFManagementExp;
} zes_dditable_driver_t;
#if defined(__cplusplus)
} // extern "C"
#endif
#endif // _ZES_DDI_H