Dateien
rocm-systems/py-interface/amdsmi_wrapper.py
T
Jason Albert 86de0f441f Remove tag values from enum/union/struct declarations
The tag values largely were not used and were causing doxygen
generation issues.
In the few cases where the tags were being referenced, clean up
those compile issues.

Signed-off-by: Jason Albert <jason.albert@amd.com>
Change-Id: I7b32eac742fb5af560400c13dda2721705d882bc
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-16 13:14:45 +01:00

1993 Zeilen
86 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.
#
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))
_libraries = {}
_libraries['libamd_smi.so'] = ctypes.CDLL(os.path.join(os.path.dirname(__file__), 'libamd_smi.so'))
# values for enumeration 'c__EA_amdsmi_init_flags_t'
c__EA_amdsmi_init_flags_t__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
c__EA_amdsmi_init_flags_t = ctypes.c_uint32 # enum
amdsmi_init_flags_t = c__EA_amdsmi_init_flags_t
amdsmi_init_flags_t__enumvalues = c__EA_amdsmi_init_flags_t__enumvalues
# values for enumeration 'c__EA_amdsmi_mm_ip_t'
c__EA_amdsmi_mm_ip_t__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
c__EA_amdsmi_mm_ip_t = ctypes.c_uint32 # enum
amdsmi_mm_ip_t = c__EA_amdsmi_mm_ip_t
amdsmi_mm_ip_t__enumvalues = c__EA_amdsmi_mm_ip_t__enumvalues
# values for enumeration 'c__EA_amdsmi_container_types_t'
c__EA_amdsmi_container_types_t__enumvalues = {
0: 'CONTAINER_LXC',
1: 'CONTAINER_DOCKER',
}
CONTAINER_LXC = 0
CONTAINER_DOCKER = 1
c__EA_amdsmi_container_types_t = ctypes.c_uint32 # enum
amdsmi_container_types_t = c__EA_amdsmi_container_types_t
amdsmi_container_types_t__enumvalues = c__EA_amdsmi_container_types_t__enumvalues
amdsmi_device_handle = ctypes.POINTER(None)
amdsmi_socket_handle = ctypes.POINTER(None)
# values for enumeration 'c__EA_device_type_t'
c__EA_device_type_t__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
c__EA_device_type_t = ctypes.c_uint32 # enum
device_type_t = c__EA_device_type_t
device_type_t__enumvalues = c__EA_device_type_t__enumvalues
# values for enumeration 'c__EA_amdsmi_status_t'
c__EA_amdsmi_status_t__enumvalues = {
0: 'AMDSMI_STATUS_SUCCESS',
1: 'AMDSMI_STATUS_INVAL',
2: 'AMDSMI_STATUS_NOT_SUPPORTED',
3: 'AMDSMI_STATUS_NOT_YET_IMPLEMENTED',
4: 'AMDSMI_STATUS_FAIL_LOAD_MODULE',
5: 'AMDSMI_STATUS_FAIL_LOAD_SYMBOL',
6: 'AMDSMI_STATUS_DRM_ERROR',
7: 'AMDSMI_STATUS_API_FAILED',
8: 'AMDSMI_STATUS_TIMEOUT',
9: 'AMDSMI_STATUS_RETRY',
10: 'AMDSMI_STATUS_NO_PERM',
11: 'AMDSMI_STATUS_INTERRUPT',
12: 'AMDSMI_STATUS_IO',
13: 'AMDSMI_STATUS_ADDRESS_FAULT',
14: 'AMDSMI_STATUS_FILE_ERROR',
15: 'AMDSMI_STATUS_OUT_OF_RESOURCES',
16: 'AMDSMI_STATUS_INTERNAL_EXCEPTION',
17: 'AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS',
18: 'AMDSMI_STATUS_INIT_ERROR',
19: 'AMDSMI_STATUS_REFCOUNT_OVERFLOW',
30: 'AMDSMI_STATUS_BUSY',
31: 'AMDSMI_STATUS_NOT_FOUND',
32: 'AMDSMI_STATUS_NOT_INIT',
33: 'AMDSMI_STATUS_NO_SLOT',
40: 'AMDSMI_STATUS_NO_DATA',
41: 'AMDSMI_STATUS_INSUFFICIENT_SIZE',
42: 'AMDSMI_STATUS_UNEXPECTED_SIZE',
43: 'AMDSMI_STATUS_UNEXPECTED_DATA',
4294967294: 'AMDSMI_STATUS_MAP_ERROR',
4294967295: 'AMDSMI_STATUS_UNKNOWN_ERROR',
}
AMDSMI_STATUS_SUCCESS = 0
AMDSMI_STATUS_INVAL = 1
AMDSMI_STATUS_NOT_SUPPORTED = 2
AMDSMI_STATUS_NOT_YET_IMPLEMENTED = 3
AMDSMI_STATUS_FAIL_LOAD_MODULE = 4
AMDSMI_STATUS_FAIL_LOAD_SYMBOL = 5
AMDSMI_STATUS_DRM_ERROR = 6
AMDSMI_STATUS_API_FAILED = 7
AMDSMI_STATUS_TIMEOUT = 8
AMDSMI_STATUS_RETRY = 9
AMDSMI_STATUS_NO_PERM = 10
AMDSMI_STATUS_INTERRUPT = 11
AMDSMI_STATUS_IO = 12
AMDSMI_STATUS_ADDRESS_FAULT = 13
AMDSMI_STATUS_FILE_ERROR = 14
AMDSMI_STATUS_OUT_OF_RESOURCES = 15
AMDSMI_STATUS_INTERNAL_EXCEPTION = 16
AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS = 17
AMDSMI_STATUS_INIT_ERROR = 18
AMDSMI_STATUS_REFCOUNT_OVERFLOW = 19
AMDSMI_STATUS_BUSY = 30
AMDSMI_STATUS_NOT_FOUND = 31
AMDSMI_STATUS_NOT_INIT = 32
AMDSMI_STATUS_NO_SLOT = 33
AMDSMI_STATUS_NO_DATA = 40
AMDSMI_STATUS_INSUFFICIENT_SIZE = 41
AMDSMI_STATUS_UNEXPECTED_SIZE = 42
AMDSMI_STATUS_UNEXPECTED_DATA = 43
AMDSMI_STATUS_MAP_ERROR = 4294967294
AMDSMI_STATUS_UNKNOWN_ERROR = 4294967295
c__EA_amdsmi_status_t = ctypes.c_uint32 # enum
amdsmi_status_t = c__EA_amdsmi_status_t
amdsmi_status_t__enumvalues = c__EA_amdsmi_status_t__enumvalues
# values for enumeration 'c__EA_amdsmi_clk_type_t'
c__EA_amdsmi_clk_type_t__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
c__EA_amdsmi_clk_type_t = ctypes.c_uint32 # enum
amdsmi_clk_type_t = c__EA_amdsmi_clk_type_t
amdsmi_clk_type_t__enumvalues = c__EA_amdsmi_clk_type_t__enumvalues
# values for enumeration 'c__EA_amdsmi_temperature_type_t'
c__EA_amdsmi_temperature_type_t__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
c__EA_amdsmi_temperature_type_t = ctypes.c_uint32 # enum
amdsmi_temperature_type_t = c__EA_amdsmi_temperature_type_t
amdsmi_temperature_type_t__enumvalues = c__EA_amdsmi_temperature_type_t__enumvalues
# values for enumeration 'c__EA_amdsmi_fw_block_t'
c__EA_amdsmi_fw_block_t__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
c__EA_amdsmi_fw_block_t = ctypes.c_uint32 # enum
amdsmi_fw_block_t = c__EA_amdsmi_fw_block_t
amdsmi_fw_block_t__enumvalues = c__EA_amdsmi_fw_block_t__enumvalues
class struct_c__SA_amdsmi_range_t(Structure):
pass
struct_c__SA_amdsmi_range_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_range_t._fields_ = [
('lower_bound', ctypes.c_uint64),
('upper_bound', ctypes.c_uint64),
('reserved', ctypes.c_uint64 * 2),
]
amdsmi_range_t = struct_c__SA_amdsmi_range_t
class struct_c__SA_amdsmi_xgmi_info_t(Structure):
pass
struct_c__SA_amdsmi_xgmi_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_xgmi_info_t._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),
('reserved', ctypes.c_uint32 * 9),
]
amdsmi_xgmi_info_t = struct_c__SA_amdsmi_xgmi_info_t
class struct_c__SA_amdsmi_gpu_caps_t(Structure):
pass
class struct_c__SA_amdsmi_gpu_caps_t_1(Structure):
pass
struct_c__SA_amdsmi_gpu_caps_t_1._pack_ = 1 # source:False
struct_c__SA_amdsmi_gpu_caps_t_1._fields_ = [
('mm_ip_count', ctypes.c_ubyte),
('mm_ip_list', ctypes.c_ubyte * 8),
('PADDING_0', ctypes.c_ubyte * 3),
('reserved', ctypes.c_uint32 * 5),
]
class struct_c__SA_amdsmi_gpu_caps_t_0(Structure):
pass
struct_c__SA_amdsmi_gpu_caps_t_0._pack_ = 1 # source:False
struct_c__SA_amdsmi_gpu_caps_t_0._fields_ = [
('gfxip_major', ctypes.c_uint32),
('gfxip_minor', ctypes.c_uint32),
('gfxip_cu_count', ctypes.c_uint16),
('PADDING_0', ctypes.c_ubyte * 2),
('reserved', ctypes.c_uint32 * 5),
]
struct_c__SA_amdsmi_gpu_caps_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_gpu_caps_t._fields_ = [
('gfx', struct_c__SA_amdsmi_gpu_caps_t_0),
('mm', struct_c__SA_amdsmi_gpu_caps_t_1),
('ras_supported', ctypes.c_bool),
('max_vf_num', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte * 2),
('gfx_ip_count', ctypes.c_uint32),
('dma_ip_count', ctypes.c_uint32),
('reserved', ctypes.c_uint32 * 5),
]
amdsmi_gpu_caps_t = struct_c__SA_amdsmi_gpu_caps_t
class struct_c__SA_amdsmi_vram_info_t(Structure):
pass
struct_c__SA_amdsmi_vram_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_vram_info_t._fields_ = [
('vram_total', ctypes.c_uint32),
('vram_used', ctypes.c_uint32),
]
amdsmi_vram_info_t = struct_c__SA_amdsmi_vram_info_t
class struct_c__SA_amdsmi_frequency_range_t(Structure):
pass
struct_c__SA_amdsmi_frequency_range_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_frequency_range_t._fields_ = [
('supported_freq_range', amdsmi_range_t),
('current_freq_range', amdsmi_range_t),
('reserved', ctypes.c_uint32 * 8),
]
amdsmi_frequency_range_t = struct_c__SA_amdsmi_frequency_range_t
class union_c__UA_amdsmi_bdf_t(Union):
pass
class struct_c__UA_amdsmi_bdf_t_0(Structure):
pass
struct_c__UA_amdsmi_bdf_t_0._pack_ = 1 # source:False
struct_c__UA_amdsmi_bdf_t_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),
]
union_c__UA_amdsmi_bdf_t._pack_ = 1 # source:False
union_c__UA_amdsmi_bdf_t._fields_ = [
('c__UA_amdsmi_bdf_t_0', struct_c__UA_amdsmi_bdf_t_0),
('as_uint', ctypes.c_uint64),
]
amdsmi_bdf_t = union_c__UA_amdsmi_bdf_t
class struct_c__SA_amdsmi_power_cap_info_t(Structure):
pass
struct_c__SA_amdsmi_power_cap_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_power_cap_info_t._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),
('reserved', ctypes.c_uint64 * 3),
]
amdsmi_power_cap_info_t = struct_c__SA_amdsmi_power_cap_info_t
class struct_c__SA_amdsmi_vbios_info_t(Structure):
pass
struct_c__SA_amdsmi_vbios_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_vbios_info_t._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),
('reserved', ctypes.c_uint32 * 15),
]
amdsmi_vbios_info_t = struct_c__SA_amdsmi_vbios_info_t
class struct_c__SA_amdsmi_fw_info_t(Structure):
pass
class struct_c__SA_amdsmi_fw_info_t_0(Structure):
pass
struct_c__SA_amdsmi_fw_info_t_0._pack_ = 1 # source:False
struct_c__SA_amdsmi_fw_info_t_0._fields_ = [
('fw_id', amdsmi_fw_block_t),
('PADDING_0', ctypes.c_ubyte * 4),
('fw_version', ctypes.c_uint64),
('reserved', ctypes.c_uint64 * 2),
]
struct_c__SA_amdsmi_fw_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_fw_info_t._fields_ = [
('num_fw_info', ctypes.c_ubyte),
('PADDING_0', ctypes.c_ubyte * 7),
('fw_info_list', struct_c__SA_amdsmi_fw_info_t_0 * 46),
('reserved', ctypes.c_uint32 * 7),
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_fw_info_t = struct_c__SA_amdsmi_fw_info_t
class struct_c__SA_amdsmi_asic_info_t(Structure):
pass
struct_c__SA_amdsmi_asic_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_asic_info_t._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 = struct_c__SA_amdsmi_asic_info_t
class struct_c__SA_amdsmi_board_info_t(Structure):
pass
struct_c__SA_amdsmi_board_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_board_info_t._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 = struct_c__SA_amdsmi_board_info_t
class struct_c__SA_amdsmi_power_measure_t(Structure):
pass
struct_c__SA_amdsmi_power_measure_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_power_measure_t._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),
('power_limit', ctypes.c_uint32),
('reserved', ctypes.c_uint32 * 9),
('PADDING_1', ctypes.c_ubyte * 4),
]
amdsmi_power_measure_t = struct_c__SA_amdsmi_power_measure_t
class struct_c__SA_amdsmi_clk_measure_t(Structure):
pass
struct_c__SA_amdsmi_clk_measure_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_clk_measure_t._fields_ = [
('cur_clk', ctypes.c_uint32),
('avg_clk', ctypes.c_uint32),
('min_clk', ctypes.c_uint32),
('max_clk', ctypes.c_uint32),
('reserved', ctypes.c_uint32 * 4),
]
amdsmi_clk_measure_t = struct_c__SA_amdsmi_clk_measure_t
class struct_c__SA_amdsmi_engine_usage_t(Structure):
pass
struct_c__SA_amdsmi_engine_usage_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_engine_usage_t._fields_ = [
('gfx_activity', ctypes.c_uint32),
('umc_activity', ctypes.c_uint32),
('mm_activity', ctypes.c_uint32 * 8),
('reserved', ctypes.c_uint32 * 6),
]
amdsmi_engine_usage_t = struct_c__SA_amdsmi_engine_usage_t
amdsmi_process_handle = ctypes.c_uint32
class struct_c__SA_amdsmi_proc_info_t(Structure):
pass
class struct_c__SA_amdsmi_proc_info_t_1(Structure):
pass
struct_c__SA_amdsmi_proc_info_t_1._pack_ = 1 # source:False
struct_c__SA_amdsmi_proc_info_t_1._fields_ = [
('gtt_mem', ctypes.c_uint64),
('cpu_mem', ctypes.c_uint64),
('vram_mem', ctypes.c_uint64),
]
class struct_c__SA_amdsmi_proc_info_t_0(Structure):
pass
struct_c__SA_amdsmi_proc_info_t_0._pack_ = 1 # source:False
struct_c__SA_amdsmi_proc_info_t_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),
]
struct_c__SA_amdsmi_proc_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_proc_info_t._fields_ = [
('name', ctypes.c_char * 32),
('pid', ctypes.c_uint32),
('PADDING_0', ctypes.c_ubyte * 4),
('mem', ctypes.c_uint64),
('engine_usage', struct_c__SA_amdsmi_proc_info_t_0),
('memory_usage', struct_c__SA_amdsmi_proc_info_t_1),
('container_name', ctypes.c_char * 32),
('reserved', ctypes.c_uint32 * 10),
]
amdsmi_proc_info_t = struct_c__SA_amdsmi_proc_info_t
# 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
# 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 struct_c__SA_amdsmi_counter_value_t(Structure):
pass
struct_c__SA_amdsmi_counter_value_t._pack_ = 1 # source:False
struct_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 = struct_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 struct_c__SA_amdsmi_evt_notification_data_t(Structure):
pass
struct_c__SA_amdsmi_evt_notification_data_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_evt_notification_data_t._fields_ = [
('device_handle', ctypes.POINTER(None)),
('event', amdsmi_evt_notification_type_t),
('message', ctypes.c_char * 64),
('PADDING_0', ctypes.c_ubyte * 4),
]
amdsmi_evt_notification_data_t = struct_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
# 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
# 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
# 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
# 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
# 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 'c__EA_AMDSMI_IO_LINK_TYPE'
c__EA_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
c__EA_AMDSMI_IO_LINK_TYPE = ctypes.c_uint32 # enum
AMDSMI_IO_LINK_TYPE = c__EA_AMDSMI_IO_LINK_TYPE
AMDSMI_IO_LINK_TYPE__enumvalues = c__EA_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 struct_c__SA_amdsmi_utilization_counter_t(Structure):
pass
struct_c__SA_amdsmi_utilization_counter_t._pack_ = 1 # source:False
struct_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 = struct_c__SA_amdsmi_utilization_counter_t
class struct_c__SA_amdsmi_retired_page_record_t(Structure):
pass
struct_c__SA_amdsmi_retired_page_record_t._pack_ = 1 # source:False
struct_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 = struct_c__SA_amdsmi_retired_page_record_t
class struct_c__SA_amdsmi_power_profile_status_t(Structure):
pass
struct_c__SA_amdsmi_power_profile_status_t._pack_ = 1 # source:False
struct_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 = struct_c__SA_amdsmi_power_profile_status_t
class struct_c__SA_amdsmi_frequencies_t(Structure):
pass
struct_c__SA_amdsmi_frequencies_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_frequencies_t._fields_ = [
('num_supported', ctypes.c_uint32),
('current', ctypes.c_uint32),
('frequency', ctypes.c_uint64 * 32),
]
amdsmi_frequencies_t = struct_c__SA_amdsmi_frequencies_t
class struct_c__SA_amdsmi_pcie_bandwidth_t(Structure):
pass
struct_c__SA_amdsmi_pcie_bandwidth_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_pcie_bandwidth_t._fields_ = [
('transfer_rate', amdsmi_frequencies_t),
('lanes', ctypes.c_uint32 * 32),
]
amdsmi_pcie_bandwidth_t = struct_c__SA_amdsmi_pcie_bandwidth_t
class struct_c__SA_amdsmi_version_t(Structure):
pass
struct_c__SA_amdsmi_version_t._pack_ = 1 # source:False
struct_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)),
('reserved', ctypes.c_uint32 * 4),
]
amdsmi_version_t = struct_c__SA_amdsmi_version_t
class struct_c__SA_amdsmi_od_vddc_point_t(Structure):
pass
struct_c__SA_amdsmi_od_vddc_point_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_od_vddc_point_t._fields_ = [
('frequency', ctypes.c_uint64),
('voltage', ctypes.c_uint64),
]
amdsmi_od_vddc_point_t = struct_c__SA_amdsmi_od_vddc_point_t
class struct_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 = struct_c__SA_amdsmi_freq_volt_region_t
class struct_c__SA_amdsmi_od_volt_curve_t(Structure):
_pack_ = 1 # source:False
_fields_ = [
('vc_points', struct_c__SA_amdsmi_od_vddc_point_t * 3),
]
amdsmi_od_volt_curve_t = struct_c__SA_amdsmi_od_volt_curve_t
class struct_c__SA_amdsmi_od_volt_freq_data_t(Structure):
pass
struct_c__SA_amdsmi_od_volt_freq_data_t._pack_ = 1 # source:False
struct_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 = struct_c__SA_amdsmi_od_volt_freq_data_t
class struct_c__SA_amd_metrics_table_header_t(Structure):
pass
struct_c__SA_amd_metrics_table_header_t._pack_ = 1 # source:False
struct_c__SA_amd_metrics_table_header_t._fields_ = [
('structure_size', ctypes.c_uint16),
('format_revision', ctypes.c_ubyte),
('content_revision', ctypes.c_ubyte),
]
amd_metrics_table_header_t = struct_c__SA_amd_metrics_table_header_t
class struct_c__SA_amdsmi_gpu_metrics_t(Structure):
pass
struct_c__SA_amdsmi_gpu_metrics_t._pack_ = 1 # source:False
struct_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 = struct_c__SA_amdsmi_gpu_metrics_t
class struct_c__SA_amdsmi_error_count_t(Structure):
pass
struct_c__SA_amdsmi_error_count_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_error_count_t._fields_ = [
('correctable_count', ctypes.c_uint64),
('uncorrectable_count', ctypes.c_uint64),
('reserved', ctypes.c_uint64 * 2),
]
amdsmi_error_count_t = struct_c__SA_amdsmi_error_count_t
class struct_c__SA_amdsmi_pcie_info_t(Structure):
pass
struct_c__SA_amdsmi_pcie_info_t._pack_ = 1 # source:False
struct_c__SA_amdsmi_pcie_info_t._fields_ = [
('pcie_lanes', ctypes.c_uint16),
('PADDING_0', ctypes.c_ubyte * 2),
('pcie_speed', ctypes.c_uint32),
('reserved', ctypes.c_uint32 * 6),
]
amdsmi_pcie_info_t = struct_c__SA_amdsmi_pcie_info_t
class struct_c__SA_amdsmi_process_info_t(Structure):
pass
struct_c__SA_amdsmi_process_info_t._pack_ = 1 # source:False
struct_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 = struct_c__SA_amdsmi_process_info_t
class struct_amdsmi_func_id_iter_handle(Structure):
pass
amdsmi_func_id_iter_handle_t = ctypes.POINTER(struct_amdsmi_func_id_iter_handle)
class union_c__UA_amdsmi_func_id_value_t(Union):
pass
class union_c__UA_amdsmi_func_id_value_t_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),
]
union_c__UA_amdsmi_func_id_value_t._pack_ = 1 # source:False
union_c__UA_amdsmi_func_id_value_t._fields_ = [
('id', ctypes.c_uint64),
('name', ctypes.POINTER(ctypes.c_char)),
('c__UA_amdsmi_func_id_value_t_0', union_c__UA_amdsmi_func_id_value_t_0),
]
amdsmi_func_id_value_t = union_c__UA_amdsmi_func_id_value_t
uint64_t = ctypes.c_uint64
amdsmi_init = _libraries['libamd_smi.so'].amdsmi_init
amdsmi_init.restype = amdsmi_status_t
amdsmi_init.argtypes = [uint64_t]
amdsmi_shut_down = _libraries['libamd_smi.so'].amdsmi_shut_down
amdsmi_shut_down.restype = amdsmi_status_t
amdsmi_shut_down.argtypes = []
amdsmi_get_socket_handles = _libraries['libamd_smi.so'].amdsmi_get_socket_handles
amdsmi_get_socket_handles.restype = amdsmi_status_t
amdsmi_get_socket_handles.argtypes = [ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))]
size_t = ctypes.c_uint64
amdsmi_get_socket_info = _libraries['libamd_smi.so'].amdsmi_get_socket_info
amdsmi_get_socket_info.restype = amdsmi_status_t
amdsmi_get_socket_info.argtypes = [amdsmi_socket_handle, ctypes.POINTER(ctypes.c_char), size_t]
amdsmi_get_device_handles = _libraries['libamd_smi.so'].amdsmi_get_device_handles
amdsmi_get_device_handles.restype = amdsmi_status_t
amdsmi_get_device_handles.argtypes = [amdsmi_socket_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))]
amdsmi_get_device_type = _libraries['libamd_smi.so'].amdsmi_get_device_type
amdsmi_get_device_type.restype = amdsmi_status_t
amdsmi_get_device_type.argtypes = [amdsmi_device_handle, ctypes.POINTER(c__EA_device_type_t)]
amdsmi_get_device_handle_from_bdf = _libraries['libamd_smi.so'].amdsmi_get_device_handle_from_bdf
amdsmi_get_device_handle_from_bdf.restype = amdsmi_status_t
amdsmi_get_device_handle_from_bdf.argtypes = [amdsmi_bdf_t, ctypes.POINTER(ctypes.POINTER(None))]
amdsmi_dev_get_id = _libraries['libamd_smi.so'].amdsmi_dev_get_id
amdsmi_dev_get_id.restype = amdsmi_status_t
amdsmi_dev_get_id.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint16)]
amdsmi_dev_get_vendor_name = _libraries['libamd_smi.so'].amdsmi_dev_get_vendor_name
amdsmi_dev_get_vendor_name.restype = amdsmi_status_t
amdsmi_dev_get_vendor_name.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_char), size_t]
uint32_t = ctypes.c_uint32
amdsmi_dev_get_vram_vendor = _libraries['libamd_smi.so'].amdsmi_dev_get_vram_vendor
amdsmi_dev_get_vram_vendor.restype = amdsmi_status_t
amdsmi_dev_get_vram_vendor.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_char), uint32_t]
amdsmi_dev_get_subsystem_id = _libraries['libamd_smi.so'].amdsmi_dev_get_subsystem_id
amdsmi_dev_get_subsystem_id.restype = amdsmi_status_t
amdsmi_dev_get_subsystem_id.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint16)]
amdsmi_dev_get_subsystem_name = _libraries['libamd_smi.so'].amdsmi_dev_get_subsystem_name
amdsmi_dev_get_subsystem_name.restype = amdsmi_status_t
amdsmi_dev_get_subsystem_name.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_char), size_t]
amdsmi_dev_get_drm_render_minor = _libraries['libamd_smi.so'].amdsmi_dev_get_drm_render_minor
amdsmi_dev_get_drm_render_minor.restype = amdsmi_status_t
amdsmi_dev_get_drm_render_minor.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32)]
amdsmi_dev_get_pci_bandwidth = _libraries['libamd_smi.so'].amdsmi_dev_get_pci_bandwidth
amdsmi_dev_get_pci_bandwidth.restype = amdsmi_status_t
amdsmi_dev_get_pci_bandwidth.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_bandwidth_t)]
amdsmi_dev_get_pci_id = _libraries['libamd_smi.so'].amdsmi_dev_get_pci_id
amdsmi_dev_get_pci_id.restype = amdsmi_status_t
amdsmi_dev_get_pci_id.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_topo_get_numa_affinity = _libraries['libamd_smi.so'].amdsmi_topo_get_numa_affinity
amdsmi_topo_get_numa_affinity.restype = amdsmi_status_t
amdsmi_topo_get_numa_affinity.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32)]
amdsmi_dev_get_pci_throughput = _libraries['libamd_smi.so'].amdsmi_dev_get_pci_throughput
amdsmi_dev_get_pci_throughput.restype = amdsmi_status_t
amdsmi_dev_get_pci_throughput.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_get_pci_replay_counter = _libraries['libamd_smi.so'].amdsmi_dev_get_pci_replay_counter
amdsmi_dev_get_pci_replay_counter.restype = amdsmi_status_t
amdsmi_dev_get_pci_replay_counter.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_set_pci_bandwidth = _libraries['libamd_smi.so'].amdsmi_dev_set_pci_bandwidth
amdsmi_dev_set_pci_bandwidth.restype = amdsmi_status_t
amdsmi_dev_set_pci_bandwidth.argtypes = [amdsmi_device_handle, uint64_t]
amdsmi_dev_get_power_ave = _libraries['libamd_smi.so'].amdsmi_dev_get_power_ave
amdsmi_dev_get_power_ave.restype = amdsmi_status_t
amdsmi_dev_get_power_ave.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_get_energy_count = _libraries['libamd_smi.so'].amdsmi_dev_get_energy_count
amdsmi_dev_get_energy_count.restype = amdsmi_status_t
amdsmi_dev_get_energy_count.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_float), ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_set_power_cap = _libraries['libamd_smi.so'].amdsmi_dev_set_power_cap
amdsmi_dev_set_power_cap.restype = amdsmi_status_t
amdsmi_dev_set_power_cap.argtypes = [amdsmi_device_handle, uint32_t, uint64_t]
amdsmi_dev_set_power_profile = _libraries['libamd_smi.so'].amdsmi_dev_set_power_profile
amdsmi_dev_set_power_profile.restype = amdsmi_status_t
amdsmi_dev_set_power_profile.argtypes = [amdsmi_device_handle, uint32_t, amdsmi_power_profile_preset_masks_t]
amdsmi_dev_get_memory_total = _libraries['libamd_smi.so'].amdsmi_dev_get_memory_total
amdsmi_dev_get_memory_total.restype = amdsmi_status_t
amdsmi_dev_get_memory_total.argtypes = [amdsmi_device_handle, amdsmi_memory_type_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_get_memory_usage = _libraries['libamd_smi.so'].amdsmi_dev_get_memory_usage
amdsmi_dev_get_memory_usage.restype = amdsmi_status_t
amdsmi_dev_get_memory_usage.argtypes = [amdsmi_device_handle, amdsmi_memory_type_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_get_bad_page_info = _libraries['libamd_smi.so'].amdsmi_get_bad_page_info
amdsmi_get_bad_page_info.restype = amdsmi_status_t
amdsmi_get_bad_page_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_retired_page_record_t)]
amdsmi_get_ras_block_features_enabled = _libraries['libamd_smi.so'].amdsmi_get_ras_block_features_enabled
amdsmi_get_ras_block_features_enabled.restype = amdsmi_status_t
amdsmi_get_ras_block_features_enabled.argtypes = [amdsmi_device_handle, amdsmi_gpu_block_t, ctypes.POINTER(c__EA_amdsmi_ras_err_state_t)]
amdsmi_dev_get_memory_busy_percent = _libraries['libamd_smi.so'].amdsmi_dev_get_memory_busy_percent
amdsmi_dev_get_memory_busy_percent.restype = amdsmi_status_t
amdsmi_dev_get_memory_busy_percent.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32)]
amdsmi_dev_get_memory_reserved_pages = _libraries['libamd_smi.so'].amdsmi_dev_get_memory_reserved_pages
amdsmi_dev_get_memory_reserved_pages.restype = amdsmi_status_t
amdsmi_dev_get_memory_reserved_pages.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_retired_page_record_t)]
amdsmi_dev_get_fan_rpms = _libraries['libamd_smi.so'].amdsmi_dev_get_fan_rpms
amdsmi_dev_get_fan_rpms.restype = amdsmi_status_t
amdsmi_dev_get_fan_rpms.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(ctypes.c_int64)]
amdsmi_dev_get_fan_speed = _libraries['libamd_smi.so'].amdsmi_dev_get_fan_speed
amdsmi_dev_get_fan_speed.restype = amdsmi_status_t
amdsmi_dev_get_fan_speed.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(ctypes.c_int64)]
amdsmi_dev_get_fan_speed_max = _libraries['libamd_smi.so'].amdsmi_dev_get_fan_speed_max
amdsmi_dev_get_fan_speed_max.restype = amdsmi_status_t
amdsmi_dev_get_fan_speed_max.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_get_temp_metric = _libraries['libamd_smi.so'].amdsmi_dev_get_temp_metric
amdsmi_dev_get_temp_metric.restype = amdsmi_status_t
amdsmi_dev_get_temp_metric.argtypes = [amdsmi_device_handle, amdsmi_temperature_type_t, amdsmi_temperature_metric_t, ctypes.POINTER(ctypes.c_int64)]
amdsmi_dev_get_volt_metric = _libraries['libamd_smi.so'].amdsmi_dev_get_volt_metric
amdsmi_dev_get_volt_metric.restype = amdsmi_status_t
amdsmi_dev_get_volt_metric.argtypes = [amdsmi_device_handle, amdsmi_voltage_type_t, amdsmi_voltage_metric_t, ctypes.POINTER(ctypes.c_int64)]
amdsmi_dev_reset_fan = _libraries['libamd_smi.so'].amdsmi_dev_reset_fan
amdsmi_dev_reset_fan.restype = amdsmi_status_t
amdsmi_dev_reset_fan.argtypes = [amdsmi_device_handle, uint32_t]
amdsmi_dev_set_fan_speed = _libraries['libamd_smi.so'].amdsmi_dev_set_fan_speed
amdsmi_dev_set_fan_speed.restype = amdsmi_status_t
amdsmi_dev_set_fan_speed.argtypes = [amdsmi_device_handle, uint32_t, uint64_t]
amdsmi_dev_get_busy_percent = _libraries['libamd_smi.so'].amdsmi_dev_get_busy_percent
amdsmi_dev_get_busy_percent.restype = amdsmi_status_t
amdsmi_dev_get_busy_percent.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32)]
amdsmi_get_utilization_count = _libraries['libamd_smi.so'].amdsmi_get_utilization_count
amdsmi_get_utilization_count.restype = amdsmi_status_t
amdsmi_get_utilization_count.argtypes = [amdsmi_device_handle, struct_c__SA_amdsmi_utilization_counter_t * 0, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_get_pcie_link_status = _libraries['libamd_smi.so'].amdsmi_get_pcie_link_status
amdsmi_get_pcie_link_status.restype = amdsmi_status_t
amdsmi_get_pcie_link_status.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_info_t)]
amdsmi_get_pcie_link_caps = _libraries['libamd_smi.so'].amdsmi_get_pcie_link_caps
amdsmi_get_pcie_link_caps.restype = amdsmi_status_t
amdsmi_get_pcie_link_caps.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_info_t)]
amdsmi_dev_get_perf_level = _libraries['libamd_smi.so'].amdsmi_dev_get_perf_level
amdsmi_dev_get_perf_level.restype = amdsmi_status_t
amdsmi_dev_get_perf_level.argtypes = [amdsmi_device_handle, ctypes.POINTER(c__EA_amdsmi_dev_perf_level_t)]
amdsmi_set_perf_determinism_mode = _libraries['libamd_smi.so'].amdsmi_set_perf_determinism_mode
amdsmi_set_perf_determinism_mode.restype = amdsmi_status_t
amdsmi_set_perf_determinism_mode.argtypes = [amdsmi_device_handle, uint64_t]
amdsmi_dev_get_overdrive_level = _libraries['libamd_smi.so'].amdsmi_dev_get_overdrive_level
amdsmi_dev_get_overdrive_level.restype = amdsmi_status_t
amdsmi_dev_get_overdrive_level.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32)]
amdsmi_dev_get_gpu_clk_freq = _libraries['libamd_smi.so'].amdsmi_dev_get_gpu_clk_freq
amdsmi_dev_get_gpu_clk_freq.restype = amdsmi_status_t
amdsmi_dev_get_gpu_clk_freq.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_c__SA_amdsmi_frequencies_t)]
amdsmi_dev_reset_gpu = _libraries['libamd_smi.so'].amdsmi_dev_reset_gpu
amdsmi_dev_reset_gpu.restype = amdsmi_status_t
amdsmi_dev_reset_gpu.argtypes = [amdsmi_device_handle]
amdsmi_dev_get_od_volt_info = _libraries['libamd_smi.so'].amdsmi_dev_get_od_volt_info
amdsmi_dev_get_od_volt_info.restype = amdsmi_status_t
amdsmi_dev_get_od_volt_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_od_volt_freq_data_t)]
amdsmi_dev_get_gpu_metrics_info = _libraries['libamd_smi.so'].amdsmi_dev_get_gpu_metrics_info
amdsmi_dev_get_gpu_metrics_info.restype = amdsmi_status_t
amdsmi_dev_get_gpu_metrics_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_gpu_metrics_t)]
amdsmi_dev_set_clk_range = _libraries['libamd_smi.so'].amdsmi_dev_set_clk_range
amdsmi_dev_set_clk_range.restype = amdsmi_status_t
amdsmi_dev_set_clk_range.argtypes = [amdsmi_device_handle, uint64_t, uint64_t, amdsmi_clk_type_t]
amdsmi_dev_set_od_clk_info = _libraries['libamd_smi.so'].amdsmi_dev_set_od_clk_info
amdsmi_dev_set_od_clk_info.restype = amdsmi_status_t
amdsmi_dev_set_od_clk_info.argtypes = [amdsmi_device_handle, amdsmi_freq_ind_t, uint64_t, amdsmi_clk_type_t]
amdsmi_dev_set_od_volt_info = _libraries['libamd_smi.so'].amdsmi_dev_set_od_volt_info
amdsmi_dev_set_od_volt_info.restype = amdsmi_status_t
amdsmi_dev_set_od_volt_info.argtypes = [amdsmi_device_handle, uint32_t, uint64_t, uint64_t]
amdsmi_dev_get_od_volt_curve_regions = _libraries['libamd_smi.so'].amdsmi_dev_get_od_volt_curve_regions
amdsmi_dev_get_od_volt_curve_regions.restype = amdsmi_status_t
amdsmi_dev_get_od_volt_curve_regions.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_freq_volt_region_t)]
amdsmi_dev_get_power_profile_presets = _libraries['libamd_smi.so'].amdsmi_dev_get_power_profile_presets
amdsmi_dev_get_power_profile_presets.restype = amdsmi_status_t
amdsmi_dev_get_power_profile_presets.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(struct_c__SA_amdsmi_power_profile_status_t)]
amdsmi_dev_set_perf_level = _libraries['libamd_smi.so'].amdsmi_dev_set_perf_level
amdsmi_dev_set_perf_level.restype = amdsmi_status_t
amdsmi_dev_set_perf_level.argtypes = [amdsmi_device_handle, amdsmi_dev_perf_level_t]
amdsmi_dev_set_perf_level_v1 = _libraries['libamd_smi.so'].amdsmi_dev_set_perf_level_v1
amdsmi_dev_set_perf_level_v1.restype = amdsmi_status_t
amdsmi_dev_set_perf_level_v1.argtypes = [amdsmi_device_handle, amdsmi_dev_perf_level_t]
amdsmi_dev_set_overdrive_level = _libraries['libamd_smi.so'].amdsmi_dev_set_overdrive_level
amdsmi_dev_set_overdrive_level.restype = amdsmi_status_t
amdsmi_dev_set_overdrive_level.argtypes = [amdsmi_device_handle, uint32_t]
amdsmi_dev_set_overdrive_level_v1 = _libraries['libamd_smi.so'].amdsmi_dev_set_overdrive_level_v1
amdsmi_dev_set_overdrive_level_v1.restype = amdsmi_status_t
amdsmi_dev_set_overdrive_level_v1.argtypes = [amdsmi_device_handle, uint32_t]
amdsmi_dev_set_clk_freq = _libraries['libamd_smi.so'].amdsmi_dev_set_clk_freq
amdsmi_dev_set_clk_freq.restype = amdsmi_status_t
amdsmi_dev_set_clk_freq.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, uint64_t]
amdsmi_get_version = _libraries['libamd_smi.so'].amdsmi_get_version
amdsmi_get_version.restype = amdsmi_status_t
amdsmi_get_version.argtypes = [ctypes.POINTER(struct_c__SA_amdsmi_version_t)]
amdsmi_get_version_str = _libraries['libamd_smi.so'].amdsmi_get_version_str
amdsmi_get_version_str.restype = amdsmi_status_t
amdsmi_get_version_str.argtypes = [amdsmi_sw_component_t, ctypes.POINTER(ctypes.c_char), uint32_t]
amdsmi_dev_get_ecc_count = _libraries['libamd_smi.so'].amdsmi_dev_get_ecc_count
amdsmi_dev_get_ecc_count.restype = amdsmi_status_t
amdsmi_dev_get_ecc_count.argtypes = [amdsmi_device_handle, amdsmi_gpu_block_t, ctypes.POINTER(struct_c__SA_amdsmi_error_count_t)]
amdsmi_dev_get_ecc_enabled = _libraries['libamd_smi.so'].amdsmi_dev_get_ecc_enabled
amdsmi_dev_get_ecc_enabled.restype = amdsmi_status_t
amdsmi_dev_get_ecc_enabled.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_get_ecc_status = _libraries['libamd_smi.so'].amdsmi_dev_get_ecc_status
amdsmi_dev_get_ecc_status.restype = amdsmi_status_t
amdsmi_dev_get_ecc_status.argtypes = [amdsmi_device_handle, amdsmi_gpu_block_t, ctypes.POINTER(c__EA_amdsmi_ras_err_state_t)]
amdsmi_status_string = _libraries['libamd_smi.so'].amdsmi_status_string
amdsmi_status_string.restype = amdsmi_status_t
amdsmi_status_string.argtypes = [amdsmi_status_t, ctypes.POINTER(ctypes.POINTER(ctypes.c_char))]
amdsmi_dev_counter_group_supported = _libraries['libamd_smi.so'].amdsmi_dev_counter_group_supported
amdsmi_dev_counter_group_supported.restype = amdsmi_status_t
amdsmi_dev_counter_group_supported.argtypes = [amdsmi_device_handle, amdsmi_event_group_t]
amdsmi_dev_create_counter = _libraries['libamd_smi.so'].amdsmi_dev_create_counter
amdsmi_dev_create_counter.restype = amdsmi_status_t
amdsmi_dev_create_counter.argtypes = [amdsmi_device_handle, amdsmi_event_type_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_dev_destroy_counter = _libraries['libamd_smi.so'].amdsmi_dev_destroy_counter
amdsmi_dev_destroy_counter.restype = amdsmi_status_t
amdsmi_dev_destroy_counter.argtypes = [amdsmi_event_handle_t]
amdsmi_control_counter = _libraries['libamd_smi.so'].amdsmi_control_counter
amdsmi_control_counter.restype = amdsmi_status_t
amdsmi_control_counter.argtypes = [amdsmi_event_handle_t, amdsmi_counter_command_t, ctypes.POINTER(None)]
amdsmi_read_counter = _libraries['libamd_smi.so'].amdsmi_read_counter
amdsmi_read_counter.restype = amdsmi_status_t
amdsmi_read_counter.argtypes = [amdsmi_event_handle_t, ctypes.POINTER(struct_c__SA_amdsmi_counter_value_t)]
amdsmi_counter_get_available_counters = _libraries['libamd_smi.so'].amdsmi_counter_get_available_counters
amdsmi_counter_get_available_counters.restype = amdsmi_status_t
amdsmi_counter_get_available_counters.argtypes = [amdsmi_device_handle, amdsmi_event_group_t, ctypes.POINTER(ctypes.c_uint32)]
amdsmi_get_compute_process_info = _libraries['libamd_smi.so'].amdsmi_get_compute_process_info
amdsmi_get_compute_process_info.restype = amdsmi_status_t
amdsmi_get_compute_process_info.argtypes = [ctypes.POINTER(struct_c__SA_amdsmi_process_info_t), ctypes.POINTER(ctypes.c_uint32)]
amdsmi_get_compute_process_info_by_pid = _libraries['libamd_smi.so'].amdsmi_get_compute_process_info_by_pid
amdsmi_get_compute_process_info_by_pid.restype = amdsmi_status_t
amdsmi_get_compute_process_info_by_pid.argtypes = [uint32_t, ctypes.POINTER(struct_c__SA_amdsmi_process_info_t)]
amdsmi_get_compute_process_gpus = _libraries['libamd_smi.so'].amdsmi_get_compute_process_gpus
amdsmi_get_compute_process_gpus.restype = amdsmi_status_t
amdsmi_get_compute_process_gpus.argtypes = [uint32_t, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)]
amdsmi_dev_xgmi_error_status = _libraries['libamd_smi.so'].amdsmi_dev_xgmi_error_status
amdsmi_dev_xgmi_error_status.restype = amdsmi_status_t
amdsmi_dev_xgmi_error_status.argtypes = [amdsmi_device_handle, ctypes.POINTER(c__EA_amdsmi_xgmi_status_t)]
amdsmi_dev_reset_xgmi_error = _libraries['libamd_smi.so'].amdsmi_dev_reset_xgmi_error
amdsmi_dev_reset_xgmi_error.restype = amdsmi_status_t
amdsmi_dev_reset_xgmi_error.argtypes = [amdsmi_device_handle]
amdsmi_topo_get_numa_node_number = _libraries['libamd_smi.so'].amdsmi_topo_get_numa_node_number
amdsmi_topo_get_numa_node_number.restype = amdsmi_status_t
amdsmi_topo_get_numa_node_number.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32)]
amdsmi_topo_get_link_weight = _libraries['libamd_smi.so'].amdsmi_topo_get_link_weight
amdsmi_topo_get_link_weight.restype = amdsmi_status_t
amdsmi_topo_get_link_weight.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_get_minmax_bandwidth = _libraries['libamd_smi.so'].amdsmi_get_minmax_bandwidth
amdsmi_get_minmax_bandwidth.restype = amdsmi_status_t
amdsmi_get_minmax_bandwidth.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_uint64)]
amdsmi_topo_get_link_type = _libraries['libamd_smi.so'].amdsmi_topo_get_link_type
amdsmi_topo_get_link_type.restype = amdsmi_status_t
amdsmi_topo_get_link_type.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(c__EA_AMDSMI_IO_LINK_TYPE)]
amdsmi_is_P2P_accessible = _libraries['libamd_smi.so'].amdsmi_is_P2P_accessible
amdsmi_is_P2P_accessible.restype = amdsmi_status_t
amdsmi_is_P2P_accessible.argtypes = [amdsmi_device_handle, amdsmi_device_handle, ctypes.POINTER(ctypes.c_bool)]
amdsmi_dev_open_supported_func_iterator = _libraries['libamd_smi.so'].amdsmi_dev_open_supported_func_iterator
amdsmi_dev_open_supported_func_iterator.restype = amdsmi_status_t
amdsmi_dev_open_supported_func_iterator.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.POINTER(struct_amdsmi_func_id_iter_handle))]
amdsmi_dev_open_supported_variant_iterator = _libraries['libamd_smi.so'].amdsmi_dev_open_supported_variant_iterator
amdsmi_dev_open_supported_variant_iterator.restype = amdsmi_status_t
amdsmi_dev_open_supported_variant_iterator.argtypes = [amdsmi_func_id_iter_handle_t, ctypes.POINTER(ctypes.POINTER(struct_amdsmi_func_id_iter_handle))]
amdsmi_next_func_iter = _libraries['libamd_smi.so'].amdsmi_next_func_iter
amdsmi_next_func_iter.restype = amdsmi_status_t
amdsmi_next_func_iter.argtypes = [amdsmi_func_id_iter_handle_t]
amdsmi_dev_close_supported_func_iterator = _libraries['libamd_smi.so'].amdsmi_dev_close_supported_func_iterator
amdsmi_dev_close_supported_func_iterator.restype = amdsmi_status_t
amdsmi_dev_close_supported_func_iterator.argtypes = [ctypes.POINTER(ctypes.POINTER(struct_amdsmi_func_id_iter_handle))]
amdsmi_get_func_iter_value = _libraries['libamd_smi.so'].amdsmi_get_func_iter_value
amdsmi_get_func_iter_value.restype = amdsmi_status_t
amdsmi_get_func_iter_value.argtypes = [amdsmi_func_id_iter_handle_t, ctypes.POINTER(union_c__UA_amdsmi_func_id_value_t)]
amdsmi_init_event_notification = _libraries['libamd_smi.so'].amdsmi_init_event_notification
amdsmi_init_event_notification.restype = amdsmi_status_t
amdsmi_init_event_notification.argtypes = [amdsmi_device_handle]
amdsmi_set_event_notification_mask = _libraries['libamd_smi.so'].amdsmi_set_event_notification_mask
amdsmi_set_event_notification_mask.restype = amdsmi_status_t
amdsmi_set_event_notification_mask.argtypes = [amdsmi_device_handle, uint64_t]
amdsmi_get_event_notification = _libraries['libamd_smi.so'].amdsmi_get_event_notification
amdsmi_get_event_notification.restype = amdsmi_status_t
amdsmi_get_event_notification.argtypes = [ctypes.c_int32, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_evt_notification_data_t)]
amdsmi_stop_event_notification = _libraries['libamd_smi.so'].amdsmi_stop_event_notification
amdsmi_stop_event_notification.restype = amdsmi_status_t
amdsmi_stop_event_notification.argtypes = [amdsmi_device_handle]
amdsmi_get_device_bdf = _libraries['libamd_smi.so'].amdsmi_get_device_bdf
amdsmi_get_device_bdf.restype = amdsmi_status_t
amdsmi_get_device_bdf.argtypes = [amdsmi_device_handle, ctypes.POINTER(union_c__UA_amdsmi_bdf_t)]
amdsmi_get_device_uuid = _libraries['libamd_smi.so'].amdsmi_get_device_uuid
amdsmi_get_device_uuid.restype = amdsmi_status_t
amdsmi_get_device_uuid.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_char)]
amdsmi_get_driver_version = _libraries['libamd_smi.so'].amdsmi_get_driver_version
amdsmi_get_driver_version.restype = amdsmi_status_t
amdsmi_get_driver_version.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_char)]
amdsmi_get_asic_info = _libraries['libamd_smi.so'].amdsmi_get_asic_info
amdsmi_get_asic_info.restype = amdsmi_status_t
amdsmi_get_asic_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_asic_info_t)]
amdsmi_get_board_info = _libraries['libamd_smi.so'].amdsmi_get_board_info
amdsmi_get_board_info.restype = amdsmi_status_t
amdsmi_get_board_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_board_info_t)]
amdsmi_get_power_cap_info = _libraries['libamd_smi.so'].amdsmi_get_power_cap_info
amdsmi_get_power_cap_info.restype = amdsmi_status_t
amdsmi_get_power_cap_info.argtypes = [amdsmi_device_handle, uint32_t, ctypes.POINTER(struct_c__SA_amdsmi_power_cap_info_t)]
amdsmi_get_xgmi_info = _libraries['libamd_smi.so'].amdsmi_get_xgmi_info
amdsmi_get_xgmi_info.restype = amdsmi_status_t
amdsmi_get_xgmi_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_xgmi_info_t)]
amdsmi_get_caps_info = _libraries['libamd_smi.so'].amdsmi_get_caps_info
amdsmi_get_caps_info.restype = amdsmi_status_t
amdsmi_get_caps_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_gpu_caps_t)]
amdsmi_get_fw_info = _libraries['libamd_smi.so'].amdsmi_get_fw_info
amdsmi_get_fw_info.restype = amdsmi_status_t
amdsmi_get_fw_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_fw_info_t)]
amdsmi_get_vbios_info = _libraries['libamd_smi.so'].amdsmi_get_vbios_info
amdsmi_get_vbios_info.restype = amdsmi_status_t
amdsmi_get_vbios_info.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_vbios_info_t)]
amdsmi_get_gpu_activity = _libraries['libamd_smi.so'].amdsmi_get_gpu_activity
amdsmi_get_gpu_activity.restype = amdsmi_status_t
amdsmi_get_gpu_activity.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_engine_usage_t)]
amdsmi_get_power_measure = _libraries['libamd_smi.so'].amdsmi_get_power_measure
amdsmi_get_power_measure.restype = amdsmi_status_t
amdsmi_get_power_measure.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_power_measure_t)]
amdsmi_get_clock_measure = _libraries['libamd_smi.so'].amdsmi_get_clock_measure
amdsmi_get_clock_measure.restype = amdsmi_status_t
amdsmi_get_clock_measure.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_c__SA_amdsmi_clk_measure_t)]
amdsmi_get_vram_usage = _libraries['libamd_smi.so'].amdsmi_get_vram_usage
amdsmi_get_vram_usage.restype = amdsmi_status_t
amdsmi_get_vram_usage.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_vram_info_t)]
amdsmi_get_target_frequency_range = _libraries['libamd_smi.so'].amdsmi_get_target_frequency_range
amdsmi_get_target_frequency_range.restype = amdsmi_status_t
amdsmi_get_target_frequency_range.argtypes = [amdsmi_device_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_c__SA_amdsmi_frequency_range_t)]
amdsmi_get_process_list = _libraries['libamd_smi.so'].amdsmi_get_process_list
amdsmi_get_process_list.restype = amdsmi_status_t
amdsmi_get_process_list.argtypes = [amdsmi_device_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)]
amdsmi_get_process_info = _libraries['libamd_smi.so'].amdsmi_get_process_info
amdsmi_get_process_info.restype = amdsmi_status_t
amdsmi_get_process_info.argtypes = [amdsmi_device_handle, amdsmi_process_handle, ctypes.POINTER(struct_c__SA_amdsmi_proc_info_t)]
amdsmi_get_ecc_error_count = _libraries['libamd_smi.so'].amdsmi_get_ecc_error_count
amdsmi_get_ecc_error_count.restype = amdsmi_status_t
amdsmi_get_ecc_error_count.argtypes = [amdsmi_device_handle, ctypes.POINTER(struct_c__SA_amdsmi_error_count_t)]
__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_STATUS_ADDRESS_FAULT',
'AMDSMI_STATUS_API_FAILED', 'AMDSMI_STATUS_BUSY',
'AMDSMI_STATUS_DRM_ERROR', 'AMDSMI_STATUS_FAIL_LOAD_MODULE',
'AMDSMI_STATUS_FAIL_LOAD_SYMBOL', '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_MAP_ERROR', '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', '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',
'amd_metrics_table_header_t', 'amdsmi_asic_info_t',
'amdsmi_bdf_t', 'amdsmi_bit_field_t', 'amdsmi_board_info_t',
'amdsmi_clk_measure_t', 'amdsmi_clk_type_t',
'amdsmi_clk_type_t__enumvalues', 'amdsmi_container_types_t',
'amdsmi_container_types_t__enumvalues', 'amdsmi_control_counter',
'amdsmi_counter_command_t',
'amdsmi_counter_command_t__enumvalues',
'amdsmi_counter_get_available_counters', 'amdsmi_counter_value_t',
'amdsmi_dev_close_supported_func_iterator',
'amdsmi_dev_counter_group_supported', 'amdsmi_dev_create_counter',
'amdsmi_dev_destroy_counter', 'amdsmi_dev_get_busy_percent',
'amdsmi_dev_get_drm_render_minor', 'amdsmi_dev_get_ecc_count',
'amdsmi_dev_get_ecc_enabled', 'amdsmi_dev_get_ecc_status',
'amdsmi_dev_get_energy_count', 'amdsmi_dev_get_fan_rpms',
'amdsmi_dev_get_fan_speed', 'amdsmi_dev_get_fan_speed_max',
'amdsmi_dev_get_gpu_clk_freq', 'amdsmi_dev_get_gpu_metrics_info',
'amdsmi_dev_get_id', 'amdsmi_dev_get_memory_busy_percent',
'amdsmi_dev_get_memory_reserved_pages',
'amdsmi_dev_get_memory_total', 'amdsmi_dev_get_memory_usage',
'amdsmi_dev_get_od_volt_curve_regions',
'amdsmi_dev_get_od_volt_info', 'amdsmi_dev_get_overdrive_level',
'amdsmi_dev_get_pci_bandwidth', 'amdsmi_dev_get_pci_id',
'amdsmi_dev_get_pci_replay_counter',
'amdsmi_dev_get_pci_throughput', 'amdsmi_dev_get_perf_level',
'amdsmi_dev_get_power_ave',
'amdsmi_dev_get_power_profile_presets',
'amdsmi_dev_get_subsystem_id', 'amdsmi_dev_get_subsystem_name',
'amdsmi_dev_get_temp_metric', 'amdsmi_dev_get_vendor_name',
'amdsmi_dev_get_volt_metric', 'amdsmi_dev_get_vram_vendor',
'amdsmi_dev_open_supported_func_iterator',
'amdsmi_dev_open_supported_variant_iterator',
'amdsmi_dev_perf_level_t', 'amdsmi_dev_perf_level_t__enumvalues',
'amdsmi_dev_reset_fan', 'amdsmi_dev_reset_gpu',
'amdsmi_dev_reset_xgmi_error', 'amdsmi_dev_set_clk_freq',
'amdsmi_dev_set_clk_range', 'amdsmi_dev_set_fan_speed',
'amdsmi_dev_set_od_clk_info', 'amdsmi_dev_set_od_volt_info',
'amdsmi_dev_set_overdrive_level',
'amdsmi_dev_set_overdrive_level_v1',
'amdsmi_dev_set_pci_bandwidth', 'amdsmi_dev_set_perf_level',
'amdsmi_dev_set_perf_level_v1', 'amdsmi_dev_set_power_cap',
'amdsmi_dev_set_power_profile', 'amdsmi_dev_xgmi_error_status',
'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_t',
'amdsmi_freq_ind_t__enumvalues', 'amdsmi_freq_volt_region_t',
'amdsmi_frequencies_t', 'amdsmi_frequency_range_t',
'amdsmi_func_id_iter_handle_t', 'amdsmi_func_id_value_t',
'amdsmi_fw_block_t', 'amdsmi_fw_block_t__enumvalues',
'amdsmi_fw_info_t', 'amdsmi_get_asic_info',
'amdsmi_get_bad_page_info', 'amdsmi_get_board_info',
'amdsmi_get_caps_info', 'amdsmi_get_clock_measure',
'amdsmi_get_compute_process_gpus',
'amdsmi_get_compute_process_info',
'amdsmi_get_compute_process_info_by_pid', 'amdsmi_get_device_bdf',
'amdsmi_get_device_handle_from_bdf', 'amdsmi_get_device_handles',
'amdsmi_get_device_type', 'amdsmi_get_device_uuid',
'amdsmi_get_driver_version', 'amdsmi_get_ecc_error_count',
'amdsmi_get_event_notification', 'amdsmi_get_func_iter_value',
'amdsmi_get_fw_info', 'amdsmi_get_gpu_activity',
'amdsmi_get_minmax_bandwidth', 'amdsmi_get_pcie_link_caps',
'amdsmi_get_pcie_link_status', 'amdsmi_get_power_cap_info',
'amdsmi_get_power_measure', 'amdsmi_get_process_info',
'amdsmi_get_process_list',
'amdsmi_get_ras_block_features_enabled',
'amdsmi_get_socket_handles', 'amdsmi_get_socket_info',
'amdsmi_get_target_frequency_range',
'amdsmi_get_utilization_count', 'amdsmi_get_vbios_info',
'amdsmi_get_version', 'amdsmi_get_version_str',
'amdsmi_get_vram_usage', 'amdsmi_get_xgmi_info',
'amdsmi_gpu_block_t', 'amdsmi_gpu_block_t__enumvalues',
'amdsmi_gpu_caps_t', 'amdsmi_gpu_metrics_t', 'amdsmi_init',
'amdsmi_init_event_notification', 'amdsmi_init_flags_t',
'amdsmi_init_flags_t__enumvalues', 'amdsmi_is_P2P_accessible',
'amdsmi_memory_page_status_t',
'amdsmi_memory_page_status_t__enumvalues', 'amdsmi_memory_type_t',
'amdsmi_memory_type_t__enumvalues', 'amdsmi_mm_ip_t',
'amdsmi_mm_ip_t__enumvalues', 'amdsmi_next_func_iter',
'amdsmi_od_vddc_point_t', 'amdsmi_od_volt_curve_t',
'amdsmi_od_volt_freq_data_t', 'amdsmi_pcie_bandwidth_t',
'amdsmi_pcie_info_t', 'amdsmi_power_cap_info_t',
'amdsmi_power_measure_t', 'amdsmi_power_profile_preset_masks_t',
'amdsmi_power_profile_preset_masks_t__enumvalues',
'amdsmi_power_profile_status_t', 'amdsmi_proc_info_t',
'amdsmi_process_handle', 'amdsmi_process_info_t',
'amdsmi_range_t', 'amdsmi_ras_err_state_t',
'amdsmi_ras_err_state_t__enumvalues', 'amdsmi_read_counter',
'amdsmi_retired_page_record_t',
'amdsmi_set_event_notification_mask',
'amdsmi_set_perf_determinism_mode', 'amdsmi_shut_down',
'amdsmi_socket_handle', 'amdsmi_status_string', 'amdsmi_status_t',
'amdsmi_status_t__enumvalues', 'amdsmi_stop_event_notification',
'amdsmi_sw_component_t', 'amdsmi_sw_component_t__enumvalues',
'amdsmi_temperature_metric_t',
'amdsmi_temperature_metric_t__enumvalues',
'amdsmi_temperature_type_t',
'amdsmi_temperature_type_t__enumvalues',
'amdsmi_topo_get_link_type', 'amdsmi_topo_get_link_weight',
'amdsmi_topo_get_numa_affinity',
'amdsmi_topo_get_numa_node_number',
'amdsmi_utilization_counter_t', 'amdsmi_vbios_info_t',
'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_IO_LINK_TYPE',
'c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE',
'c__EA_amdsmi_clk_type_t', 'c__EA_amdsmi_container_types_t',
'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_fw_block_t', 'c__EA_amdsmi_gpu_block_t',
'c__EA_amdsmi_init_flags_t', 'c__EA_amdsmi_memory_page_status_t',
'c__EA_amdsmi_memory_type_t', 'c__EA_amdsmi_mm_ip_t',
'c__EA_amdsmi_power_profile_preset_masks_t',
'c__EA_amdsmi_ras_err_state_t', 'c__EA_amdsmi_status_t',
'c__EA_amdsmi_sw_component_t',
'c__EA_amdsmi_temperature_metric_t',
'c__EA_amdsmi_temperature_type_t',
'c__EA_amdsmi_voltage_metric_t', 'c__EA_amdsmi_voltage_type_t',
'c__EA_amdsmi_xgmi_status_t', 'c__EA_device_type_t',
'device_type_t', 'device_type_t__enumvalues', 'size_t',
'struct_amdsmi_func_id_iter_handle',
'struct_c__SA_amd_metrics_table_header_t',
'struct_c__SA_amdsmi_asic_info_t',
'struct_c__SA_amdsmi_board_info_t',
'struct_c__SA_amdsmi_clk_measure_t',
'struct_c__SA_amdsmi_counter_value_t',
'struct_c__SA_amdsmi_engine_usage_t',
'struct_c__SA_amdsmi_error_count_t',
'struct_c__SA_amdsmi_evt_notification_data_t',
'struct_c__SA_amdsmi_freq_volt_region_t',
'struct_c__SA_amdsmi_frequencies_t',
'struct_c__SA_amdsmi_frequency_range_t',
'struct_c__SA_amdsmi_fw_info_t',
'struct_c__SA_amdsmi_fw_info_t_0',
'struct_c__SA_amdsmi_gpu_caps_t',
'struct_c__SA_amdsmi_gpu_caps_t_0',
'struct_c__SA_amdsmi_gpu_caps_t_1',
'struct_c__SA_amdsmi_gpu_metrics_t',
'struct_c__SA_amdsmi_od_vddc_point_t',
'struct_c__SA_amdsmi_od_volt_curve_t',
'struct_c__SA_amdsmi_od_volt_freq_data_t',
'struct_c__SA_amdsmi_pcie_bandwidth_t',
'struct_c__SA_amdsmi_pcie_info_t',
'struct_c__SA_amdsmi_power_cap_info_t',
'struct_c__SA_amdsmi_power_measure_t',
'struct_c__SA_amdsmi_power_profile_status_t',
'struct_c__SA_amdsmi_proc_info_t',
'struct_c__SA_amdsmi_proc_info_t_0',
'struct_c__SA_amdsmi_proc_info_t_1',
'struct_c__SA_amdsmi_process_info_t',
'struct_c__SA_amdsmi_range_t',
'struct_c__SA_amdsmi_retired_page_record_t',
'struct_c__SA_amdsmi_utilization_counter_t',
'struct_c__SA_amdsmi_vbios_info_t',
'struct_c__SA_amdsmi_version_t',
'struct_c__SA_amdsmi_vram_info_t',
'struct_c__SA_amdsmi_xgmi_info_t', 'struct_c__UA_amdsmi_bdf_t_0',
'uint32_t', 'uint64_t', 'union_c__UA_amdsmi_bdf_t',
'union_c__UA_amdsmi_func_id_value_t',
'union_c__UA_amdsmi_func_id_value_t_0']