Files
rocm-systems/py-interface/amdsmi_wrapper.py
T
Dalibor Stanisavljevic b4b761d02f SWDEV-370223 - Change the name of the header to amdsmi.h
Change dev to device_handle throughout the file
Change the pcie_info pcie_speed field type to uint32_t
Add AMDSMI prefix before amdsmi_mm_ip enum

Change-Id: I242145389ddc3f2ad05dfd6ca371640f4d118fc4
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2022-12-08 13:34:34 +01:00

2176 строки
85 KiB
Python

#
# Copyright (C) 2022 Advanced Micro Devices. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
from ctypes import *
from ctypes import POINTER
from subprocess import run
from subprocess import PIPE
import os
# -*- coding: utf-8 -*-
#
# TARGET arch is: ['-I/usr/lib/llvm-6.0/lib/clang/6.0.0/include/']
# WORD_SIZE is: 8
# POINTER_SIZE is: 8
# LONGDOUBLE_SIZE is: 16
#
import ctypes
c_int128 = ctypes.c_ubyte*16
c_uint128 = c_int128
void = None
if ctypes.sizeof(ctypes.c_longdouble) == 16:
c_long_double_t = ctypes.c_longdouble
else:
c_long_double_t = ctypes.c_ubyte*16
class AsDictMixin:
@classmethod
def as_dict(cls, self):
result = {}
if not isinstance(self, AsDictMixin):
# not a structure, assume it's already a python object
return self
if not hasattr(cls, "_fields_"):
return result
# sys.version_info >= (3, 5)
# for (field, *_) in cls._fields_: # noqa
for field_tuple in cls._fields_: # noqa
field = field_tuple[0]
if field.startswith('PADDING_'):
continue
value = getattr(self, field)
type_ = type(value)
if hasattr(value, "_length_") and hasattr(value, "_type_"):
# array
if not hasattr(type_, "as_dict"):
value = [v for v in value]
else:
type_ = type_._type_
value = [type_.as_dict(v) for v in value]
elif hasattr(value, "contents") and hasattr(value, "_type_"):
# pointer
try:
if not hasattr(type_, "as_dict"):
value = value.contents
else:
type_ = type_._type_
value = type_.as_dict(value.contents)
except ValueError:
# nullptr
value = None
elif isinstance(value, AsDictMixin):
# other structure
value = type_.as_dict(value)
result[field] = value
return result
class Structure(ctypes.Structure, AsDictMixin):
def __init__(self, *args, **kwds):
# We don't want to use positional arguments fill PADDING_* fields
args = dict(zip(self.__class__._field_names_(), args))
args.update(kwds)
super(Structure, self).__init__(**args)
@classmethod
def _field_names_(cls):
if hasattr(cls, '_fields_'):
return (f[0] for f in cls._fields_ if not f[0].startswith('PADDING'))
else:
return ()
@classmethod
def get_type(cls, field):
for f in cls._fields_:
if f[0] == field:
return f[1]
return None
@classmethod
def bind(cls, bound_fields):
fields = {}
for name, type_ in cls._fields_:
if hasattr(type_, "restype"):
if name in bound_fields:
if bound_fields[name] is None:
fields[name] = type_()
else:
# use a closure to capture the callback from the loop scope
fields[name] = (
type_((lambda callback: lambda *args: callback(*args))(
bound_fields[name]))
)
del bound_fields[name]
else:
# default callback implementation (does nothing)
try:
default_ = type_(0).restype().value
except TypeError:
default_ = None
fields[name] = type_((
lambda default_: lambda *args: default_)(default_))
else:
# not a callback function, use default initialization
if name in bound_fields:
fields[name] = bound_fields[name]
del bound_fields[name]
else:
fields[name] = type_()
if len(bound_fields) != 0:
raise ValueError(
"Cannot bind the following unknown callback(s) {}.{}".format(
cls.__name__, bound_fields.keys()
))
return cls(**fields)
class Union(ctypes.Union, AsDictMixin):
pass
def string_cast(char_pointer, encoding='utf-8', errors='strict'):
value = ctypes.cast(char_pointer, ctypes.c_char_p).value
if value is not None and encoding is not None:
value = value.decode(encoding, errors=errors)
return value
def char_pointer_cast(string, encoding='utf-8'):
if encoding is not None:
try:
string = string.encode(encoding)
except AttributeError:
# In Python3, bytes has no encode attribute
pass
string = ctypes.c_char_p(string)
return ctypes.cast(string, ctypes.POINTER(ctypes.c_char))
# values for enumeration 'amdsmi_init_flags'
amdsmi_init_flags__enumvalues = {
0: 'AMDSMI_INIT_ALL_DEVICES',
1: 'AMDSMI_INIT_AMD_CPUS',
2: 'AMDSMI_INIT_AMD_GPUS',
4: 'AMDSMI_INIT_NON_AMD_CPUS',
8: 'AMDSMI_INIT_NON_AMD_GPUS',
}
AMDSMI_INIT_ALL_DEVICES = 0
AMDSMI_INIT_AMD_CPUS = 1
AMDSMI_INIT_AMD_GPUS = 2
AMDSMI_INIT_NON_AMD_CPUS = 4
AMDSMI_INIT_NON_AMD_GPUS = 8
amdsmi_init_flags = ctypes.c_uint32 # enum
amdsmi_init_flags_t = amdsmi_init_flags
amdsmi_init_flags_t__enumvalues = amdsmi_init_flags__enumvalues
# values for enumeration 'amdsmi_mm_ip'
amdsmi_mm_ip__enumvalues = {
0: 'AMDSMI_MM_UVD',
1: 'AMDSMI_MM_VCE',
2: 'AMDSMI_MM_VCN',
3: 'AMDSMI_MM__MAX',
}
AMDSMI_MM_UVD = 0
AMDSMI_MM_VCE = 1
AMDSMI_MM_VCN = 2
AMDSMI_MM__MAX = 3
amdsmi_mm_ip = ctypes.c_uint32 # enum
amdsmi_mm_ip_t = amdsmi_mm_ip
amdsmi_mm_ip_t__enumvalues = amdsmi_mm_ip__enumvalues
# values for enumeration 'amdsmi_container_types'
amdsmi_container_types__enumvalues = {
0: 'CONTAINER_LXC',
1: 'CONTAINER_DOCKER',
}
CONTAINER_LXC = 0
CONTAINER_DOCKER = 1
amdsmi_container_types = ctypes.c_uint32 # enum
amdsmi_container_types_t = amdsmi_container_types
amdsmi_container_types_t__enumvalues = amdsmi_container_types__enumvalues
amdsmi_device_handle = ctypes.c_void_p
amdsmi_socket_handle = ctypes.c_void_p
# values for enumeration 'device_type'
device_type__enumvalues = {
0: 'UNKNOWN',
1: 'AMD_GPU',
2: 'AMD_CPU',
3: 'NON_AMD_GPU',
4: 'NON_AMD_CPU',
}
UNKNOWN = 0
AMD_GPU = 1
AMD_CPU = 2
NON_AMD_GPU = 3
NON_AMD_CPU = 4
device_type = ctypes.c_uint32 # enum
device_type_t = device_type
device_type_t__enumvalues = device_type__enumvalues
# values for enumeration 'amdsmi_clk_type'
amdsmi_clk_type__enumvalues = {
0: 'CLK_TYPE_SYS',
0: 'CLK_TYPE_FIRST',
0: 'CLK_TYPE_GFX',
1: 'CLK_TYPE_DF',
2: 'CLK_TYPE_DCEF',
3: 'CLK_TYPE_SOC',
4: 'CLK_TYPE_MEM',
5: 'CLK_TYPE_PCIE',
6: 'CLK_TYPE_VCLK0',
7: 'CLK_TYPE_VCLK1',
8: 'CLK_TYPE_DCLK0',
9: 'CLK_TYPE_DCLK1',
9: 'CLK_TYPE__MAX',
}
CLK_TYPE_SYS = 0
CLK_TYPE_FIRST = 0
CLK_TYPE_GFX = 0
CLK_TYPE_DF = 1
CLK_TYPE_DCEF = 2
CLK_TYPE_SOC = 3
CLK_TYPE_MEM = 4
CLK_TYPE_PCIE = 5
CLK_TYPE_VCLK0 = 6
CLK_TYPE_VCLK1 = 7
CLK_TYPE_DCLK0 = 8
CLK_TYPE_DCLK1 = 9
CLK_TYPE__MAX = 9
amdsmi_clk_type = ctypes.c_uint32 # enum
amdsmi_clk_type_t = amdsmi_clk_type
amdsmi_clk_type_t__enumvalues = amdsmi_clk_type__enumvalues
# values for enumeration 'amdsmi_temperature_type'
amdsmi_temperature_type__enumvalues = {
0: 'TEMPERATURE_TYPE_EDGE',
0: 'TEMPERATURE_TYPE_FIRST',
1: 'TEMPERATURE_TYPE_JUNCTION',
2: 'TEMPERATURE_TYPE_VRAM',
3: 'TEMPERATURE_TYPE_HBM_0',
4: 'TEMPERATURE_TYPE_HBM_1',
5: 'TEMPERATURE_TYPE_HBM_2',
6: 'TEMPERATURE_TYPE_HBM_3',
7: 'TEMPERATURE_TYPE_PLX',
7: 'TEMPERATURE_TYPE__MAX',
}
TEMPERATURE_TYPE_EDGE = 0
TEMPERATURE_TYPE_FIRST = 0
TEMPERATURE_TYPE_JUNCTION = 1
TEMPERATURE_TYPE_VRAM = 2
TEMPERATURE_TYPE_HBM_0 = 3
TEMPERATURE_TYPE_HBM_1 = 4
TEMPERATURE_TYPE_HBM_2 = 5
TEMPERATURE_TYPE_HBM_3 = 6
TEMPERATURE_TYPE_PLX = 7
TEMPERATURE_TYPE__MAX = 7
amdsmi_temperature_type = ctypes.c_uint32 # enum
amdsmi_temperature_type_t = amdsmi_temperature_type
amdsmi_temperature_type_t__enumvalues = amdsmi_temperature_type__enumvalues
# values for enumeration 'amdsmi_fw_block'
amdsmi_fw_block__enumvalues = {
1: 'FW_ID_SMU',
1: 'FW_ID_FIRST',
2: 'FW_ID_CP_CE',
3: 'FW_ID_CP_PFP',
4: 'FW_ID_CP_ME',
5: 'FW_ID_CP_MEC_JT1',
6: 'FW_ID_CP_MEC_JT2',
7: 'FW_ID_CP_MEC1',
8: 'FW_ID_CP_MEC2',
9: 'FW_ID_RLC',
10: 'FW_ID_SDMA0',
11: 'FW_ID_SDMA1',
12: 'FW_ID_SDMA2',
13: 'FW_ID_SDMA3',
14: 'FW_ID_SDMA4',
15: 'FW_ID_SDMA5',
16: 'FW_ID_SDMA6',
17: 'FW_ID_SDMA7',
18: 'FW_ID_VCN',
19: 'FW_ID_UVD',
20: 'FW_ID_VCE',
21: 'FW_ID_ISP',
22: 'FW_ID_DMCU_ERAM',
23: 'FW_ID_DMCU_ISR',
24: 'FW_ID_RLC_RESTORE_LIST_GPM_MEM',
25: 'FW_ID_RLC_RESTORE_LIST_SRM_MEM',
26: 'FW_ID_RLC_RESTORE_LIST_CNTL',
27: 'FW_ID_RLC_V',
28: 'FW_ID_MMSCH',
29: 'FW_ID_PSP_SYSDRV',
30: 'FW_ID_PSP_SOSDRV',
31: 'FW_ID_PSP_TOC',
32: 'FW_ID_PSP_KEYDB',
33: 'FW_ID_DFC',
34: 'FW_ID_PSP_SPL',
35: 'FW_ID_DRV_CAP',
36: 'FW_ID_MC',
37: 'FW_ID_PSP_BL',
38: 'FW_ID_CP_PM4',
39: 'FW_ID_ASD',
40: 'FW_ID_TA_RAS',
41: 'FW_ID_XGMI',
42: 'FW_ID_RLC_SRLG',
43: 'FW_ID_RLC_SRLS',
44: 'FW_ID_SMC',
45: 'FW_ID_DMCU',
46: 'FW_ID__MAX',
}
FW_ID_SMU = 1
FW_ID_FIRST = 1
FW_ID_CP_CE = 2
FW_ID_CP_PFP = 3
FW_ID_CP_ME = 4
FW_ID_CP_MEC_JT1 = 5
FW_ID_CP_MEC_JT2 = 6
FW_ID_CP_MEC1 = 7
FW_ID_CP_MEC2 = 8
FW_ID_RLC = 9
FW_ID_SDMA0 = 10
FW_ID_SDMA1 = 11
FW_ID_SDMA2 = 12
FW_ID_SDMA3 = 13
FW_ID_SDMA4 = 14
FW_ID_SDMA5 = 15
FW_ID_SDMA6 = 16
FW_ID_SDMA7 = 17
FW_ID_VCN = 18
FW_ID_UVD = 19
FW_ID_VCE = 20
FW_ID_ISP = 21
FW_ID_DMCU_ERAM = 22
FW_ID_DMCU_ISR = 23
FW_ID_RLC_RESTORE_LIST_GPM_MEM = 24
FW_ID_RLC_RESTORE_LIST_SRM_MEM = 25
FW_ID_RLC_RESTORE_LIST_CNTL = 26
FW_ID_RLC_V = 27
FW_ID_MMSCH = 28
FW_ID_PSP_SYSDRV = 29
FW_ID_PSP_SOSDRV = 30
FW_ID_PSP_TOC = 31
FW_ID_PSP_KEYDB = 32
FW_ID_DFC = 33
FW_ID_PSP_SPL = 34
FW_ID_DRV_CAP = 35
FW_ID_MC = 36
FW_ID_PSP_BL = 37
FW_ID_CP_PM4 = 38
FW_ID_ASD = 39
FW_ID_TA_RAS = 40
FW_ID_XGMI = 41
FW_ID_RLC_SRLG = 42
FW_ID_RLC_SRLS = 43
FW_ID_SMC = 44
FW_ID_DMCU = 45
FW_ID__MAX = 46
amdsmi_fw_block = ctypes.c_uint32 # enum
amdsmi_fw_block_t = amdsmi_fw_block
amdsmi_fw_block_t__enumvalues = amdsmi_fw_block__enumvalues
class c__SA_amdsmi_range_t(Structure):
pass
c__SA_amdsmi_range_t._pack_ = 1 # source:False
c__SA_amdsmi_range_t._fields_ = [
('lower_bound', ctypes.c_uint64),
('upper_bound', ctypes.c_uint64),
]
amdsmi_range_t = c__SA_amdsmi_range_t
amdsmi_range = c__SA_amdsmi_range_t
class amdsmi_xgmi_info(Structure):
pass
amdsmi_xgmi_info._pack_ = 1 # source:False
amdsmi_xgmi_info._fields_ = [
('xgmi_lanes', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte * 7),
('xgmi_hive_id', ctypes.c_uint64),
('xgmi_node_id', ctypes.c_uint64),
('index', ctypes.c_uint32),
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_xgmi_info_t = amdsmi_xgmi_info
class amdsmi_gpu_caps(Structure):
pass
class amdsmi_gpu_caps_1(Structure):
pass
amdsmi_gpu_caps_1._pack_ = 1 # source:False
amdsmi_gpu_caps_1._fields_ = [
('mm_ip_count', ctypes.c_ubyte),
('mm_ip_list', ctypes.c_ubyte * 8),
]
class amdsmi_gpu_caps_0(Structure):
pass
amdsmi_gpu_caps_0._pack_ = 1 # source:False
amdsmi_gpu_caps_0._fields_ = [
('gfxip_major', ctypes.c_uint32),
('gfxip_minor', ctypes.c_uint32),
('gfxip_cu_count', ctypes.c_uint16),
('PADDING_0', ctypes.c_ubyte * 2),
]
amdsmi_gpu_caps._pack_ = 1 # source:False
amdsmi_gpu_caps._fields_ = [
('gfx', amdsmi_gpu_caps_0),
('mm', amdsmi_gpu_caps_1),
('ras_supported', ctypes.c_bool),
('max_vf_num', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte),
('gfx_ip_count', ctypes.c_uint32),
('dma_ip_count', ctypes.c_uint32),
]
amdsmi_gpu_caps_t = amdsmi_gpu_caps
class amdsmi_vram_info(Structure):
pass
amdsmi_vram_info._pack_ = 1 # source:False
amdsmi_vram_info._fields_ = [
('vram_total', ctypes.c_uint32),
('vram_used', ctypes.c_uint32),
]
amdsmi_vram_info_t = amdsmi_vram_info
class amdsmi_frequency_range(Structure):
_pack_ = 1 # source:False
_fields_ = [
('supported_freq_range', amdsmi_range_t),
('current_freq_range', amdsmi_range_t),
]
amdsmi_frequency_range_t = amdsmi_frequency_range
class amdsmi_bdf(Union):
pass
class amdsmi_bdf_0(Structure):
pass
amdsmi_bdf_0._pack_ = 1 # source:False
amdsmi_bdf_0._fields_ = [
('function_number', ctypes.c_uint64, 3),
('device_number', ctypes.c_uint64, 5),
('bus_number', ctypes.c_uint64, 8),
('domain_number', ctypes.c_uint64, 48),
]
amdsmi_bdf._pack_ = 1 # source:False
amdsmi_bdf._fields_ = [
('amdsmi_bdf_0', amdsmi_bdf_0),
('as_uint', ctypes.c_uint64),
]
amdsmi_bdf_t = amdsmi_bdf
class amdsmi_power_cap_info(Structure):
pass
amdsmi_power_cap_info._pack_ = 1 # source:False
amdsmi_power_cap_info._fields_ = [
('power_cap', ctypes.c_uint64),
('default_power_cap', ctypes.c_uint64),
('dpm_cap', ctypes.c_uint64),
('min_power_cap', ctypes.c_uint64),
('max_power_cap', ctypes.c_uint64),
]
amdsmi_power_cap_info_t = amdsmi_power_cap_info
class amdsmi_vbios_info(Structure):
pass
amdsmi_vbios_info._pack_ = 1 # source:False
amdsmi_vbios_info._fields_ = [
('name', ctypes.c_char * 64),
('vbios_version', ctypes.c_uint32),
('build_date', ctypes.c_char * 32),
('part_number', ctypes.c_char * 64),
('vbios_version_string', ctypes.c_char * 32),
]
amdsmi_vbios_info_t = amdsmi_vbios_info
class amdsmi_fw_info(Structure):
pass
class amdsmi_fw_info_0(Structure):
pass
amdsmi_fw_info_0._pack_ = 1 # source:False
amdsmi_fw_info_0._fields_ = [
('fw_id', amdsmi_fw_block_t),
('PADDING_0', ctypes.c_ubyte * 4),
('fw_version', ctypes.c_uint64),
]
amdsmi_fw_info._pack_ = 1 # source:False
amdsmi_fw_info._fields_ = [
('num_fw_info', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte * 7),
('fw_info_list', amdsmi_fw_info_0 * 46),
]
amdsmi_fw_info_t = amdsmi_fw_info
class amdsmi_asic_info(Structure):
pass
amdsmi_asic_info._pack_ = 1 # source:False
amdsmi_asic_info._fields_ = [
('market_name', ctypes.c_char * 64),
('family', ctypes.c_uint32),
('vendor_id', ctypes.c_uint32),
('subvendor_id', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
('device_id', ctypes.c_uint64),
('rev_id', ctypes.c_uint32),
('asic_serial', ctypes.c_char * 32),
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_asic_info_t = amdsmi_asic_info
class amdsmi_board_info(Structure):
pass
amdsmi_board_info._pack_ = 1 # source:False
amdsmi_board_info._fields_ = [
('serial_number', ctypes.c_uint64),
('is_master', ctypes.c_bool),
('model_number', ctypes.c_char * 32),
('product_serial', ctypes.c_char * 32),
('fru_id', ctypes.c_char * 32),
('product_name', ctypes.c_char * 128),
('manufacturer_name', ctypes.c_char * 32),
('PADDING_0', ctypes.c_ubyte * 7),
]
amdsmi_board_info_t = amdsmi_board_info
class amdsmi_temperature(Structure):
pass
amdsmi_temperature._pack_ = 1 # source:False
amdsmi_temperature._fields_ = [
('cur_temp', ctypes.c_uint32),
]
amdsmi_temperature_t = amdsmi_temperature
class amdsmi_temperature_limit(Structure):
pass
amdsmi_temperature_limit._pack_ = 1 # source:False
amdsmi_temperature_limit._fields_ = [
('limit', ctypes.c_uint32),
]
amdsmi_temperature_limit_t = amdsmi_temperature_limit
class amdsmi_power_limit(Structure):
pass
amdsmi_power_limit._pack_ = 1 # source:False
amdsmi_power_limit._fields_ = [
('limit', ctypes.c_uint32),
]
amdsmi_power_limit_t = amdsmi_power_limit
class amdsmi_power_measure(Structure):
pass
amdsmi_power_measure._pack_ = 1 # source:False
amdsmi_power_measure._fields_ = [
('average_socket_power', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
('energy_accumulator', ctypes.c_uint64),
('voltage_gfx', ctypes.c_uint32),
('voltage_soc', ctypes.c_uint32),
('voltage_mem', ctypes.c_uint32),
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_power_measure_t = amdsmi_power_measure
class amdsmi_clk_measure(Structure):
pass
amdsmi_clk_measure._pack_ = 1 # source:False
amdsmi_clk_measure._fields_ = [
('cur_clk', ctypes.c_uint32),
('avg_clk', ctypes.c_uint32),
('min_clk', ctypes.c_uint32),
('max_clk', ctypes.c_uint32),
]
amdsmi_clk_measure_t = amdsmi_clk_measure
class amdsmi_engine_usage(Structure):
pass
amdsmi_engine_usage._pack_ = 1 # source:False
amdsmi_engine_usage._fields_ = [
('gfx_activity', ctypes.c_uint32),
('umc_activity', ctypes.c_uint32),
('mm_activity', ctypes.c_uint32 * 8),
]
amdsmi_engine_usage_t = amdsmi_engine_usage
amdsmi_process_handle = ctypes.c_uint32
class amdsmi_process_info(Structure):
pass
class amdsmi_process_info_1(Structure):
pass
amdsmi_process_info_1._pack_ = 1 # source:False
amdsmi_process_info_1._fields_ = [
('gtt_mem', ctypes.c_uint64),
('cpu_mem', ctypes.c_uint64),
('vram_mem', ctypes.c_uint64),
]
class amdsmi_process_info_0(Structure):
pass
amdsmi_process_info_0._pack_ = 1 # source:False
amdsmi_process_info_0._fields_ = [
('gfx', ctypes.c_uint16 * 8),
('compute', ctypes.c_uint16 * 8),
('sdma', ctypes.c_uint16 * 8),
('enc', ctypes.c_uint16 * 8),
('dec', ctypes.c_uint16 * 8),
]
amdsmi_process_info._pack_ = 1 # source:False
amdsmi_process_info._fields_ = [
('name', ctypes.c_char * 32),
('pid', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
('mem', ctypes.c_uint64),
('engine_usage', amdsmi_process_info_0),
('memory_usage', amdsmi_process_info_1),
('container_name', ctypes.c_char * 32),
]
amdsmi_proc_info_t = amdsmi_process_info
# values for enumeration 'c__EA_amdsmi_dev_perf_level_t'
c__EA_amdsmi_dev_perf_level_t__enumvalues = {
0: 'AMDSMI_DEV_PERF_LEVEL_AUTO',
0: 'AMDSMI_DEV_PERF_LEVEL_FIRST',
1: 'AMDSMI_DEV_PERF_LEVEL_LOW',
2: 'AMDSMI_DEV_PERF_LEVEL_HIGH',
3: 'AMDSMI_DEV_PERF_LEVEL_MANUAL',
4: 'AMDSMI_DEV_PERF_LEVEL_STABLE_STD',
5: 'AMDSMI_DEV_PERF_LEVEL_STABLE_PEAK',
6: 'AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_MCLK',
7: 'AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_SCLK',
8: 'AMDSMI_DEV_PERF_LEVEL_DETERMINISM',
8: 'AMDSMI_DEV_PERF_LEVEL_LAST',
256: 'AMDSMI_DEV_PERF_LEVEL_UNKNOWN',
}
AMDSMI_DEV_PERF_LEVEL_AUTO = 0
AMDSMI_DEV_PERF_LEVEL_FIRST = 0
AMDSMI_DEV_PERF_LEVEL_LOW = 1
AMDSMI_DEV_PERF_LEVEL_HIGH = 2
AMDSMI_DEV_PERF_LEVEL_MANUAL = 3
AMDSMI_DEV_PERF_LEVEL_STABLE_STD = 4
AMDSMI_DEV_PERF_LEVEL_STABLE_PEAK = 5
AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_MCLK = 6
AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_SCLK = 7
AMDSMI_DEV_PERF_LEVEL_DETERMINISM = 8
AMDSMI_DEV_PERF_LEVEL_LAST = 8
AMDSMI_DEV_PERF_LEVEL_UNKNOWN = 256
c__EA_amdsmi_dev_perf_level_t = ctypes.c_uint32 # enum
amdsmi_dev_perf_level_t = c__EA_amdsmi_dev_perf_level_t
amdsmi_dev_perf_level_t__enumvalues = c__EA_amdsmi_dev_perf_level_t__enumvalues
amdsmi_dev_perf_level = c__EA_amdsmi_dev_perf_level_t
amdsmi_dev_perf_level__enumvalues = c__EA_amdsmi_dev_perf_level_t__enumvalues
# values for enumeration 'c__EA_amdsmi_sw_component_t'
c__EA_amdsmi_sw_component_t__enumvalues = {
0: 'AMDSMI_SW_COMP_FIRST',
0: 'AMDSMI_SW_COMP_DRIVER',
0: 'AMDSMI_SW_COMP_LAST',
}
AMDSMI_SW_COMP_FIRST = 0
AMDSMI_SW_COMP_DRIVER = 0
AMDSMI_SW_COMP_LAST = 0
c__EA_amdsmi_sw_component_t = ctypes.c_uint32 # enum
amdsmi_sw_component_t = c__EA_amdsmi_sw_component_t
amdsmi_sw_component_t__enumvalues = c__EA_amdsmi_sw_component_t__enumvalues
amdsmi_event_handle_t = ctypes.c_uint64
# values for enumeration 'c__EA_amdsmi_event_group_t'
c__EA_amdsmi_event_group_t__enumvalues = {
0: 'AMDSMI_EVNT_GRP_XGMI',
10: 'AMDSMI_EVNT_GRP_XGMI_DATA_OUT',
4294967295: 'AMDSMI_EVNT_GRP_INVALID',
}
AMDSMI_EVNT_GRP_XGMI = 0
AMDSMI_EVNT_GRP_XGMI_DATA_OUT = 10
AMDSMI_EVNT_GRP_INVALID = 4294967295
c__EA_amdsmi_event_group_t = ctypes.c_uint32 # enum
amdsmi_event_group_t = c__EA_amdsmi_event_group_t
amdsmi_event_group_t__enumvalues = c__EA_amdsmi_event_group_t__enumvalues
# values for enumeration 'c__EA_amdsmi_event_type_t'
c__EA_amdsmi_event_type_t__enumvalues = {
0: 'AMDSMI_EVNT_FIRST',
0: 'AMDSMI_EVNT_XGMI_FIRST',
0: 'AMDSMI_EVNT_XGMI_0_NOP_TX',
1: 'AMDSMI_EVNT_XGMI_0_REQUEST_TX',
2: 'AMDSMI_EVNT_XGMI_0_RESPONSE_TX',
3: 'AMDSMI_EVNT_XGMI_0_BEATS_TX',
4: 'AMDSMI_EVNT_XGMI_1_NOP_TX',
5: 'AMDSMI_EVNT_XGMI_1_REQUEST_TX',
6: 'AMDSMI_EVNT_XGMI_1_RESPONSE_TX',
7: 'AMDSMI_EVNT_XGMI_1_BEATS_TX',
7: 'AMDSMI_EVNT_XGMI_LAST',
10: 'AMDSMI_EVNT_XGMI_DATA_OUT_FIRST',
10: 'AMDSMI_EVNT_XGMI_DATA_OUT_0',
11: 'AMDSMI_EVNT_XGMI_DATA_OUT_1',
12: 'AMDSMI_EVNT_XGMI_DATA_OUT_2',
13: 'AMDSMI_EVNT_XGMI_DATA_OUT_3',
14: 'AMDSMI_EVNT_XGMI_DATA_OUT_4',
15: 'AMDSMI_EVNT_XGMI_DATA_OUT_5',
15: 'AMDSMI_EVNT_XGMI_DATA_OUT_LAST',
15: 'AMDSMI_EVNT_LAST',
}
AMDSMI_EVNT_FIRST = 0
AMDSMI_EVNT_XGMI_FIRST = 0
AMDSMI_EVNT_XGMI_0_NOP_TX = 0
AMDSMI_EVNT_XGMI_0_REQUEST_TX = 1
AMDSMI_EVNT_XGMI_0_RESPONSE_TX = 2
AMDSMI_EVNT_XGMI_0_BEATS_TX = 3
AMDSMI_EVNT_XGMI_1_NOP_TX = 4
AMDSMI_EVNT_XGMI_1_REQUEST_TX = 5
AMDSMI_EVNT_XGMI_1_RESPONSE_TX = 6
AMDSMI_EVNT_XGMI_1_BEATS_TX = 7
AMDSMI_EVNT_XGMI_LAST = 7
AMDSMI_EVNT_XGMI_DATA_OUT_FIRST = 10
AMDSMI_EVNT_XGMI_DATA_OUT_0 = 10
AMDSMI_EVNT_XGMI_DATA_OUT_1 = 11
AMDSMI_EVNT_XGMI_DATA_OUT_2 = 12
AMDSMI_EVNT_XGMI_DATA_OUT_3 = 13
AMDSMI_EVNT_XGMI_DATA_OUT_4 = 14
AMDSMI_EVNT_XGMI_DATA_OUT_5 = 15
AMDSMI_EVNT_XGMI_DATA_OUT_LAST = 15
AMDSMI_EVNT_LAST = 15
c__EA_amdsmi_event_type_t = ctypes.c_uint32 # enum
amdsmi_event_type_t = c__EA_amdsmi_event_type_t
amdsmi_event_type_t__enumvalues = c__EA_amdsmi_event_type_t__enumvalues
# values for enumeration 'c__EA_amdsmi_counter_command_t'
c__EA_amdsmi_counter_command_t__enumvalues = {
0: 'AMDSMI_CNTR_CMD_START',
1: 'AMDSMI_CNTR_CMD_STOP',
}
AMDSMI_CNTR_CMD_START = 0
AMDSMI_CNTR_CMD_STOP = 1
c__EA_amdsmi_counter_command_t = ctypes.c_uint32 # enum
amdsmi_counter_command_t = c__EA_amdsmi_counter_command_t
amdsmi_counter_command_t__enumvalues = c__EA_amdsmi_counter_command_t__enumvalues
class c__SA_amdsmi_counter_value_t(Structure):
pass
c__SA_amdsmi_counter_value_t._pack_ = 1 # source:False
c__SA_amdsmi_counter_value_t._fields_ = [
('value', ctypes.c_uint64),
('time_enabled', ctypes.c_uint64),
('time_running', ctypes.c_uint64),
]
amdsmi_counter_value_t = c__SA_amdsmi_counter_value_t
# values for enumeration 'c__EA_amdsmi_evt_notification_type_t'
c__EA_amdsmi_evt_notification_type_t__enumvalues = {
1: 'AMDSMI_EVT_NOTIF_VMFAULT',
1: 'AMDSMI_EVT_NOTIF_FIRST',
2: 'AMDSMI_EVT_NOTIF_THERMAL_THROTTLE',
3: 'AMDSMI_EVT_NOTIF_GPU_PRE_RESET',
4: 'AMDSMI_EVT_NOTIF_GPU_POST_RESET',
4: 'AMDSMI_EVT_NOTIF_LAST',
}
AMDSMI_EVT_NOTIF_VMFAULT = 1
AMDSMI_EVT_NOTIF_FIRST = 1
AMDSMI_EVT_NOTIF_THERMAL_THROTTLE = 2
AMDSMI_EVT_NOTIF_GPU_PRE_RESET = 3
AMDSMI_EVT_NOTIF_GPU_POST_RESET = 4
AMDSMI_EVT_NOTIF_LAST = 4
c__EA_amdsmi_evt_notification_type_t = ctypes.c_uint32 # enum
amdsmi_evt_notification_type_t = c__EA_amdsmi_evt_notification_type_t
amdsmi_evt_notification_type_t__enumvalues = c__EA_amdsmi_evt_notification_type_t__enumvalues
class c__SA_amdsmi_evt_notification_data_t(Structure):
pass
c__SA_amdsmi_evt_notification_data_t._pack_ = 1 # source:False
c__SA_amdsmi_evt_notification_data_t._fields_ = [
('device_handle', ctypes.c_void_p),
('event', amdsmi_evt_notification_type_t),
('message', ctypes.c_char * 64),
('PADDING_0', ctypes.c_ubyte * 4),
]
amdsmi_evt_notification_data_t = c__SA_amdsmi_evt_notification_data_t
# values for enumeration 'c__EA_amdsmi_temperature_metric_t'
c__EA_amdsmi_temperature_metric_t__enumvalues = {
0: 'AMDSMI_TEMP_CURRENT',
0: 'AMDSMI_TEMP_FIRST',
1: 'AMDSMI_TEMP_MAX',
2: 'AMDSMI_TEMP_MIN',
3: 'AMDSMI_TEMP_MAX_HYST',
4: 'AMDSMI_TEMP_MIN_HYST',
5: 'AMDSMI_TEMP_CRITICAL',
6: 'AMDSMI_TEMP_CRITICAL_HYST',
7: 'AMDSMI_TEMP_EMERGENCY',
8: 'AMDSMI_TEMP_EMERGENCY_HYST',
9: 'AMDSMI_TEMP_CRIT_MIN',
10: 'AMDSMI_TEMP_CRIT_MIN_HYST',
11: 'AMDSMI_TEMP_OFFSET',
12: 'AMDSMI_TEMP_LOWEST',
13: 'AMDSMI_TEMP_HIGHEST',
13: 'AMDSMI_TEMP_LAST',
}
AMDSMI_TEMP_CURRENT = 0
AMDSMI_TEMP_FIRST = 0
AMDSMI_TEMP_MAX = 1
AMDSMI_TEMP_MIN = 2
AMDSMI_TEMP_MAX_HYST = 3
AMDSMI_TEMP_MIN_HYST = 4
AMDSMI_TEMP_CRITICAL = 5
AMDSMI_TEMP_CRITICAL_HYST = 6
AMDSMI_TEMP_EMERGENCY = 7
AMDSMI_TEMP_EMERGENCY_HYST = 8
AMDSMI_TEMP_CRIT_MIN = 9
AMDSMI_TEMP_CRIT_MIN_HYST = 10
AMDSMI_TEMP_OFFSET = 11
AMDSMI_TEMP_LOWEST = 12
AMDSMI_TEMP_HIGHEST = 13
AMDSMI_TEMP_LAST = 13
c__EA_amdsmi_temperature_metric_t = ctypes.c_uint32 # enum
amdsmi_temperature_metric_t = c__EA_amdsmi_temperature_metric_t
amdsmi_temperature_metric_t__enumvalues = c__EA_amdsmi_temperature_metric_t__enumvalues
amdsmi_temperature_metric = c__EA_amdsmi_temperature_metric_t
amdsmi_temperature_metric__enumvalues = c__EA_amdsmi_temperature_metric_t__enumvalues
# values for enumeration 'c__EA_amdsmi_voltage_metric_t'
c__EA_amdsmi_voltage_metric_t__enumvalues = {
0: 'AMDSMI_VOLT_CURRENT',
0: 'AMDSMI_VOLT_FIRST',
1: 'AMDSMI_VOLT_MAX',
2: 'AMDSMI_VOLT_MIN_CRIT',
3: 'AMDSMI_VOLT_MIN',
4: 'AMDSMI_VOLT_MAX_CRIT',
5: 'AMDSMI_VOLT_AVERAGE',
6: 'AMDSMI_VOLT_LOWEST',
7: 'AMDSMI_VOLT_HIGHEST',
7: 'AMDSMI_VOLT_LAST',
}
AMDSMI_VOLT_CURRENT = 0
AMDSMI_VOLT_FIRST = 0
AMDSMI_VOLT_MAX = 1
AMDSMI_VOLT_MIN_CRIT = 2
AMDSMI_VOLT_MIN = 3
AMDSMI_VOLT_MAX_CRIT = 4
AMDSMI_VOLT_AVERAGE = 5
AMDSMI_VOLT_LOWEST = 6
AMDSMI_VOLT_HIGHEST = 7
AMDSMI_VOLT_LAST = 7
c__EA_amdsmi_voltage_metric_t = ctypes.c_uint32 # enum
amdsmi_voltage_metric_t = c__EA_amdsmi_voltage_metric_t
amdsmi_voltage_metric_t__enumvalues = c__EA_amdsmi_voltage_metric_t__enumvalues
# values for enumeration 'c__EA_amdsmi_voltage_type_t'
c__EA_amdsmi_voltage_type_t__enumvalues = {
0: 'AMDSMI_VOLT_TYPE_FIRST',
0: 'AMDSMI_VOLT_TYPE_VDDGFX',
0: 'AMDSMI_VOLT_TYPE_LAST',
4294967295: 'AMDSMI_VOLT_TYPE_INVALID',
}
AMDSMI_VOLT_TYPE_FIRST = 0
AMDSMI_VOLT_TYPE_VDDGFX = 0
AMDSMI_VOLT_TYPE_LAST = 0
AMDSMI_VOLT_TYPE_INVALID = 4294967295
c__EA_amdsmi_voltage_type_t = ctypes.c_uint32 # enum
amdsmi_voltage_type_t = c__EA_amdsmi_voltage_type_t
amdsmi_voltage_type_t__enumvalues = c__EA_amdsmi_voltage_type_t__enumvalues
# values for enumeration 'c__EA_amdsmi_power_profile_preset_masks_t'
c__EA_amdsmi_power_profile_preset_masks_t__enumvalues = {
1: 'AMDSMI_PWR_PROF_PRST_CUSTOM_MASK',
2: 'AMDSMI_PWR_PROF_PRST_VIDEO_MASK',
4: 'AMDSMI_PWR_PROF_PRST_POWER_SAVING_MASK',
8: 'AMDSMI_PWR_PROF_PRST_COMPUTE_MASK',
16: 'AMDSMI_PWR_PROF_PRST_VR_MASK',
32: 'AMDSMI_PWR_PROF_PRST_3D_FULL_SCR_MASK',
64: 'AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT',
64: 'AMDSMI_PWR_PROF_PRST_LAST',
18446744073709551615: 'AMDSMI_PWR_PROF_PRST_INVALID',
}
AMDSMI_PWR_PROF_PRST_CUSTOM_MASK = 1
AMDSMI_PWR_PROF_PRST_VIDEO_MASK = 2
AMDSMI_PWR_PROF_PRST_POWER_SAVING_MASK = 4
AMDSMI_PWR_PROF_PRST_COMPUTE_MASK = 8
AMDSMI_PWR_PROF_PRST_VR_MASK = 16
AMDSMI_PWR_PROF_PRST_3D_FULL_SCR_MASK = 32
AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT = 64
AMDSMI_PWR_PROF_PRST_LAST = 64
AMDSMI_PWR_PROF_PRST_INVALID = 18446744073709551615
c__EA_amdsmi_power_profile_preset_masks_t = ctypes.c_uint64 # enum
amdsmi_power_profile_preset_masks_t = c__EA_amdsmi_power_profile_preset_masks_t
amdsmi_power_profile_preset_masks_t__enumvalues = c__EA_amdsmi_power_profile_preset_masks_t__enumvalues
amdsmi_power_profile_preset_masks = c__EA_amdsmi_power_profile_preset_masks_t
amdsmi_power_profile_preset_masks__enumvalues = c__EA_amdsmi_power_profile_preset_masks_t__enumvalues
# values for enumeration 'c__EA_amdsmi_gpu_block_t'
c__EA_amdsmi_gpu_block_t__enumvalues = {
0: 'AMDSMI_GPU_BLOCK_INVALID',
1: 'AMDSMI_GPU_BLOCK_FIRST',
1: 'AMDSMI_GPU_BLOCK_UMC',
2: 'AMDSMI_GPU_BLOCK_SDMA',
4: 'AMDSMI_GPU_BLOCK_GFX',
8: 'AMDSMI_GPU_BLOCK_MMHUB',
16: 'AMDSMI_GPU_BLOCK_ATHUB',
32: 'AMDSMI_GPU_BLOCK_PCIE_BIF',
64: 'AMDSMI_GPU_BLOCK_HDP',
128: 'AMDSMI_GPU_BLOCK_XGMI_WAFL',
256: 'AMDSMI_GPU_BLOCK_DF',
512: 'AMDSMI_GPU_BLOCK_SMN',
1024: 'AMDSMI_GPU_BLOCK_SEM',
2048: 'AMDSMI_GPU_BLOCK_MP0',
4096: 'AMDSMI_GPU_BLOCK_MP1',
8192: 'AMDSMI_GPU_BLOCK_FUSE',
8192: 'AMDSMI_GPU_BLOCK_LAST',
9223372036854775808: 'AMDSMI_GPU_BLOCK_RESERVED',
}
AMDSMI_GPU_BLOCK_INVALID = 0
AMDSMI_GPU_BLOCK_FIRST = 1
AMDSMI_GPU_BLOCK_UMC = 1
AMDSMI_GPU_BLOCK_SDMA = 2
AMDSMI_GPU_BLOCK_GFX = 4
AMDSMI_GPU_BLOCK_MMHUB = 8
AMDSMI_GPU_BLOCK_ATHUB = 16
AMDSMI_GPU_BLOCK_PCIE_BIF = 32
AMDSMI_GPU_BLOCK_HDP = 64
AMDSMI_GPU_BLOCK_XGMI_WAFL = 128
AMDSMI_GPU_BLOCK_DF = 256
AMDSMI_GPU_BLOCK_SMN = 512
AMDSMI_GPU_BLOCK_SEM = 1024
AMDSMI_GPU_BLOCK_MP0 = 2048
AMDSMI_GPU_BLOCK_MP1 = 4096
AMDSMI_GPU_BLOCK_FUSE = 8192
AMDSMI_GPU_BLOCK_LAST = 8192
AMDSMI_GPU_BLOCK_RESERVED = 9223372036854775808
c__EA_amdsmi_gpu_block_t = ctypes.c_uint64 # enum
amdsmi_gpu_block_t = c__EA_amdsmi_gpu_block_t
amdsmi_gpu_block_t__enumvalues = c__EA_amdsmi_gpu_block_t__enumvalues
amdsmi_gpu_block = c__EA_amdsmi_gpu_block_t
amdsmi_gpu_block__enumvalues = c__EA_amdsmi_gpu_block_t__enumvalues
# values for enumeration 'c__EA_amdsmi_ras_err_state_t'
c__EA_amdsmi_ras_err_state_t__enumvalues = {
0: 'AMDSMI_RAS_ERR_STATE_NONE',
1: 'AMDSMI_RAS_ERR_STATE_DISABLED',
2: 'AMDSMI_RAS_ERR_STATE_PARITY',
3: 'AMDSMI_RAS_ERR_STATE_SING_C',
4: 'AMDSMI_RAS_ERR_STATE_MULT_UC',
5: 'AMDSMI_RAS_ERR_STATE_POISON',
6: 'AMDSMI_RAS_ERR_STATE_ENABLED',
6: 'AMDSMI_RAS_ERR_STATE_LAST',
4294967295: 'AMDSMI_RAS_ERR_STATE_INVALID',
}
AMDSMI_RAS_ERR_STATE_NONE = 0
AMDSMI_RAS_ERR_STATE_DISABLED = 1
AMDSMI_RAS_ERR_STATE_PARITY = 2
AMDSMI_RAS_ERR_STATE_SING_C = 3
AMDSMI_RAS_ERR_STATE_MULT_UC = 4
AMDSMI_RAS_ERR_STATE_POISON = 5
AMDSMI_RAS_ERR_STATE_ENABLED = 6
AMDSMI_RAS_ERR_STATE_LAST = 6
AMDSMI_RAS_ERR_STATE_INVALID = 4294967295
c__EA_amdsmi_ras_err_state_t = ctypes.c_uint32 # enum
amdsmi_ras_err_state_t = c__EA_amdsmi_ras_err_state_t
amdsmi_ras_err_state_t__enumvalues = c__EA_amdsmi_ras_err_state_t__enumvalues
# values for enumeration 'c__EA_amdsmi_memory_type_t'
c__EA_amdsmi_memory_type_t__enumvalues = {
0: 'AMDSMI_MEM_TYPE_FIRST',
0: 'AMDSMI_MEM_TYPE_VRAM',
1: 'AMDSMI_MEM_TYPE_VIS_VRAM',
2: 'AMDSMI_MEM_TYPE_GTT',
2: 'AMDSMI_MEM_TYPE_LAST',
}
AMDSMI_MEM_TYPE_FIRST = 0
AMDSMI_MEM_TYPE_VRAM = 0
AMDSMI_MEM_TYPE_VIS_VRAM = 1
AMDSMI_MEM_TYPE_GTT = 2
AMDSMI_MEM_TYPE_LAST = 2
c__EA_amdsmi_memory_type_t = ctypes.c_uint32 # enum
amdsmi_memory_type_t = c__EA_amdsmi_memory_type_t
amdsmi_memory_type_t__enumvalues = c__EA_amdsmi_memory_type_t__enumvalues
# values for enumeration 'c__EA_amdsmi_freq_ind_t'
c__EA_amdsmi_freq_ind_t__enumvalues = {
0: 'AMDSMI_FREQ_IND_MIN',
1: 'AMDSMI_FREQ_IND_MAX',
4294967295: 'AMDSMI_FREQ_IND_INVALID',
}
AMDSMI_FREQ_IND_MIN = 0
AMDSMI_FREQ_IND_MAX = 1
AMDSMI_FREQ_IND_INVALID = 4294967295
c__EA_amdsmi_freq_ind_t = ctypes.c_uint32 # enum
amdsmi_freq_ind_t = c__EA_amdsmi_freq_ind_t
amdsmi_freq_ind_t__enumvalues = c__EA_amdsmi_freq_ind_t__enumvalues
amdsmi_freq_ind = c__EA_amdsmi_freq_ind_t
amdsmi_freq_ind__enumvalues = c__EA_amdsmi_freq_ind_t__enumvalues
# values for enumeration 'c__EA_amdsmi_xgmi_status_t'
c__EA_amdsmi_xgmi_status_t__enumvalues = {
0: 'AMDSMI_XGMI_STATUS_NO_ERRORS',
1: 'AMDSMI_XGMI_STATUS_ERROR',
2: 'AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS',
}
AMDSMI_XGMI_STATUS_NO_ERRORS = 0
AMDSMI_XGMI_STATUS_ERROR = 1
AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS = 2
c__EA_amdsmi_xgmi_status_t = ctypes.c_uint32 # enum
amdsmi_xgmi_status_t = c__EA_amdsmi_xgmi_status_t
amdsmi_xgmi_status_t__enumvalues = c__EA_amdsmi_xgmi_status_t__enumvalues
amdsmi_bit_field_t = ctypes.c_uint64
amdsmi_bit_field = ctypes.c_uint64
# values for enumeration 'c__EA_amdsmi_memory_page_status_t'
c__EA_amdsmi_memory_page_status_t__enumvalues = {
0: 'AMDSMI_MEM_PAGE_STATUS_RESERVED',
1: 'AMDSMI_MEM_PAGE_STATUS_PENDING',
2: 'AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE',
}
AMDSMI_MEM_PAGE_STATUS_RESERVED = 0
AMDSMI_MEM_PAGE_STATUS_PENDING = 1
AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE = 2
c__EA_amdsmi_memory_page_status_t = ctypes.c_uint32 # enum
amdsmi_memory_page_status_t = c__EA_amdsmi_memory_page_status_t
amdsmi_memory_page_status_t__enumvalues = c__EA_amdsmi_memory_page_status_t__enumvalues
# values for enumeration '_AMDSMI_IO_LINK_TYPE'
_AMDSMI_IO_LINK_TYPE__enumvalues = {
0: 'AMDSMI_IOLINK_TYPE_UNDEFINED',
1: 'AMDSMI_IOLINK_TYPE_PCIEXPRESS',
2: 'AMDSMI_IOLINK_TYPE_XGMI',
3: 'AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES',
4294967295: 'AMDSMI_IOLINK_TYPE_SIZE',
}
AMDSMI_IOLINK_TYPE_UNDEFINED = 0
AMDSMI_IOLINK_TYPE_PCIEXPRESS = 1
AMDSMI_IOLINK_TYPE_XGMI = 2
AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES = 3
AMDSMI_IOLINK_TYPE_SIZE = 4294967295
_AMDSMI_IO_LINK_TYPE = ctypes.c_uint32 # enum
AMDSMI_IO_LINK_TYPE = _AMDSMI_IO_LINK_TYPE
AMDSMI_IO_LINK_TYPE__enumvalues = _AMDSMI_IO_LINK_TYPE__enumvalues
# values for enumeration 'c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE'
c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues = {
0: 'AMDSMI_UTILIZATION_COUNTER_FIRST',
0: 'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY',
1: 'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY',
1: 'AMDSMI_UTILIZATION_COUNTER_LAST',
}
AMDSMI_UTILIZATION_COUNTER_FIRST = 0
AMDSMI_COARSE_GRAIN_GFX_ACTIVITY = 0
AMDSMI_COARSE_GRAIN_MEM_ACTIVITY = 1
AMDSMI_UTILIZATION_COUNTER_LAST = 1
c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE = ctypes.c_uint32 # enum
AMDSMI_UTILIZATION_COUNTER_TYPE = c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE
AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues = c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues
class c__SA_amdsmi_utilization_counter_t(Structure):
pass
c__SA_amdsmi_utilization_counter_t._pack_ = 1 # source:False
c__SA_amdsmi_utilization_counter_t._fields_ = [
('type', AMDSMI_UTILIZATION_COUNTER_TYPE),
('PADDING_0', ctypes.c_ubyte * 4),
('value', ctypes.c_uint64),
]
amdsmi_utilization_counter_t = c__SA_amdsmi_utilization_counter_t
class c__SA_amdsmi_retired_page_record_t(Structure):
pass
c__SA_amdsmi_retired_page_record_t._pack_ = 1 # source:False
c__SA_amdsmi_retired_page_record_t._fields_ = [
('page_address', ctypes.c_uint64),
('page_size', ctypes.c_uint64),
('status', amdsmi_memory_page_status_t),
('PADDING_0', ctypes.c_ubyte * 4),
]
amdsmi_retired_page_record_t = c__SA_amdsmi_retired_page_record_t
class c__SA_amdsmi_power_profile_status_t(Structure):
pass
c__SA_amdsmi_power_profile_status_t._pack_ = 1 # source:False
c__SA_amdsmi_power_profile_status_t._fields_ = [
('available_profiles', ctypes.c_uint64),
('current', amdsmi_power_profile_preset_masks_t),
('num_profiles', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
]
amdsmi_power_profile_status_t = c__SA_amdsmi_power_profile_status_t
amdsmi_power_profile_status = c__SA_amdsmi_power_profile_status_t
class c__SA_amdsmi_frequencies_t(Structure):
pass
c__SA_amdsmi_frequencies_t._pack_ = 1 # source:False
c__SA_amdsmi_frequencies_t._fields_ = [
('num_supported', ctypes.c_uint32),
('current', ctypes.c_uint32),
('frequency', ctypes.c_uint64 * 32),
]
amdsmi_frequencies_t = c__SA_amdsmi_frequencies_t
amdsmi_frequencies = c__SA_amdsmi_frequencies_t
class c__SA_amdsmi_pcie_bandwidth_t(Structure):
pass
c__SA_amdsmi_pcie_bandwidth_t._pack_ = 1 # source:False
c__SA_amdsmi_pcie_bandwidth_t._fields_ = [
('transfer_rate', amdsmi_frequencies_t),
('lanes', ctypes.c_uint32 * 32),
]
amdsmi_pcie_bandwidth_t = c__SA_amdsmi_pcie_bandwidth_t
amdsmi_pcie_bandwidth = c__SA_amdsmi_pcie_bandwidth_t
class c__SA_amdsmi_version_t(Structure):
pass
c__SA_amdsmi_version_t._pack_ = 1 # source:False
c__SA_amdsmi_version_t._fields_ = [
('major', ctypes.c_uint32),
('minor', ctypes.c_uint32),
('patch', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
('build', ctypes.POINTER(ctypes.c_char)),
]
amdsmi_version_t = c__SA_amdsmi_version_t
amdsmi_version = c__SA_amdsmi_version_t
class c__SA_amdsmi_od_vddc_point_t(Structure):
pass
c__SA_amdsmi_od_vddc_point_t._pack_ = 1 # source:False
c__SA_amdsmi_od_vddc_point_t._fields_ = [
('frequency', ctypes.c_uint64),
('voltage', ctypes.c_uint64),
]
amdsmi_od_vddc_point_t = c__SA_amdsmi_od_vddc_point_t
amdsmi_od_vddc_point = c__SA_amdsmi_od_vddc_point_t
class c__SA_amdsmi_freq_volt_region_t(Structure):
_pack_ = 1 # source:False
_fields_ = [
('freq_range', amdsmi_range_t),
('volt_range', amdsmi_range_t),
]
amdsmi_freq_volt_region_t = c__SA_amdsmi_freq_volt_region_t
amdsmi_freq_volt_region = c__SA_amdsmi_freq_volt_region_t
class c__SA_amdsmi_od_volt_curve_t(Structure):
_pack_ = 1 # source:False
_fields_ = [
('vc_points', c__SA_amdsmi_od_vddc_point_t * 3),
]
amdsmi_od_volt_curve_t = c__SA_amdsmi_od_volt_curve_t
amdsmi_od_volt_curve = c__SA_amdsmi_od_volt_curve_t
class c__SA_amdsmi_od_volt_freq_data_t(Structure):
pass
c__SA_amdsmi_od_volt_freq_data_t._pack_ = 1 # source:False
c__SA_amdsmi_od_volt_freq_data_t._fields_ = [
('curr_sclk_range', amdsmi_range_t),
('curr_mclk_range', amdsmi_range_t),
('sclk_freq_limits', amdsmi_range_t),
('mclk_freq_limits', amdsmi_range_t),
('curve', amdsmi_od_volt_curve_t),
('num_regions', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
]
amdsmi_od_volt_freq_data_t = c__SA_amdsmi_od_volt_freq_data_t
amdsmi_od_volt_freq_data = c__SA_amdsmi_od_volt_freq_data_t
class amd_metrics_table_header_t(Structure):
pass
amd_metrics_table_header_t._pack_ = 1 # source:False
amd_metrics_table_header_t._fields_ = [
('structure_size', ctypes.c_uint16),
('format_revision', ctypes.c_ubyte),
('content_revision', ctypes.c_ubyte),
]
class c__SA_amdsmi_gpu_metrics_t(Structure):
pass
c__SA_amdsmi_gpu_metrics_t._pack_ = 1 # source:False
c__SA_amdsmi_gpu_metrics_t._fields_ = [
('common_header', amd_metrics_table_header_t),
('temperature_edge', ctypes.c_uint16),
('temperature_hotspot', ctypes.c_uint16),
('temperature_mem', ctypes.c_uint16),
('temperature_vrgfx', ctypes.c_uint16),
('temperature_vrsoc', ctypes.c_uint16),
('temperature_vrmem', ctypes.c_uint16),
('average_gfx_activity', ctypes.c_uint16),
('average_umc_activity', ctypes.c_uint16),
('average_mm_activity', ctypes.c_uint16),
('average_socket_power', ctypes.c_uint16),
('energy_accumulator', ctypes.c_uint64),
('system_clock_counter', ctypes.c_uint64),
('average_gfxclk_frequency', ctypes.c_uint16),
('average_socclk_frequency', ctypes.c_uint16),
('average_uclk_frequency', ctypes.c_uint16),
('average_vclk0_frequency', ctypes.c_uint16),
('average_dclk0_frequency', ctypes.c_uint16),
('average_vclk1_frequency', ctypes.c_uint16),
('average_dclk1_frequency', ctypes.c_uint16),
('current_gfxclk', ctypes.c_uint16),
('current_socclk', ctypes.c_uint16),
('current_uclk', ctypes.c_uint16),
('current_vclk0', ctypes.c_uint16),
('current_dclk0', ctypes.c_uint16),
('current_vclk1', ctypes.c_uint16),
('current_dclk1', ctypes.c_uint16),
('throttle_status', ctypes.c_uint32),
('current_fan_speed', ctypes.c_uint16),
('pcie_link_width', ctypes.c_uint16),
('pcie_link_speed', ctypes.c_uint16),
('padding', ctypes.c_uint16),
('gfx_activity_acc', ctypes.c_uint32),
('mem_actvity_acc', ctypes.c_uint32),
('temperature_hbm', ctypes.c_uint16 * 4),
]
amdsmi_gpu_metrics_t = c__SA_amdsmi_gpu_metrics_t
class c__SA_amdsmi_error_count_t(Structure):
pass
c__SA_amdsmi_error_count_t._pack_ = 1 # source:False
c__SA_amdsmi_error_count_t._fields_ = [
('correctable_count', ctypes.c_uint64),
('uncorrectable_count', ctypes.c_uint64),
]
amdsmi_error_count_t = c__SA_amdsmi_error_count_t
class amdsmi_pcie_info(Structure):
pass
amdsmi_pcie_info._pack_ = 1 # source:False
amdsmi_pcie_info._fields_ = [
('pcie_lanes', ctypes.c_uint16),
('PADDING_0', ctypes.c_ubyte * 2),
('pcie_speed', ctypes.c_uint32),
]
amdsmi_pcie_info_t = amdsmi_pcie_info
class c__SA_amdsmi_process_info_t(Structure):
pass
c__SA_amdsmi_process_info_t._pack_ = 1 # source:False
c__SA_amdsmi_process_info_t._fields_ = [
('process_id', ctypes.c_uint32),
('pasid', ctypes.c_uint32),
('vram_usage', ctypes.c_uint64),
('sdma_usage', ctypes.c_uint64),
('cu_occupancy', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
]
amdsmi_process_info_t = c__SA_amdsmi_process_info_t
class amdsmi_func_id_iter_handle(Structure):
pass
amdsmi_func_id_iter_handle_t = ctypes.POINTER(amdsmi_func_id_iter_handle)
class amd_id(Union):
pass
class amd_id_0(Union):
_pack_ = 1 # source:False
_fields_ = [
('memory_type', amdsmi_memory_type_t),
('temp_metric', amdsmi_temperature_metric_t),
('evnt_type', amdsmi_event_type_t),
('evnt_group', amdsmi_event_group_t),
('clk_type', amdsmi_clk_type_t),
('fw_block', amdsmi_fw_block_t),
('gpu_block_type', amdsmi_gpu_block_t),
]
amd_id._pack_ = 1 # source:False
amd_id._fields_ = [
('id', ctypes.c_uint64),
('name', ctypes.POINTER(ctypes.c_char)),
('amd_id_0', amd_id_0),
]
amdsmi_func_id_value_t = amd_id
__all__ = \
['AMDSMI_CNTR_CMD_START', 'AMDSMI_CNTR_CMD_STOP',
'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY',
'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY', 'AMDSMI_DEV_PERF_LEVEL_AUTO',
'AMDSMI_DEV_PERF_LEVEL_DETERMINISM',
'AMDSMI_DEV_PERF_LEVEL_FIRST', 'AMDSMI_DEV_PERF_LEVEL_HIGH',
'AMDSMI_DEV_PERF_LEVEL_LAST', 'AMDSMI_DEV_PERF_LEVEL_LOW',
'AMDSMI_DEV_PERF_LEVEL_MANUAL',
'AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_MCLK',
'AMDSMI_DEV_PERF_LEVEL_STABLE_MIN_SCLK',
'AMDSMI_DEV_PERF_LEVEL_STABLE_PEAK',
'AMDSMI_DEV_PERF_LEVEL_STABLE_STD',
'AMDSMI_DEV_PERF_LEVEL_UNKNOWN', 'AMDSMI_EVNT_FIRST',
'AMDSMI_EVNT_GRP_INVALID', 'AMDSMI_EVNT_GRP_XGMI',
'AMDSMI_EVNT_GRP_XGMI_DATA_OUT', 'AMDSMI_EVNT_LAST',
'AMDSMI_EVNT_XGMI_0_BEATS_TX', 'AMDSMI_EVNT_XGMI_0_NOP_TX',
'AMDSMI_EVNT_XGMI_0_REQUEST_TX', 'AMDSMI_EVNT_XGMI_0_RESPONSE_TX',
'AMDSMI_EVNT_XGMI_1_BEATS_TX', 'AMDSMI_EVNT_XGMI_1_NOP_TX',
'AMDSMI_EVNT_XGMI_1_REQUEST_TX', 'AMDSMI_EVNT_XGMI_1_RESPONSE_TX',
'AMDSMI_EVNT_XGMI_DATA_OUT_0', 'AMDSMI_EVNT_XGMI_DATA_OUT_1',
'AMDSMI_EVNT_XGMI_DATA_OUT_2', 'AMDSMI_EVNT_XGMI_DATA_OUT_3',
'AMDSMI_EVNT_XGMI_DATA_OUT_4', 'AMDSMI_EVNT_XGMI_DATA_OUT_5',
'AMDSMI_EVNT_XGMI_DATA_OUT_FIRST',
'AMDSMI_EVNT_XGMI_DATA_OUT_LAST', 'AMDSMI_EVNT_XGMI_FIRST',
'AMDSMI_EVNT_XGMI_LAST', 'AMDSMI_EVT_NOTIF_FIRST',
'AMDSMI_EVT_NOTIF_GPU_POST_RESET',
'AMDSMI_EVT_NOTIF_GPU_PRE_RESET', 'AMDSMI_EVT_NOTIF_LAST',
'AMDSMI_EVT_NOTIF_THERMAL_THROTTLE', 'AMDSMI_EVT_NOTIF_VMFAULT',
'AMDSMI_FREQ_IND_INVALID', 'AMDSMI_FREQ_IND_MAX',
'AMDSMI_FREQ_IND_MIN', 'AMDSMI_GPU_BLOCK_ATHUB',
'AMDSMI_GPU_BLOCK_DF', 'AMDSMI_GPU_BLOCK_FIRST',
'AMDSMI_GPU_BLOCK_FUSE', 'AMDSMI_GPU_BLOCK_GFX',
'AMDSMI_GPU_BLOCK_HDP', 'AMDSMI_GPU_BLOCK_INVALID',
'AMDSMI_GPU_BLOCK_LAST', 'AMDSMI_GPU_BLOCK_MMHUB',
'AMDSMI_GPU_BLOCK_MP0', 'AMDSMI_GPU_BLOCK_MP1',
'AMDSMI_GPU_BLOCK_PCIE_BIF', 'AMDSMI_GPU_BLOCK_RESERVED',
'AMDSMI_GPU_BLOCK_SDMA', 'AMDSMI_GPU_BLOCK_SEM',
'AMDSMI_GPU_BLOCK_SMN', 'AMDSMI_GPU_BLOCK_UMC',
'AMDSMI_GPU_BLOCK_XGMI_WAFL', 'AMDSMI_INIT_ALL_DEVICES',
'AMDSMI_INIT_AMD_CPUS', 'AMDSMI_INIT_AMD_GPUS',
'AMDSMI_INIT_NON_AMD_CPUS', 'AMDSMI_INIT_NON_AMD_GPUS',
'AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES',
'AMDSMI_IOLINK_TYPE_PCIEXPRESS', 'AMDSMI_IOLINK_TYPE_SIZE',
'AMDSMI_IOLINK_TYPE_UNDEFINED', 'AMDSMI_IOLINK_TYPE_XGMI',
'AMDSMI_IO_LINK_TYPE', 'AMDSMI_IO_LINK_TYPE__enumvalues',
'AMDSMI_MEM_PAGE_STATUS_PENDING',
'AMDSMI_MEM_PAGE_STATUS_RESERVED',
'AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE', 'AMDSMI_MEM_TYPE_FIRST',
'AMDSMI_MEM_TYPE_GTT', 'AMDSMI_MEM_TYPE_LAST',
'AMDSMI_MEM_TYPE_VIS_VRAM', 'AMDSMI_MEM_TYPE_VRAM',
'AMDSMI_MM_UVD', 'AMDSMI_MM_VCE', 'AMDSMI_MM_VCN',
'AMDSMI_MM__MAX', 'AMDSMI_PWR_PROF_PRST_3D_FULL_SCR_MASK',
'AMDSMI_PWR_PROF_PRST_BOOTUP_DEFAULT',
'AMDSMI_PWR_PROF_PRST_COMPUTE_MASK',
'AMDSMI_PWR_PROF_PRST_CUSTOM_MASK',
'AMDSMI_PWR_PROF_PRST_INVALID', 'AMDSMI_PWR_PROF_PRST_LAST',
'AMDSMI_PWR_PROF_PRST_POWER_SAVING_MASK',
'AMDSMI_PWR_PROF_PRST_VIDEO_MASK', 'AMDSMI_PWR_PROF_PRST_VR_MASK',
'AMDSMI_RAS_ERR_STATE_DISABLED', 'AMDSMI_RAS_ERR_STATE_ENABLED',
'AMDSMI_RAS_ERR_STATE_INVALID', 'AMDSMI_RAS_ERR_STATE_LAST',
'AMDSMI_RAS_ERR_STATE_MULT_UC', 'AMDSMI_RAS_ERR_STATE_NONE',
'AMDSMI_RAS_ERR_STATE_PARITY', 'AMDSMI_RAS_ERR_STATE_POISON',
'AMDSMI_RAS_ERR_STATE_SING_C', 'AMDSMI_SW_COMP_DRIVER',
'AMDSMI_SW_COMP_FIRST', 'AMDSMI_SW_COMP_LAST',
'AMDSMI_TEMP_CRITICAL', 'AMDSMI_TEMP_CRITICAL_HYST',
'AMDSMI_TEMP_CRIT_MIN', 'AMDSMI_TEMP_CRIT_MIN_HYST',
'AMDSMI_TEMP_CURRENT', 'AMDSMI_TEMP_EMERGENCY',
'AMDSMI_TEMP_EMERGENCY_HYST', 'AMDSMI_TEMP_FIRST',
'AMDSMI_TEMP_HIGHEST', 'AMDSMI_TEMP_LAST', 'AMDSMI_TEMP_LOWEST',
'AMDSMI_TEMP_MAX', 'AMDSMI_TEMP_MAX_HYST', 'AMDSMI_TEMP_MIN',
'AMDSMI_TEMP_MIN_HYST', 'AMDSMI_TEMP_OFFSET',
'AMDSMI_UTILIZATION_COUNTER_FIRST',
'AMDSMI_UTILIZATION_COUNTER_LAST',
'AMDSMI_UTILIZATION_COUNTER_TYPE',
'AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues',
'AMDSMI_VOLT_AVERAGE', 'AMDSMI_VOLT_CURRENT', 'AMDSMI_VOLT_FIRST',
'AMDSMI_VOLT_HIGHEST', 'AMDSMI_VOLT_LAST', 'AMDSMI_VOLT_LOWEST',
'AMDSMI_VOLT_MAX', 'AMDSMI_VOLT_MAX_CRIT', 'AMDSMI_VOLT_MIN',
'AMDSMI_VOLT_MIN_CRIT', 'AMDSMI_VOLT_TYPE_FIRST',
'AMDSMI_VOLT_TYPE_INVALID', 'AMDSMI_VOLT_TYPE_LAST',
'AMDSMI_VOLT_TYPE_VDDGFX', 'AMDSMI_XGMI_STATUS_ERROR',
'AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS',
'AMDSMI_XGMI_STATUS_NO_ERRORS', 'AMD_CPU', 'AMD_GPU',
'CLK_TYPE_DCEF', 'CLK_TYPE_DCLK0', 'CLK_TYPE_DCLK1',
'CLK_TYPE_DF', 'CLK_TYPE_FIRST', 'CLK_TYPE_GFX', 'CLK_TYPE_MEM',
'CLK_TYPE_PCIE', 'CLK_TYPE_SOC', 'CLK_TYPE_SYS', 'CLK_TYPE_VCLK0',
'CLK_TYPE_VCLK1', 'CLK_TYPE__MAX', 'CONTAINER_DOCKER',
'CONTAINER_LXC', 'FW_ID_ASD', 'FW_ID_CP_CE', 'FW_ID_CP_ME',
'FW_ID_CP_MEC1', 'FW_ID_CP_MEC2', 'FW_ID_CP_MEC_JT1',
'FW_ID_CP_MEC_JT2', 'FW_ID_CP_PFP', 'FW_ID_CP_PM4', 'FW_ID_DFC',
'FW_ID_DMCU', 'FW_ID_DMCU_ERAM', 'FW_ID_DMCU_ISR',
'FW_ID_DRV_CAP', 'FW_ID_FIRST', 'FW_ID_ISP', 'FW_ID_MC',
'FW_ID_MMSCH', 'FW_ID_PSP_BL', 'FW_ID_PSP_KEYDB',
'FW_ID_PSP_SOSDRV', 'FW_ID_PSP_SPL', 'FW_ID_PSP_SYSDRV',
'FW_ID_PSP_TOC', 'FW_ID_RLC', 'FW_ID_RLC_RESTORE_LIST_CNTL',
'FW_ID_RLC_RESTORE_LIST_GPM_MEM',
'FW_ID_RLC_RESTORE_LIST_SRM_MEM', 'FW_ID_RLC_SRLG',
'FW_ID_RLC_SRLS', 'FW_ID_RLC_V', 'FW_ID_SDMA0', 'FW_ID_SDMA1',
'FW_ID_SDMA2', 'FW_ID_SDMA3', 'FW_ID_SDMA4', 'FW_ID_SDMA5',
'FW_ID_SDMA6', 'FW_ID_SDMA7', 'FW_ID_SMC', 'FW_ID_SMU',
'FW_ID_TA_RAS', 'FW_ID_UVD', 'FW_ID_VCE', 'FW_ID_VCN',
'FW_ID_XGMI', 'FW_ID__MAX', 'NON_AMD_CPU', 'NON_AMD_GPU',
'TEMPERATURE_TYPE_EDGE', 'TEMPERATURE_TYPE_FIRST',
'TEMPERATURE_TYPE_HBM_0', 'TEMPERATURE_TYPE_HBM_1',
'TEMPERATURE_TYPE_HBM_2', 'TEMPERATURE_TYPE_HBM_3',
'TEMPERATURE_TYPE_JUNCTION', 'TEMPERATURE_TYPE_PLX',
'TEMPERATURE_TYPE_VRAM', 'TEMPERATURE_TYPE__MAX', 'UNKNOWN',
'_AMDSMI_IO_LINK_TYPE', 'amdsmi_asic_info_t', 'amdsmi_bdf_t',
'amdsmi_bit_field', 'amdsmi_bit_field_t', 'amdsmi_board_info_t',
'amdsmi_clk_measure_t', 'amdsmi_clk_type', 'amdsmi_clk_type_t',
'amdsmi_clk_type_t__enumvalues', 'amdsmi_container_types',
'amdsmi_container_types_t',
'amdsmi_container_types_t__enumvalues',
'amdsmi_counter_command_t',
'amdsmi_counter_command_t__enumvalues', 'amdsmi_counter_value_t',
'amdsmi_dev_perf_level', 'amdsmi_dev_perf_level__enumvalues',
'amdsmi_dev_perf_level_t', 'amdsmi_dev_perf_level_t__enumvalues',
'amdsmi_device_handle', 'amdsmi_engine_usage_t',
'amdsmi_error_count_t', 'amdsmi_event_group_t',
'amdsmi_event_group_t__enumvalues', 'amdsmi_event_handle_t',
'amdsmi_event_type_t', 'amdsmi_event_type_t__enumvalues',
'amdsmi_evt_notification_data_t',
'amdsmi_evt_notification_type_t',
'amdsmi_evt_notification_type_t__enumvalues', 'amdsmi_freq_ind',
'amdsmi_freq_ind__enumvalues', 'amdsmi_freq_ind_t',
'amdsmi_freq_ind_t__enumvalues', 'amdsmi_freq_volt_region',
'amdsmi_freq_volt_region_t', 'amdsmi_frequencies',
'amdsmi_frequencies_t', 'amdsmi_frequency_range_t',
'amdsmi_func_id_iter_handle_t', 'amdsmi_func_id_value_t',
'amdsmi_fw_block', 'amdsmi_fw_block_t',
'amdsmi_fw_block_t__enumvalues', 'amdsmi_fw_info_t',
'amdsmi_gpu_block', 'amdsmi_gpu_block__enumvalues',
'amdsmi_gpu_block_t', 'amdsmi_gpu_block_t__enumvalues',
'amdsmi_gpu_caps_t', 'amdsmi_gpu_metrics_t', 'amdsmi_init_flags',
'amdsmi_init_flags_t', 'amdsmi_init_flags_t__enumvalues',
'amdsmi_memory_page_status_t',
'amdsmi_memory_page_status_t__enumvalues', 'amdsmi_memory_type_t',
'amdsmi_memory_type_t__enumvalues', 'amdsmi_mm_ip',
'amdsmi_mm_ip_t', 'amdsmi_mm_ip_t__enumvalues',
'amdsmi_od_vddc_point', 'amdsmi_od_vddc_point_t',
'amdsmi_od_volt_curve', 'amdsmi_od_volt_curve_t',
'amdsmi_od_volt_freq_data', 'amdsmi_od_volt_freq_data_t',
'amdsmi_pcie_bandwidth', 'amdsmi_pcie_bandwidth_t',
'amdsmi_pcie_info_t', 'amdsmi_power_cap_info_t',
'amdsmi_power_limit_t', 'amdsmi_power_measure_t',
'amdsmi_power_profile_preset_masks',
'amdsmi_power_profile_preset_masks__enumvalues',
'amdsmi_power_profile_preset_masks_t',
'amdsmi_power_profile_preset_masks_t__enumvalues',
'amdsmi_power_profile_status', 'amdsmi_power_profile_status_t',
'amdsmi_proc_info_t', 'amdsmi_process_handle',
'amdsmi_process_info_t', 'amdsmi_range', 'amdsmi_range_t',
'amdsmi_ras_err_state_t', 'amdsmi_ras_err_state_t__enumvalues',
'amdsmi_retired_page_record_t', 'amdsmi_socket_handle',
'amdsmi_sw_component_t', 'amdsmi_sw_component_t__enumvalues',
'amdsmi_temperature_limit_t', 'amdsmi_temperature_metric',
'amdsmi_temperature_metric__enumvalues',
'amdsmi_temperature_metric_t',
'amdsmi_temperature_metric_t__enumvalues', 'amdsmi_temperature_t',
'amdsmi_temperature_type', 'amdsmi_temperature_type_t',
'amdsmi_temperature_type_t__enumvalues',
'amdsmi_utilization_counter_t', 'amdsmi_vbios_info_t',
'amdsmi_version', 'amdsmi_version_t', 'amdsmi_voltage_metric_t',
'amdsmi_voltage_metric_t__enumvalues', 'amdsmi_voltage_type_t',
'amdsmi_voltage_type_t__enumvalues', 'amdsmi_vram_info_t',
'amdsmi_xgmi_info_t', 'amdsmi_xgmi_status_t',
'amdsmi_xgmi_status_t__enumvalues',
'c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE',
'c__EA_amdsmi_counter_command_t', 'c__EA_amdsmi_dev_perf_level_t',
'c__EA_amdsmi_event_group_t', 'c__EA_amdsmi_event_type_t',
'c__EA_amdsmi_evt_notification_type_t', 'c__EA_amdsmi_freq_ind_t',
'c__EA_amdsmi_gpu_block_t', 'c__EA_amdsmi_memory_page_status_t',
'c__EA_amdsmi_memory_type_t',
'c__EA_amdsmi_power_profile_preset_masks_t',
'c__EA_amdsmi_ras_err_state_t', 'c__EA_amdsmi_sw_component_t',
'c__EA_amdsmi_temperature_metric_t',
'c__EA_amdsmi_voltage_metric_t', 'c__EA_amdsmi_voltage_type_t',
'c__EA_amdsmi_xgmi_status_t', 'device_type', 'device_type_t',
'device_type_t__enumvalues', 'amd_metrics_table_header_t',
'amdsmi_asic_info', 'amdsmi_bdf_0',
'amdsmi_board_info', 'amdsmi_clk_measure',
'amdsmi_engine_usage', 'amdsmi_frequency_range',
'amdsmi_func_id_iter_handle', 'amdsmi_fw_info',
'amdsmi_fw_info_0', 'amdsmi_gpu_caps',
'amdsmi_gpu_caps_0', 'amdsmi_gpu_caps_1',
'amdsmi_pcie_info', 'amdsmi_power_cap_info',
'amdsmi_power_limit', 'amdsmi_power_measure',
'amdsmi_process_info', 'amdsmi_process_info_0',
'amdsmi_process_info_1', 'amdsmi_temperature',
'amdsmi_temperature_limit', 'amdsmi_vbios_info',
'amdsmi_vram_info', 'amdsmi_xgmi_info',
'c__SA_amdsmi_counter_value_t',
'c__SA_amdsmi_error_count_t',
'c__SA_amdsmi_evt_notification_data_t',
'c__SA_amdsmi_freq_volt_region_t',
'c__SA_amdsmi_frequencies_t',
'c__SA_amdsmi_gpu_metrics_t',
'c__SA_amdsmi_od_vddc_point_t',
'c__SA_amdsmi_od_volt_curve_t',
'c__SA_amdsmi_od_volt_freq_data_t',
'c__SA_amdsmi_pcie_bandwidth_t',
'c__SA_amdsmi_power_profile_status_t',
'c__SA_amdsmi_process_info_t',
'c__SA_amdsmi_range_t',
'c__SA_amdsmi_retired_page_record_t',
'c__SA_amdsmi_utilization_counter_t',
'c__SA_amdsmi_version_t', 'amd_id', 'amd_id_0',
'amdsmi_bdf']
# -*- coding: utf-8 -*-
#
# TARGET arch is: []
# WORD_SIZE is: 8
# POINTER_SIZE is: 8
# LONGDOUBLE_SIZE is: 16
#
import ctypes
c_int128 = ctypes.c_ubyte*16
c_uint128 = c_int128
void = None
if ctypes.sizeof(ctypes.c_longdouble) == 16:
c_long_double_t = ctypes.c_longdouble
else:
c_long_double_t = ctypes.c_ubyte*16
# values for enumeration 'amdsmi_init_flags'
amdsmi_init_flags__enumvalues = {
0: 'AMDSMI_INIT_ALL_DEVICES',
1: 'AMDSMI_INIT_AMD_CPUS',
2: 'AMDSMI_INIT_AMD_GPUS',
4: 'AMDSMI_INIT_NON_AMD_CPUS',
8: 'AMDSMI_INIT_NON_AMD_GPUS',
}
AMDSMI_INIT_ALL_DEVICES = 0
AMDSMI_INIT_AMD_CPUS = 1
AMDSMI_INIT_AMD_GPUS = 2
AMDSMI_INIT_NON_AMD_CPUS = 4
AMDSMI_INIT_NON_AMD_GPUS = 8
amdsmi_init_flags = ctypes.c_uint32 # enum
amdsmi_init_flags_t = amdsmi_init_flags
amdsmi_init_flags_t__enumvalues = amdsmi_init_flags__enumvalues
# values for enumeration 'amdsmi_mm_ip'
amdsmi_mm_ip__enumvalues = {
0: 'AMDSMI_MM_UVD',
1: 'AMDSMI_MM_VCE',
2: 'AMDSMI_MM_VCN',
3: 'AMDSMI_MM__MAX',
}
AMDSMI_MM_UVD = 0
AMDSMI_MM_VCE = 1
AMDSMI_MM_VCN = 2
AMDSMI_MM__MAX = 3
amdsmi_mm_ip = ctypes.c_uint32 # enum
amdsmi_mm_ip_t = amdsmi_mm_ip
amdsmi_mm_ip_t__enumvalues = amdsmi_mm_ip__enumvalues
# values for enumeration 'amdsmi_container_types'
amdsmi_container_types__enumvalues = {
0: 'CONTAINER_LXC',
1: 'CONTAINER_DOCKER',
}
CONTAINER_LXC = 0
CONTAINER_DOCKER = 1
amdsmi_container_types = ctypes.c_uint32 # enum
amdsmi_container_types_t = amdsmi_container_types
amdsmi_container_types_t__enumvalues = amdsmi_container_types__enumvalues
amdsmi_device_handle = ctypes.POINTER(None)
amdsmi_socket_handle = ctypes.POINTER(None)
# values for enumeration 'device_type'
device_type__enumvalues = {
0: 'UNKNOWN',
1: 'AMD_GPU',
2: 'AMD_CPU',
3: 'NON_AMD_GPU',
4: 'NON_AMD_CPU',
}
UNKNOWN = 0
AMD_GPU = 1
AMD_CPU = 2
NON_AMD_GPU = 3
NON_AMD_CPU = 4
device_type = ctypes.c_uint32 # enum
device_type_t = device_type
device_type_t__enumvalues = device_type__enumvalues
# values for enumeration 'amdsmi_status_t'
amdsmi_status_t__enumvalues = {
0: 'AMDSMI_STATUS_SUCCESS',
1: 'AMDSMI_STATUS_INVAL',
2: 'AMDSMI_STATUS_NOT_SUPPORTED',
3: 'AMDSMI_STATUS_FILE_ERROR',
4: 'AMDSMI_STATUS_NO_PERM',
5: 'AMDSMI_STATUS_OUT_OF_RESOURCES',
6: 'AMDSMI_STATUS_INTERNAL_EXCEPTION',
7: 'AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS',
8: 'AMDSMI_STATUS_INIT_ERROR',
9: 'AMDSMI_STATUS_NOT_YET_IMPLEMENTED',
10: 'AMDSMI_STATUS_NOT_FOUND',
11: 'AMDSMI_STATUS_INSUFFICIENT_SIZE',
12: 'AMDSMI_STATUS_INTERRUPT',
13: 'AMDSMI_STATUS_UNEXPECTED_SIZE',
14: 'AMDSMI_STATUS_NO_DATA',
15: 'AMDSMI_STATUS_UNEXPECTED_DATA',
16: 'AMDSMI_STATUS_BUSY',
17: 'AMDSMI_STATUS_REFCOUNT_OVERFLOW',
1000: 'AMDSMI_LIB_START',
1000: 'AMDSMI_STATUS_FAIL_LOAD_MODULE',
1001: 'AMDSMI_STATUS_FAIL_LOAD_SYMBOL',
1002: 'AMDSMI_STATUS_DRM_ERROR',
1003: 'AMDSMI_STATUS_IO',
1004: 'AMDSMI_STATUS_FAULT',
1005: 'AMDSMI_STATUS_API_FAILED',
1006: 'AMDSMI_STATUS_TIMEOUT',
1007: 'AMDSMI_STATUS_NO_SLOT',
1008: 'AMDSMI_STATUS_RETRY',
1009: 'AMDSMI_STATUS_NOT_INIT',
4294967295: 'AMDSMI_STATUS_UNKNOWN_ERROR',
}
AMDSMI_STATUS_SUCCESS = 0
AMDSMI_STATUS_INVAL = 1
AMDSMI_STATUS_NOT_SUPPORTED = 2
AMDSMI_STATUS_FILE_ERROR = 3
AMDSMI_STATUS_NO_PERM = 4
AMDSMI_STATUS_OUT_OF_RESOURCES = 5
AMDSMI_STATUS_INTERNAL_EXCEPTION = 6
AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS = 7
AMDSMI_STATUS_INIT_ERROR = 8
AMDSMI_STATUS_NOT_YET_IMPLEMENTED = 9
AMDSMI_STATUS_NOT_FOUND = 10
AMDSMI_STATUS_INSUFFICIENT_SIZE = 11
AMDSMI_STATUS_INTERRUPT = 12
AMDSMI_STATUS_UNEXPECTED_SIZE = 13
AMDSMI_STATUS_NO_DATA = 14
AMDSMI_STATUS_UNEXPECTED_DATA = 15
AMDSMI_STATUS_BUSY = 16
AMDSMI_STATUS_REFCOUNT_OVERFLOW = 17
AMDSMI_LIB_START = 1000
AMDSMI_STATUS_FAIL_LOAD_MODULE = 1000
AMDSMI_STATUS_FAIL_LOAD_SYMBOL = 1001
AMDSMI_STATUS_DRM_ERROR = 1002
AMDSMI_STATUS_IO = 1003
AMDSMI_STATUS_FAULT = 1004
AMDSMI_STATUS_API_FAILED = 1005
AMDSMI_STATUS_TIMEOUT = 1006
AMDSMI_STATUS_NO_SLOT = 1007
AMDSMI_STATUS_RETRY = 1008
AMDSMI_STATUS_NOT_INIT = 1009
AMDSMI_STATUS_UNKNOWN_ERROR = 4294967295
amdsmi_status_t = ctypes.c_uint32 # enum
__all__ += \
['AMDSMI_INIT_ALL_DEVICES', 'AMDSMI_INIT_AMD_CPUS',
'AMDSMI_INIT_AMD_GPUS', 'AMDSMI_INIT_NON_AMD_CPUS',
'AMDSMI_INIT_NON_AMD_GPUS', 'AMDSMI_LIB_START', 'AMDSMI_MM_UVD',
'AMDSMI_MM_VCE', 'AMDSMI_MM_VCN', 'AMDSMI_MM__MAX',
'AMDSMI_STATUS_API_FAILED', 'AMDSMI_STATUS_BUSY',
'AMDSMI_STATUS_DRM_ERROR', 'AMDSMI_STATUS_FAIL_LOAD_MODULE',
'AMDSMI_STATUS_FAIL_LOAD_SYMBOL', 'AMDSMI_STATUS_FAULT',
'AMDSMI_STATUS_FILE_ERROR', 'AMDSMI_STATUS_INIT_ERROR',
'AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS',
'AMDSMI_STATUS_INSUFFICIENT_SIZE',
'AMDSMI_STATUS_INTERNAL_EXCEPTION', 'AMDSMI_STATUS_INTERRUPT',
'AMDSMI_STATUS_INVAL', 'AMDSMI_STATUS_IO',
'AMDSMI_STATUS_NOT_FOUND', 'AMDSMI_STATUS_NOT_INIT',
'AMDSMI_STATUS_NOT_SUPPORTED',
'AMDSMI_STATUS_NOT_YET_IMPLEMENTED', 'AMDSMI_STATUS_NO_DATA',
'AMDSMI_STATUS_NO_PERM', 'AMDSMI_STATUS_NO_SLOT',
'AMDSMI_STATUS_OUT_OF_RESOURCES',
'AMDSMI_STATUS_REFCOUNT_OVERFLOW', 'AMDSMI_STATUS_RETRY',
'AMDSMI_STATUS_SUCCESS', 'AMDSMI_STATUS_TIMEOUT',
'AMDSMI_STATUS_UNEXPECTED_DATA', 'AMDSMI_STATUS_UNEXPECTED_SIZE',
'AMDSMI_STATUS_UNKNOWN_ERROR', 'AMD_CPU', 'AMD_GPU',
'CONTAINER_DOCKER', 'CONTAINER_LXC', 'NON_AMD_CPU', 'NON_AMD_GPU',
'UNKNOWN', 'amdsmi_container_types', 'amdsmi_container_types_t',
'amdsmi_container_types_t__enumvalues', 'amdsmi_device_handle',
'amdsmi_init_flags', 'amdsmi_init_flags_t',
'amdsmi_init_flags_t__enumvalues', 'amdsmi_mm_ip',
'amdsmi_mm_ip_t', 'amdsmi_mm_ip_t__enumvalues',
'amdsmi_socket_handle', 'amdsmi_status_t', 'device_type',
'device_type_t', 'device_type_t__enumvalues']
__all__ += ['amdsmi_init', 'amdsmi_shut_down', 'amdsmi_get_socket_handles', 'amdsmi_get_socket_info', 'amdsmi_get_device_handles', 'amdsmi_get_device_type', 'amdsmi_get_device_handle_from_bdf', 'amdsmi_dev_id_get', 'amdsmi_dev_vendor_name_get', 'amdsmi_dev_vram_vendor_get', 'amdsmi_dev_subsystem_id_get', 'amdsmi_dev_subsystem_name_get', 'amdsmi_dev_drm_render_minor_get', 'amdsmi_dev_pci_bandwidth_get', 'amdsmi_dev_pci_id_get', 'amdsmi_topo_numa_affinity_get', 'amdsmi_dev_pci_throughput_get', 'amdsmi_dev_pci_replay_counter_get', 'amdsmi_dev_pci_bandwidth_set', 'amdsmi_dev_power_ave_get', 'amdsmi_dev_energy_count_get', 'amdsmi_dev_power_cap_set', 'amdsmi_dev_power_profile_set', 'amdsmi_dev_memory_total_get', 'amdsmi_dev_memory_usage_get', 'amdsmi_get_bad_page_info', 'amdsmi_get_ras_block_features_enabled', 'amdsmi_dev_memory_busy_percent_get', 'amdsmi_dev_memory_reserved_pages_get', 'amdsmi_dev_fan_rpms_get', 'amdsmi_dev_fan_speed_get', 'amdsmi_dev_fan_speed_max_get', 'amdsmi_dev_temp_metric_get', 'amdsmi_dev_volt_metric_get', 'amdsmi_dev_fan_reset', 'amdsmi_dev_fan_speed_set', 'amdsmi_dev_busy_percent_get', 'amdsmi_utilization_count_get', 'amdsmi_get_pcie_link_status', 'amdsmi_get_pcie_link_caps', 'amdsmi_dev_perf_level_get', 'amdsmi_perf_determinism_mode_set', 'amdsmi_dev_overdrive_level_get', 'amdsmi_dev_gpu_clk_freq_get', 'amdsmi_dev_gpu_reset', 'amdsmi_dev_od_volt_info_get', 'amdsmi_dev_gpu_metrics_info_get', 'amdsmi_dev_clk_range_set', 'amdsmi_dev_od_clk_info_set', 'amdsmi_dev_od_volt_info_set', 'amdsmi_dev_od_volt_curve_regions_get', 'amdsmi_dev_power_profile_presets_get', 'amdsmi_dev_perf_level_set', 'amdsmi_dev_perf_level_set_v1', 'amdsmi_dev_overdrive_level_set', 'amdsmi_dev_overdrive_level_set_v1', 'amdsmi_dev_gpu_clk_freq_set', 'amdsmi_version_get', 'amdsmi_version_str_get', 'amdsmi_dev_ecc_count_get', 'amdsmi_dev_ecc_enabled_get', 'amdsmi_dev_ecc_status_get', 'amdsmi_status_string', 'amdsmi_dev_counter_group_supported', 'amdsmi_dev_counter_create', 'amdsmi_dev_counter_destroy', 'amdsmi_counter_control', 'amdsmi_counter_read', 'amdsmi_counter_available_counters_get', 'amdsmi_compute_process_info_get', 'amdsmi_compute_process_info_by_pid_get', 'amdsmi_compute_process_gpus_get', 'amdsmi_dev_xgmi_error_status', 'amdsmi_dev_xgmi_error_reset', 'amdsmi_topo_get_numa_node_number', 'amdsmi_topo_get_link_weight', 'amdsmi_minmax_bandwidth_get', 'amdsmi_topo_get_link_type', 'amdsmi_is_P2P_accessible', 'amdsmi_dev_supported_func_iterator_open', 'amdsmi_dev_supported_variant_iterator_open', 'amdsmi_func_iter_next', 'amdsmi_dev_supported_func_iterator_close', 'amdsmi_func_iter_value_get', 'amdsmi_event_notification_init', 'amdsmi_event_notification_mask_set', 'amdsmi_event_notification_get', 'amdsmi_event_notification_stop', 'amdsmi_get_device_bdf', 'amdsmi_get_device_uuid', 'amdsmi_get_driver_version', 'amdsmi_get_asic_info', 'amdsmi_get_board_info', 'amdsmi_get_power_cap_info', 'amdsmi_get_xgmi_info', 'amdsmi_get_caps_info', 'amdsmi_get_fw_info', 'amdsmi_get_vbios_info', 'amdsmi_get_gpu_activity', 'amdsmi_get_power_measure', 'amdsmi_get_clock_measure', 'amdsmi_get_temperature_measure', 'amdsmi_get_temperature_limit', 'amdsmi_get_power_limit', 'amdsmi_get_vram_usage', 'amdsmi_get_target_frequency_range', 'amdsmi_get_process_list', 'amdsmi_get_process_info', 'amdsmi_get_ecc_error_count']
__all__ += []
_lib = CDLL(os.path.join(os.path.dirname(__file__), "libamd_smi.so"))
_lib.amdsmi_init.argtypes = [c_uint64]
_lib.amdsmi_init.restype = amdsmi_status_t
amdsmi_init = _lib.amdsmi_init
_lib.amdsmi_shut_down.argtypes = []
_lib.amdsmi_shut_down.restype = amdsmi_status_t
amdsmi_shut_down = _lib.amdsmi_shut_down
_lib.amdsmi_get_socket_handles.argtypes = [POINTER(c_uint32),POINTER(amdsmi_socket_handle)]
_lib.amdsmi_get_socket_handles.restype = amdsmi_status_t
amdsmi_get_socket_handles = _lib.amdsmi_get_socket_handles
_lib.amdsmi_get_socket_info.argtypes = [amdsmi_socket_handle,c_char_p,c_uint64]
_lib.amdsmi_get_socket_info.restype = amdsmi_status_t
amdsmi_get_socket_info = _lib.amdsmi_get_socket_info
_lib.amdsmi_get_device_handles.argtypes = [amdsmi_socket_handle,POINTER(c_uint32),POINTER(amdsmi_device_handle)]
_lib.amdsmi_get_device_handles.restype = amdsmi_status_t
amdsmi_get_device_handles = _lib.amdsmi_get_device_handles
_lib.amdsmi_get_device_type.argtypes = [amdsmi_device_handle,POINTER(device_type_t)]
_lib.amdsmi_get_device_type.restype = amdsmi_status_t
amdsmi_get_device_type = _lib.amdsmi_get_device_type
_lib.amdsmi_get_device_handle_from_bdf.argtypes = [amdsmi_bdf_t,POINTER(amdsmi_device_handle)]
_lib.amdsmi_get_device_handle_from_bdf.restype = amdsmi_status_t
amdsmi_get_device_handle_from_bdf = _lib.amdsmi_get_device_handle_from_bdf
_lib.amdsmi_dev_id_get.argtypes = [amdsmi_device_handle,POINTER(c_uint16)]
_lib.amdsmi_dev_id_get.restype = amdsmi_status_t
amdsmi_dev_id_get = _lib.amdsmi_dev_id_get
_lib.amdsmi_dev_vendor_name_get.argtypes = [amdsmi_device_handle,c_char_p,c_uint64]
_lib.amdsmi_dev_vendor_name_get.restype = amdsmi_status_t
amdsmi_dev_vendor_name_get = _lib.amdsmi_dev_vendor_name_get
_lib.amdsmi_dev_vram_vendor_get.argtypes = [amdsmi_device_handle,c_char_p,c_uint32]
_lib.amdsmi_dev_vram_vendor_get.restype = amdsmi_status_t
amdsmi_dev_vram_vendor_get = _lib.amdsmi_dev_vram_vendor_get
_lib.amdsmi_dev_subsystem_id_get.argtypes = [amdsmi_device_handle,POINTER(c_uint16)]
_lib.amdsmi_dev_subsystem_id_get.restype = amdsmi_status_t
amdsmi_dev_subsystem_id_get = _lib.amdsmi_dev_subsystem_id_get
_lib.amdsmi_dev_subsystem_name_get.argtypes = [amdsmi_device_handle,c_char_p,c_uint64]
_lib.amdsmi_dev_subsystem_name_get.restype = amdsmi_status_t
amdsmi_dev_subsystem_name_get = _lib.amdsmi_dev_subsystem_name_get
_lib.amdsmi_dev_drm_render_minor_get.argtypes = [amdsmi_device_handle,POINTER(c_uint32)]
_lib.amdsmi_dev_drm_render_minor_get.restype = amdsmi_status_t
amdsmi_dev_drm_render_minor_get = _lib.amdsmi_dev_drm_render_minor_get
_lib.amdsmi_dev_pci_bandwidth_get.argtypes = [amdsmi_device_handle,POINTER(amdsmi_pcie_bandwidth_t)]
_lib.amdsmi_dev_pci_bandwidth_get.restype = amdsmi_status_t
amdsmi_dev_pci_bandwidth_get = _lib.amdsmi_dev_pci_bandwidth_get
_lib.amdsmi_dev_pci_id_get.argtypes = [amdsmi_device_handle,POINTER(c_uint64)]
_lib.amdsmi_dev_pci_id_get.restype = amdsmi_status_t
amdsmi_dev_pci_id_get = _lib.amdsmi_dev_pci_id_get
_lib.amdsmi_topo_numa_affinity_get.argtypes = [amdsmi_device_handle,POINTER(c_uint32)]
_lib.amdsmi_topo_numa_affinity_get.restype = amdsmi_status_t
amdsmi_topo_numa_affinity_get = _lib.amdsmi_topo_numa_affinity_get
_lib.amdsmi_dev_pci_throughput_get.argtypes = [amdsmi_device_handle,POINTER(c_uint64),POINTER(c_uint64),POINTER(c_uint64)]
_lib.amdsmi_dev_pci_throughput_get.restype = amdsmi_status_t
amdsmi_dev_pci_throughput_get = _lib.amdsmi_dev_pci_throughput_get
_lib.amdsmi_dev_pci_replay_counter_get.argtypes = [amdsmi_device_handle,POINTER(c_uint64)]
_lib.amdsmi_dev_pci_replay_counter_get.restype = amdsmi_status_t
amdsmi_dev_pci_replay_counter_get = _lib.amdsmi_dev_pci_replay_counter_get
_lib.amdsmi_dev_pci_bandwidth_set.argtypes = [amdsmi_device_handle,c_uint64]
_lib.amdsmi_dev_pci_bandwidth_set.restype = amdsmi_status_t
amdsmi_dev_pci_bandwidth_set = _lib.amdsmi_dev_pci_bandwidth_set
_lib.amdsmi_dev_power_ave_get.argtypes = [amdsmi_device_handle,c_uint32,POINTER(c_uint64)]
_lib.amdsmi_dev_power_ave_get.restype = amdsmi_status_t
amdsmi_dev_power_ave_get = _lib.amdsmi_dev_power_ave_get
_lib.amdsmi_dev_energy_count_get.argtypes = [amdsmi_device_handle,POINTER(c_uint64),POINTER(c_float),POINTER(c_uint64)]
_lib.amdsmi_dev_energy_count_get.restype = amdsmi_status_t
amdsmi_dev_energy_count_get = _lib.amdsmi_dev_energy_count_get
_lib.amdsmi_dev_power_cap_set.argtypes = [amdsmi_device_handle,c_uint32,c_uint64]
_lib.amdsmi_dev_power_cap_set.restype = amdsmi_status_t
amdsmi_dev_power_cap_set = _lib.amdsmi_dev_power_cap_set
_lib.amdsmi_dev_power_profile_set.argtypes = [amdsmi_device_handle,c_uint32,amdsmi_power_profile_preset_masks_t]
_lib.amdsmi_dev_power_profile_set.restype = amdsmi_status_t
amdsmi_dev_power_profile_set = _lib.amdsmi_dev_power_profile_set
_lib.amdsmi_dev_memory_total_get.argtypes = [amdsmi_device_handle,amdsmi_memory_type_t,POINTER(c_uint64)]
_lib.amdsmi_dev_memory_total_get.restype = amdsmi_status_t
amdsmi_dev_memory_total_get = _lib.amdsmi_dev_memory_total_get
_lib.amdsmi_dev_memory_usage_get.argtypes = [amdsmi_device_handle,amdsmi_memory_type_t,POINTER(c_uint64)]
_lib.amdsmi_dev_memory_usage_get.restype = amdsmi_status_t
amdsmi_dev_memory_usage_get = _lib.amdsmi_dev_memory_usage_get
_lib.amdsmi_get_bad_page_info.argtypes = [amdsmi_device_handle,POINTER(c_uint32),POINTER(amdsmi_retired_page_record_t)]
_lib.amdsmi_get_bad_page_info.restype = amdsmi_status_t
amdsmi_get_bad_page_info = _lib.amdsmi_get_bad_page_info
_lib.amdsmi_get_ras_block_features_enabled.argtypes = [amdsmi_device_handle,amdsmi_gpu_block,POINTER(amdsmi_ras_err_state_t)]
_lib.amdsmi_get_ras_block_features_enabled.restype = amdsmi_status_t
amdsmi_get_ras_block_features_enabled = _lib.amdsmi_get_ras_block_features_enabled
_lib.amdsmi_dev_memory_busy_percent_get.argtypes = [amdsmi_device_handle,POINTER(c_uint32)]
_lib.amdsmi_dev_memory_busy_percent_get.restype = amdsmi_status_t
amdsmi_dev_memory_busy_percent_get = _lib.amdsmi_dev_memory_busy_percent_get
_lib.amdsmi_dev_memory_reserved_pages_get.argtypes = [amdsmi_device_handle,POINTER(c_uint32),POINTER(amdsmi_retired_page_record_t)]
_lib.amdsmi_dev_memory_reserved_pages_get.restype = amdsmi_status_t
amdsmi_dev_memory_reserved_pages_get = _lib.amdsmi_dev_memory_reserved_pages_get
_lib.amdsmi_dev_fan_rpms_get.argtypes = [amdsmi_device_handle,c_uint32,POINTER(c_int64)]
_lib.amdsmi_dev_fan_rpms_get.restype = amdsmi_status_t
amdsmi_dev_fan_rpms_get = _lib.amdsmi_dev_fan_rpms_get
_lib.amdsmi_dev_fan_speed_get.argtypes = [amdsmi_device_handle,c_uint32,POINTER(c_int64)]
_lib.amdsmi_dev_fan_speed_get.restype = amdsmi_status_t
amdsmi_dev_fan_speed_get = _lib.amdsmi_dev_fan_speed_get
_lib.amdsmi_dev_fan_speed_max_get.argtypes = [amdsmi_device_handle,c_uint32,POINTER(c_uint64)]
_lib.amdsmi_dev_fan_speed_max_get.restype = amdsmi_status_t
amdsmi_dev_fan_speed_max_get = _lib.amdsmi_dev_fan_speed_max_get
_lib.amdsmi_dev_temp_metric_get.argtypes = [amdsmi_device_handle,c_uint32,amdsmi_temperature_metric_t,POINTER(c_int64)]
_lib.amdsmi_dev_temp_metric_get.restype = amdsmi_status_t
amdsmi_dev_temp_metric_get = _lib.amdsmi_dev_temp_metric_get
_lib.amdsmi_dev_volt_metric_get.argtypes = [amdsmi_device_handle,amdsmi_voltage_type_t,amdsmi_voltage_metric_t,POINTER(c_int64)]
_lib.amdsmi_dev_volt_metric_get.restype = amdsmi_status_t
amdsmi_dev_volt_metric_get = _lib.amdsmi_dev_volt_metric_get
_lib.amdsmi_dev_fan_reset.argtypes = [amdsmi_device_handle,c_uint32]
_lib.amdsmi_dev_fan_reset.restype = amdsmi_status_t
amdsmi_dev_fan_reset = _lib.amdsmi_dev_fan_reset
_lib.amdsmi_dev_fan_speed_set.argtypes = [amdsmi_device_handle,c_uint32,c_uint64]
_lib.amdsmi_dev_fan_speed_set.restype = amdsmi_status_t
amdsmi_dev_fan_speed_set = _lib.amdsmi_dev_fan_speed_set
_lib.amdsmi_dev_busy_percent_get.argtypes = [amdsmi_device_handle,POINTER(c_uint32)]
_lib.amdsmi_dev_busy_percent_get.restype = amdsmi_status_t
amdsmi_dev_busy_percent_get = _lib.amdsmi_dev_busy_percent_get
_lib.amdsmi_utilization_count_get.argtypes = [amdsmi_device_handle,POINTER(amdsmi_utilization_counter_t),c_uint32,POINTER(c_uint64)]
_lib.amdsmi_utilization_count_get.restype = amdsmi_status_t
amdsmi_utilization_count_get = _lib.amdsmi_utilization_count_get
_lib.amdsmi_get_pcie_link_status.argtypes = [amdsmi_device_handle,POINTER(amdsmi_pcie_info_t)]
_lib.amdsmi_get_pcie_link_status.restype = amdsmi_status_t
amdsmi_get_pcie_link_status = _lib.amdsmi_get_pcie_link_status
_lib.amdsmi_get_pcie_link_caps.argtypes = [amdsmi_device_handle,POINTER(amdsmi_pcie_info_t)]
_lib.amdsmi_get_pcie_link_caps.restype = amdsmi_status_t
amdsmi_get_pcie_link_caps = _lib.amdsmi_get_pcie_link_caps
_lib.amdsmi_dev_perf_level_get.argtypes = [amdsmi_device_handle,POINTER(amdsmi_dev_perf_level_t)]
_lib.amdsmi_dev_perf_level_get.restype = amdsmi_status_t
amdsmi_dev_perf_level_get = _lib.amdsmi_dev_perf_level_get
_lib.amdsmi_perf_determinism_mode_set.argtypes = [amdsmi_device_handle,c_uint64]
_lib.amdsmi_perf_determinism_mode_set.restype = amdsmi_status_t
amdsmi_perf_determinism_mode_set = _lib.amdsmi_perf_determinism_mode_set
_lib.amdsmi_dev_overdrive_level_get.argtypes = [amdsmi_device_handle,POINTER(c_uint32)]
_lib.amdsmi_dev_overdrive_level_get.restype = amdsmi_status_t
amdsmi_dev_overdrive_level_get = _lib.amdsmi_dev_overdrive_level_get
_lib.amdsmi_dev_gpu_clk_freq_get.argtypes = [amdsmi_device_handle,amdsmi_clk_type_t,POINTER(amdsmi_frequencies_t)]
_lib.amdsmi_dev_gpu_clk_freq_get.restype = amdsmi_status_t
amdsmi_dev_gpu_clk_freq_get = _lib.amdsmi_dev_gpu_clk_freq_get
_lib.amdsmi_dev_gpu_reset.argtypes = [amdsmi_device_handle]
_lib.amdsmi_dev_gpu_reset.restype = amdsmi_status_t
amdsmi_dev_gpu_reset = _lib.amdsmi_dev_gpu_reset
_lib.amdsmi_dev_od_volt_info_get.argtypes = [amdsmi_device_handle,POINTER(amdsmi_od_volt_freq_data_t)]
_lib.amdsmi_dev_od_volt_info_get.restype = amdsmi_status_t
amdsmi_dev_od_volt_info_get = _lib.amdsmi_dev_od_volt_info_get
_lib.amdsmi_dev_gpu_metrics_info_get.argtypes = [amdsmi_device_handle,POINTER(amdsmi_gpu_metrics_t)]
_lib.amdsmi_dev_gpu_metrics_info_get.restype = amdsmi_status_t
amdsmi_dev_gpu_metrics_info_get = _lib.amdsmi_dev_gpu_metrics_info_get
_lib.amdsmi_dev_clk_range_set.argtypes = [amdsmi_device_handle,c_uint64,c_uint64,amdsmi_clk_type_t]
_lib.amdsmi_dev_clk_range_set.restype = amdsmi_status_t
amdsmi_dev_clk_range_set = _lib.amdsmi_dev_clk_range_set
_lib.amdsmi_dev_od_clk_info_set.argtypes = [amdsmi_device_handle,amdsmi_freq_ind_t,c_uint64,amdsmi_clk_type_t]
_lib.amdsmi_dev_od_clk_info_set.restype = amdsmi_status_t
amdsmi_dev_od_clk_info_set = _lib.amdsmi_dev_od_clk_info_set
_lib.amdsmi_dev_od_volt_info_set.argtypes = [amdsmi_device_handle,c_uint32,c_uint64,c_uint64]
_lib.amdsmi_dev_od_volt_info_set.restype = amdsmi_status_t
amdsmi_dev_od_volt_info_set = _lib.amdsmi_dev_od_volt_info_set
_lib.amdsmi_dev_od_volt_curve_regions_get.argtypes = [amdsmi_device_handle,POINTER(c_uint32),POINTER(amdsmi_freq_volt_region_t)]
_lib.amdsmi_dev_od_volt_curve_regions_get.restype = amdsmi_status_t
amdsmi_dev_od_volt_curve_regions_get = _lib.amdsmi_dev_od_volt_curve_regions_get
_lib.amdsmi_dev_power_profile_presets_get.argtypes = [amdsmi_device_handle,c_uint32,POINTER(amdsmi_power_profile_status_t)]
_lib.amdsmi_dev_power_profile_presets_get.restype = amdsmi_status_t
amdsmi_dev_power_profile_presets_get = _lib.amdsmi_dev_power_profile_presets_get
_lib.amdsmi_dev_perf_level_set.argtypes = [amdsmi_device_handle,amdsmi_dev_perf_level_t]
_lib.amdsmi_dev_perf_level_set.restype = amdsmi_status_t
amdsmi_dev_perf_level_set = _lib.amdsmi_dev_perf_level_set
_lib.amdsmi_dev_perf_level_set_v1.argtypes = [amdsmi_device_handle,amdsmi_dev_perf_level_t]
_lib.amdsmi_dev_perf_level_set_v1.restype = amdsmi_status_t
amdsmi_dev_perf_level_set_v1 = _lib.amdsmi_dev_perf_level_set_v1
_lib.amdsmi_dev_overdrive_level_set.argtypes = [amdsmi_device_handle,c_uint32]
_lib.amdsmi_dev_overdrive_level_set.restype = amdsmi_status_t
amdsmi_dev_overdrive_level_set = _lib.amdsmi_dev_overdrive_level_set
_lib.amdsmi_dev_overdrive_level_set_v1.argtypes = [amdsmi_device_handle,c_uint32]
_lib.amdsmi_dev_overdrive_level_set_v1.restype = amdsmi_status_t
amdsmi_dev_overdrive_level_set_v1 = _lib.amdsmi_dev_overdrive_level_set_v1
_lib.amdsmi_dev_gpu_clk_freq_set.argtypes = [amdsmi_device_handle,amdsmi_clk_type_t,c_uint64]
_lib.amdsmi_dev_gpu_clk_freq_set.restype = amdsmi_status_t
amdsmi_dev_gpu_clk_freq_set = _lib.amdsmi_dev_gpu_clk_freq_set
_lib.amdsmi_version_get.argtypes = [POINTER(amdsmi_version_t)]
_lib.amdsmi_version_get.restype = amdsmi_status_t
amdsmi_version_get = _lib.amdsmi_version_get
_lib.amdsmi_version_str_get.argtypes = [amdsmi_sw_component_t,c_char_p,c_uint32]
_lib.amdsmi_version_str_get.restype = amdsmi_status_t
amdsmi_version_str_get = _lib.amdsmi_version_str_get
_lib.amdsmi_dev_ecc_count_get.argtypes = [amdsmi_device_handle,amdsmi_gpu_block_t,POINTER(amdsmi_error_count_t)]
_lib.amdsmi_dev_ecc_count_get.restype = amdsmi_status_t
amdsmi_dev_ecc_count_get = _lib.amdsmi_dev_ecc_count_get
_lib.amdsmi_dev_ecc_enabled_get.argtypes = [amdsmi_device_handle,POINTER(c_uint64)]
_lib.amdsmi_dev_ecc_enabled_get.restype = amdsmi_status_t
amdsmi_dev_ecc_enabled_get = _lib.amdsmi_dev_ecc_enabled_get
_lib.amdsmi_dev_ecc_status_get.argtypes = [amdsmi_device_handle,amdsmi_gpu_block_t,POINTER(amdsmi_ras_err_state_t)]
_lib.amdsmi_dev_ecc_status_get.restype = amdsmi_status_t
amdsmi_dev_ecc_status_get = _lib.amdsmi_dev_ecc_status_get
_lib.amdsmi_status_string.argtypes = [amdsmi_status_t,POINTER(c_char_p)]
_lib.amdsmi_status_string.restype = amdsmi_status_t
amdsmi_status_string = _lib.amdsmi_status_string
_lib.amdsmi_dev_counter_group_supported.argtypes = [amdsmi_device_handle,amdsmi_event_group_t]
_lib.amdsmi_dev_counter_group_supported.restype = amdsmi_status_t
amdsmi_dev_counter_group_supported = _lib.amdsmi_dev_counter_group_supported
_lib.amdsmi_dev_counter_create.argtypes = [amdsmi_device_handle,amdsmi_event_type_t,POINTER(amdsmi_event_handle_t)]
_lib.amdsmi_dev_counter_create.restype = amdsmi_status_t
amdsmi_dev_counter_create = _lib.amdsmi_dev_counter_create
_lib.amdsmi_dev_counter_destroy.argtypes = [amdsmi_event_handle_t]
_lib.amdsmi_dev_counter_destroy.restype = amdsmi_status_t
amdsmi_dev_counter_destroy = _lib.amdsmi_dev_counter_destroy
_lib.amdsmi_counter_control.argtypes = [amdsmi_event_handle_t,amdsmi_counter_command_t,c_void_p]
_lib.amdsmi_counter_control.restype = amdsmi_status_t
amdsmi_counter_control = _lib.amdsmi_counter_control
_lib.amdsmi_counter_read.argtypes = [amdsmi_event_handle_t,POINTER(amdsmi_counter_value_t)]
_lib.amdsmi_counter_read.restype = amdsmi_status_t
amdsmi_counter_read = _lib.amdsmi_counter_read
_lib.amdsmi_counter_available_counters_get.argtypes = [amdsmi_device_handle,amdsmi_event_group_t,POINTER(c_uint32)]
_lib.amdsmi_counter_available_counters_get.restype = amdsmi_status_t
amdsmi_counter_available_counters_get = _lib.amdsmi_counter_available_counters_get
_lib.amdsmi_compute_process_info_get.argtypes = [POINTER(amdsmi_process_info_t),POINTER(c_uint32)]
_lib.amdsmi_compute_process_info_get.restype = amdsmi_status_t
amdsmi_compute_process_info_get = _lib.amdsmi_compute_process_info_get
_lib.amdsmi_compute_process_info_by_pid_get.argtypes = [c_uint32,POINTER(amdsmi_process_info_t)]
_lib.amdsmi_compute_process_info_by_pid_get.restype = amdsmi_status_t
amdsmi_compute_process_info_by_pid_get = _lib.amdsmi_compute_process_info_by_pid_get
_lib.amdsmi_compute_process_gpus_get.argtypes = [c_uint32,POINTER(c_uint32),POINTER(c_uint32)]
_lib.amdsmi_compute_process_gpus_get.restype = amdsmi_status_t
amdsmi_compute_process_gpus_get = _lib.amdsmi_compute_process_gpus_get
_lib.amdsmi_dev_xgmi_error_status.argtypes = [amdsmi_device_handle,POINTER(amdsmi_xgmi_status_t)]
_lib.amdsmi_dev_xgmi_error_status.restype = amdsmi_status_t
amdsmi_dev_xgmi_error_status = _lib.amdsmi_dev_xgmi_error_status
_lib.amdsmi_dev_xgmi_error_reset.argtypes = [amdsmi_device_handle]
_lib.amdsmi_dev_xgmi_error_reset.restype = amdsmi_status_t
amdsmi_dev_xgmi_error_reset = _lib.amdsmi_dev_xgmi_error_reset
_lib.amdsmi_topo_get_numa_node_number.argtypes = [amdsmi_device_handle,POINTER(c_uint32)]
_lib.amdsmi_topo_get_numa_node_number.restype = amdsmi_status_t
amdsmi_topo_get_numa_node_number = _lib.amdsmi_topo_get_numa_node_number
_lib.amdsmi_topo_get_link_weight.argtypes = [amdsmi_device_handle,amdsmi_device_handle,POINTER(c_uint64)]
_lib.amdsmi_topo_get_link_weight.restype = amdsmi_status_t
amdsmi_topo_get_link_weight = _lib.amdsmi_topo_get_link_weight
_lib.amdsmi_minmax_bandwidth_get.argtypes = [amdsmi_device_handle,amdsmi_device_handle,POINTER(c_uint64),POINTER(c_uint64)]
_lib.amdsmi_minmax_bandwidth_get.restype = amdsmi_status_t
amdsmi_minmax_bandwidth_get = _lib.amdsmi_minmax_bandwidth_get
_lib.amdsmi_topo_get_link_type.argtypes = [amdsmi_device_handle,amdsmi_device_handle,POINTER(c_uint64),POINTER(AMDSMI_IO_LINK_TYPE)]
_lib.amdsmi_topo_get_link_type.restype = amdsmi_status_t
amdsmi_topo_get_link_type = _lib.amdsmi_topo_get_link_type
_lib.amdsmi_is_P2P_accessible.argtypes = [amdsmi_device_handle,amdsmi_device_handle,POINTER(c_bool)]
_lib.amdsmi_is_P2P_accessible.restype = amdsmi_status_t
amdsmi_is_P2P_accessible = _lib.amdsmi_is_P2P_accessible
_lib.amdsmi_dev_supported_func_iterator_open.argtypes = [amdsmi_device_handle,POINTER(amdsmi_func_id_iter_handle_t)]
_lib.amdsmi_dev_supported_func_iterator_open.restype = amdsmi_status_t
amdsmi_dev_supported_func_iterator_open = _lib.amdsmi_dev_supported_func_iterator_open
_lib.amdsmi_dev_supported_variant_iterator_open.argtypes = [amdsmi_func_id_iter_handle_t,POINTER(amdsmi_func_id_iter_handle_t)]
_lib.amdsmi_dev_supported_variant_iterator_open.restype = amdsmi_status_t
amdsmi_dev_supported_variant_iterator_open = _lib.amdsmi_dev_supported_variant_iterator_open
_lib.amdsmi_func_iter_next.argtypes = [amdsmi_func_id_iter_handle_t]
_lib.amdsmi_func_iter_next.restype = amdsmi_status_t
amdsmi_func_iter_next = _lib.amdsmi_func_iter_next
_lib.amdsmi_dev_supported_func_iterator_close.argtypes = [POINTER(amdsmi_func_id_iter_handle_t)]
_lib.amdsmi_dev_supported_func_iterator_close.restype = amdsmi_status_t
amdsmi_dev_supported_func_iterator_close = _lib.amdsmi_dev_supported_func_iterator_close
_lib.amdsmi_func_iter_value_get.argtypes = [amdsmi_func_id_iter_handle_t,POINTER(amdsmi_func_id_value_t)]
_lib.amdsmi_func_iter_value_get.restype = amdsmi_status_t
amdsmi_func_iter_value_get = _lib.amdsmi_func_iter_value_get
_lib.amdsmi_event_notification_init.argtypes = [amdsmi_device_handle]
_lib.amdsmi_event_notification_init.restype = amdsmi_status_t
amdsmi_event_notification_init = _lib.amdsmi_event_notification_init
_lib.amdsmi_event_notification_mask_set.argtypes = [amdsmi_device_handle,c_uint64]
_lib.amdsmi_event_notification_mask_set.restype = amdsmi_status_t
amdsmi_event_notification_mask_set = _lib.amdsmi_event_notification_mask_set
_lib.amdsmi_event_notification_get.argtypes = [c_int,POINTER(c_uint32),POINTER(amdsmi_evt_notification_data_t)]
_lib.amdsmi_event_notification_get.restype = amdsmi_status_t
amdsmi_event_notification_get = _lib.amdsmi_event_notification_get
_lib.amdsmi_event_notification_stop.argtypes = [amdsmi_device_handle]
_lib.amdsmi_event_notification_stop.restype = amdsmi_status_t
amdsmi_event_notification_stop = _lib.amdsmi_event_notification_stop
_lib.amdsmi_get_device_bdf.argtypes = [amdsmi_device_handle,POINTER(amdsmi_bdf_t)]
_lib.amdsmi_get_device_bdf.restype = amdsmi_status_t
amdsmi_get_device_bdf = _lib.amdsmi_get_device_bdf
_lib.amdsmi_get_device_uuid.argtypes = [amdsmi_device_handle,POINTER(c_uint),c_char_p]
_lib.amdsmi_get_device_uuid.restype = amdsmi_status_t
amdsmi_get_device_uuid = _lib.amdsmi_get_device_uuid
_lib.amdsmi_get_driver_version.argtypes = [amdsmi_device_handle,POINTER(c_int),c_char_p]
_lib.amdsmi_get_driver_version.restype = amdsmi_status_t
amdsmi_get_driver_version = _lib.amdsmi_get_driver_version
_lib.amdsmi_get_asic_info.argtypes = [amdsmi_device_handle,POINTER(amdsmi_asic_info_t)]
_lib.amdsmi_get_asic_info.restype = amdsmi_status_t
amdsmi_get_asic_info = _lib.amdsmi_get_asic_info
_lib.amdsmi_get_board_info.argtypes = [amdsmi_device_handle,POINTER(amdsmi_board_info_t)]
_lib.amdsmi_get_board_info.restype = amdsmi_status_t
amdsmi_get_board_info = _lib.amdsmi_get_board_info
_lib.amdsmi_get_power_cap_info.argtypes = [amdsmi_device_handle,c_uint32,POINTER(amdsmi_power_cap_info_t)]
_lib.amdsmi_get_power_cap_info.restype = amdsmi_status_t
amdsmi_get_power_cap_info = _lib.amdsmi_get_power_cap_info
_lib.amdsmi_get_xgmi_info.argtypes = [amdsmi_device_handle,POINTER(amdsmi_xgmi_info_t)]
_lib.amdsmi_get_xgmi_info.restype = amdsmi_status_t
amdsmi_get_xgmi_info = _lib.amdsmi_get_xgmi_info
_lib.amdsmi_get_caps_info.argtypes = [amdsmi_device_handle,POINTER(amdsmi_gpu_caps_t)]
_lib.amdsmi_get_caps_info.restype = amdsmi_status_t
amdsmi_get_caps_info = _lib.amdsmi_get_caps_info
_lib.amdsmi_get_fw_info.argtypes = [amdsmi_device_handle,POINTER(amdsmi_fw_info_t)]
_lib.amdsmi_get_fw_info.restype = amdsmi_status_t
amdsmi_get_fw_info = _lib.amdsmi_get_fw_info
_lib.amdsmi_get_vbios_info.argtypes = [amdsmi_device_handle,POINTER(amdsmi_vbios_info_t)]
_lib.amdsmi_get_vbios_info.restype = amdsmi_status_t
amdsmi_get_vbios_info = _lib.amdsmi_get_vbios_info
_lib.amdsmi_get_gpu_activity.argtypes = [amdsmi_device_handle,POINTER(amdsmi_engine_usage_t)]
_lib.amdsmi_get_gpu_activity.restype = amdsmi_status_t
amdsmi_get_gpu_activity = _lib.amdsmi_get_gpu_activity
_lib.amdsmi_get_power_measure.argtypes = [amdsmi_device_handle,POINTER(amdsmi_power_measure_t)]
_lib.amdsmi_get_power_measure.restype = amdsmi_status_t
amdsmi_get_power_measure = _lib.amdsmi_get_power_measure
_lib.amdsmi_get_clock_measure.argtypes = [amdsmi_device_handle,amdsmi_clk_type_t,POINTER(amdsmi_clk_measure_t)]
_lib.amdsmi_get_clock_measure.restype = amdsmi_status_t
amdsmi_get_clock_measure = _lib.amdsmi_get_clock_measure
_lib.amdsmi_get_temperature_measure.argtypes = [amdsmi_device_handle,amdsmi_temperature_type_t,POINTER(amdsmi_temperature_t)]
_lib.amdsmi_get_temperature_measure.restype = amdsmi_status_t
amdsmi_get_temperature_measure = _lib.amdsmi_get_temperature_measure
_lib.amdsmi_get_temperature_limit.argtypes = [amdsmi_device_handle,amdsmi_temperature_type_t,POINTER(amdsmi_temperature_limit_t)]
_lib.amdsmi_get_temperature_limit.restype = amdsmi_status_t
amdsmi_get_temperature_limit = _lib.amdsmi_get_temperature_limit
_lib.amdsmi_get_power_limit.argtypes = [amdsmi_device_handle,POINTER(amdsmi_power_limit_t)]
_lib.amdsmi_get_power_limit.restype = amdsmi_status_t
amdsmi_get_power_limit = _lib.amdsmi_get_power_limit
_lib.amdsmi_get_vram_usage.argtypes = [amdsmi_device_handle,POINTER(amdsmi_vram_info_t)]
_lib.amdsmi_get_vram_usage.restype = amdsmi_status_t
amdsmi_get_vram_usage = _lib.amdsmi_get_vram_usage
_lib.amdsmi_get_target_frequency_range.argtypes = [amdsmi_device_handle,amdsmi_clk_type_t,POINTER(amdsmi_frequency_range_t)]
_lib.amdsmi_get_target_frequency_range.restype = amdsmi_status_t
amdsmi_get_target_frequency_range = _lib.amdsmi_get_target_frequency_range
_lib.amdsmi_get_process_list.argtypes = [amdsmi_device_handle,POINTER(amdsmi_process_handle),POINTER(c_uint32)]
_lib.amdsmi_get_process_list.restype = amdsmi_status_t
amdsmi_get_process_list = _lib.amdsmi_get_process_list
_lib.amdsmi_get_process_info.argtypes = [amdsmi_device_handle,amdsmi_process_handle,POINTER(amdsmi_proc_info_t)]
_lib.amdsmi_get_process_info.restype = amdsmi_status_t
amdsmi_get_process_info = _lib.amdsmi_get_process_info
_lib.amdsmi_get_ecc_error_count.argtypes = [amdsmi_device_handle,POINTER(amdsmi_error_count_t)]
_lib.amdsmi_get_ecc_error_count.restype = amdsmi_status_t
amdsmi_get_ecc_error_count = _lib.amdsmi_get_ecc_error_count