diff --git a/projects/amdsmi/example/amd_smi_drm_example.cc b/projects/amdsmi/example/amd_smi_drm_example.cc index 3d5e8c15e9..3696c4a1df 100644 --- a/projects/amdsmi/example/amd_smi_drm_example.cc +++ b/projects/amdsmi/example/amd_smi_drm_example.cc @@ -272,8 +272,10 @@ int main() { CHK_AMDSMI_RET(ret) printf(" Output of amdsmi_get_gpu_device_bdf:\n"); printf("\tDevice[%d] BDF %04lx:%02x:%02x.%d\n\n", i, - bdf.domain_number, bdf.bus_number, bdf.device_number, - bdf.function_number); + bdf.fields.domain_number, + bdf.fields.bus_number, + bdf.fields.device_number, + bdf.fields.function_number); // Get handle from BDF amdsmi_processor_handle dev_handle; @@ -507,8 +509,11 @@ int main() { uint64_t mem = 0, gtt_mem = 0, cpu_mem = 0, vram_mem = 0; uint64_t gfx = 0, enc = 0; char bdf_str[20]; - sprintf(bdf_str, "%04lx:%02x:%02x.%d", bdf.domain_number, - bdf.bus_number, bdf.device_number, bdf.function_number); + sprintf(bdf_str, "%04lx:%02x:%02x.%d", + bdf.fields.domain_number, + bdf.fields.bus_number, + bdf.fields.device_number, + bdf.fields.function_number); int num = 0; ret = amdsmi_get_gpu_process_list(processor_handles[j], &num_process, process_list); diff --git a/projects/amdsmi/example/amd_smi_nodrm_example.cc b/projects/amdsmi/example/amd_smi_nodrm_example.cc index f287281c72..0e159f1658 100644 --- a/projects/amdsmi/example/amd_smi_nodrm_example.cc +++ b/projects/amdsmi/example/amd_smi_nodrm_example.cc @@ -123,8 +123,10 @@ int main() { CHK_AMDSMI_RET(ret) printf(" Output of amdsmi_get_gpu_device_bdf:\n"); printf("\tDevice[%d] BDF %04lx:%02x:%02x.%d\n\n", i, - bdf.domain_number, bdf.bus_number, bdf.device_number, - bdf.function_number); + bdf.fields.domain_number, + bdf.fields.bus_number, + bdf.fields.device_number, + bdf.fields.function_number); amdsmi_asic_info_t asic_info = {}; ret = amdsmi_get_gpu_asic_info(processor_handles[j], &asic_info); diff --git a/projects/amdsmi/include/amd_smi/amdsmi.h b/projects/amdsmi/include/amd_smi/amdsmi.h index b92afb14cb..3d45552ed8 100644 --- a/projects/amdsmi/include/amd_smi/amdsmi.h +++ b/projects/amdsmi/include/amd_smi/amdsmi.h @@ -352,12 +352,12 @@ typedef struct { } amdsmi_frequency_range_t; typedef union { - struct { + struct fields_ { uint64_t function_number : 3; uint64_t device_number : 5; uint64_t bus_number : 8; uint64_t domain_number : 48; - }; + } fields; uint64_t as_uint; } amdsmi_bdf_t; @@ -380,7 +380,7 @@ typedef struct { typedef struct { uint8_t num_fw_info; - struct { + struct fw_info_list_ { amdsmi_fw_block_t fw_id; uint64_t fw_version; uint64_t reserved[2]; @@ -439,15 +439,15 @@ typedef struct { typedef uint32_t amdsmi_process_handle_t; typedef struct { - char name[AMDSMI_NORMAL_STRING_LENGTH]; - amdsmi_process_handle_t pid; - uint64_t mem; /** in bytes */ - struct { - uint64_t gfx; - uint64_t enc; + char name[AMDSMI_NORMAL_STRING_LENGTH]; + amdsmi_process_handle_t pid; + uint64_t mem; /** in bytes */ + struct engine_usage_ { + uint64_t gfx; + uint64_t enc; uint32_t reserved[12]; - } engine_usage; /** How much time the process spend using these engines in ns */ - struct { + } engine_usage; /** How much time the process spend using these engines in ns */ + struct memory_usage_ { uint64_t gtt_mem; uint64_t cpu_mem; uint64_t vram_mem; diff --git a/projects/amdsmi/py-interface/CMakeLists.txt b/projects/amdsmi/py-interface/CMakeLists.txt index 2c2ebd5e89..dd0516c908 100644 --- a/projects/amdsmi/py-interface/CMakeLists.txt +++ b/projects/amdsmi/py-interface/CMakeLists.txt @@ -1,7 +1,6 @@ # Generate py-interface and package targets -# match this version to your clang -# too new won't work, too old won't work either +# CLANG installed must be 14.0 or above set(clang_ver 14.0) set(ctypeslib_ver 2.3.2) @@ -12,7 +11,6 @@ set(PY_PACKAGE_DIR "${PY_BUILD_DIR}/amdsmi") set(PY_WRAPPER_INSTALL_DIR "${SHARE_INSTALL_PREFIX}" CACHE STRING "Wrapper installation directory") # TODO: Figure out how python-clang and clang are related -# Currently only a very specific combination works # try to find clang of the right version set(GOOD_CLANG_FOUND FALSE) @@ -22,7 +20,7 @@ if(BUILD_WRAPPER) # extract clang version manually because find_package(clang) doesn't work execute_process(COMMAND ${clang} --version OUTPUT_VARIABLE clang_full_version_string) string (REGEX REPLACE ".*clang version ([0-9]+\\.[0-9]+).*" "\\1" CLANG_VERSION_STRING ${clang_full_version_string}) - if(CLANG_VERSION_STRING VERSION_EQUAL clang_ver) + if((CLANG_VERSION_STRING VERSION_GREATER clang_ver) OR (CLANG_VERSION_STRING VERSION_EQUAL clang_ver)) message("GOOD CLANG VERSION: ${CLANG_VERSION_STRING}") set(GOOD_CLANG_FOUND TRUE) else() @@ -47,9 +45,11 @@ if(NOT GOOD_CLANG_FOUND) COMMAND ln -Pf ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper.py ${PY_PACKAGE_DIR}/) else() find_package(Python3 3.7 COMPONENTS Interpreter Development REQUIRED) + # --break-system-packages is needed for python 3.11 + # see: https://peps.python.org/pep-0668/ add_custom_target( python_pre_reqs - COMMAND ${Python3_EXECUTABLE} -m pip install clang==${clang_ver} ctypeslib2==${ctypeslib_ver}) + COMMAND ${Python3_EXECUTABLE} -m pip install --break-system-packages clang==${clang_ver} ctypeslib2==${ctypeslib_ver}) # generate new wrapper configure_file(${PROJECT_SOURCE_DIR}/tools/generator.py generator.py @ONLY COPYONLY) add_custom_command( diff --git a/projects/amdsmi/py-interface/amdsmi_interface.py b/projects/amdsmi/py-interface/amdsmi_interface.py index d3acead676..bc83181d2a 100644 --- a/projects/amdsmi/py-interface/amdsmi_interface.py +++ b/projects/amdsmi/py-interface/amdsmi_interface.py @@ -445,10 +445,10 @@ def _format_bdf(amdsmi_bdf: amdsmi_wrapper.amdsmi_bdf_t) -> str: Returns: `str`: String containing BDF data in a readable format. """ - domain = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.domain_number)[2:].zfill(4) - bus = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.bus_number)[2:].zfill(2) - device = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.device_number)[2:].zfill(2) - function = hex(amdsmi_bdf.c__UA_amdsmi_bdf_t_0.function_number)[2:] + domain = hex(amdsmi_bdf.fields.domain_number)[2:].zfill(4) + bus = hex(amdsmi_bdf.fields.bus_number)[2:].zfill(2) + device = hex(amdsmi_bdf.fields.device_number)[2:].zfill(2) + function = hex(amdsmi_bdf.fields.function_number)[2:] return domain + ":" + bus + ":" + device + "." + function @@ -495,10 +495,10 @@ def _make_amdsmi_bdf_from_list(bdf): if len(bdf) != 4: return None amdsmi_bdf = amdsmi_wrapper.amdsmi_bdf_t() - amdsmi_bdf.c__UA_amdsmi_bdf_t_0.function_number = bdf[3] - amdsmi_bdf.c__UA_amdsmi_bdf_t_0.device_number = bdf[2] - amdsmi_bdf.c__UA_amdsmi_bdf_t_0.bus_number = bdf[1] - amdsmi_bdf.c__UA_amdsmi_bdf_t_0.domain_number = bdf[0] + amdsmi_bdf.fields.function_number = bdf[3] + amdsmi_bdf.fields.device_number = bdf[2] + amdsmi_bdf.fields.bus_number = bdf[1] + amdsmi_bdf.fields.domain_number = bdf[0] return amdsmi_bdf @@ -1422,32 +1422,6 @@ def amdsmi_set_gpu_perf_level( processor_handle, perf_level)) -def amdsmi_get_gpu_power_profile_presets( - processor_handle: amdsmi_wrapper.amdsmi_processor_handle, sensor_idx: int -) -> Dict[str, Any]: - if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): - raise AmdSmiParameterException( - processor_handle, amdsmi_wrapper.amdsmi_processor_handle - ) - if not isinstance(sensor_idx, int): - raise AmdSmiParameterException(sensor_idx, int) - - sensor_idx = ctypes.c_uint32(sensor_idx) - status = amdsmi_wrapper.amdsmi_power_profile_status_t() - - _check_res( - amdsmi_wrapper.amdsmi_get_gpu_power_profile_presets( - processor_handle, sensor_idx, ctypes.byref(status) - ) - ) - - return { - "available_profiles": status.available_profiles, - "current": status.current, - "num_profiles": status.num_profiles, - } - - def amdsmi_reset_gpu(processor_handle: amdsmi_wrapper.amdsmi_processor_handle): if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): raise AmdSmiParameterException( @@ -1457,23 +1431,6 @@ def amdsmi_reset_gpu(processor_handle: amdsmi_wrapper.amdsmi_processor_handle): _check_res(amdsmi_wrapper.amdsmi_reset_gpu(processor_handle)) -def amdsmi_set_gpu_perf_determinism_mode( - processor_handle: amdsmi_wrapper.amdsmi_processor_handle, clock_value: int -): - if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): - raise AmdSmiParameterException( - processor_handle, amdsmi_wrapper.amdsmi_processor_handle - ) - if not isinstance(clock_value, int): - raise AmdSmiParameterException(clock_value, int) - clock_value = ctypes.c_uint64(clock_value) - - _check_res( - amdsmi_wrapper.amdsmi_set_gpu_perf_determinism_mode( - processor_handle, clock_value) - ) - - def amdsmi_set_gpu_fan_speed( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, sensor_idx: int, fan_speed: int ): @@ -1998,7 +1955,7 @@ def amdsmi_get_utilization_count( result = [{"timestamp": timestamp.value}] for idx in range(count.value): - counter_type = amdsmi_wrapper.c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues[ + counter_type = amdsmi_wrapper.AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues[ util_counter_list[idx].type ] if counter_type == "AMDSMI_UTILIZATION_COUNTER_LAST": @@ -2024,7 +1981,7 @@ def amdsmi_get_gpu_perf_level( processor_handle, ctypes.byref(perf)) ) - result = amdsmi_wrapper.c__EA_amdsmi_dev_perf_level_t__enumvalues[perf.value] + result = amdsmi_wrapper.amdsmi_dev_perf_level_t__enumvalues[perf.value] if result == "AMDSMI_DEV_PERF_LEVEL_FIRST": result = "AMDSMI_DEV_PERF_LEVEL_AUTO" if result == "AMDSMI_DEV_PERF_LEVEL_LAST": diff --git a/projects/amdsmi/py-interface/amdsmi_wrapper.py b/projects/amdsmi/py-interface/amdsmi_wrapper.py index ff38c86e45..47e509909a 100644 --- a/projects/amdsmi/py-interface/amdsmi_wrapper.py +++ b/projects/amdsmi/py-interface/amdsmi_wrapper.py @@ -23,7 +23,7 @@ import os # -*- coding: utf-8 -*- # -# TARGET arch is: ['-I/usr/lib/llvm-14/lib/clang/14.0.0/include'] +# TARGET arch is: ['-I/usr/lib64/clang/16/include'] # WORD_SIZE is: 8 # POINTER_SIZE is: 8 # LONGDOUBLE_SIZE is: 16 @@ -173,23 +173,27 @@ libamd_smi_optrocm = Path("/opt/rocm/lib/libamd_smi.so") libamd_smi_parent_dir = Path(__file__).resolve().parent / "libamd_smi.so" libamd_smi_cwd = Path.cwd() / "libamd_smi.so" -if libamd_smi_cpack.is_file(): - # try to find library in install directory provided by CMake - _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_cpack) -elif libamd_smi_optrocm.is_file(): - # try /opt/rocm/lib as a fallback - _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_optrocm) -elif libamd_smi_parent_dir.is_file(): - # try to fall back to parent directory - _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_parent_dir) -else: - # lastly - search in current working directory - _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_cwd) +try: + if libamd_smi_cpack.is_file(): + # try to find library in install directory provided by CMake + _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_cpack) + elif libamd_smi_optrocm.is_file(): + # try /opt/rocm/lib as a fallback + _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_optrocm) + elif libamd_smi_parent_dir.is_file(): + # try to fall back to parent directory + _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_parent_dir) + else: + # lastly - search in current working directory + _libraries['libamd_smi.so'] = ctypes.CDLL(libamd_smi_cwd) +except OSError as error: + print(error) + print("Unable to find amdsmi library try installing amd-smi-lib from your package manager") -# values for enumeration 'c__EA_amdsmi_init_flags_t' -c__EA_amdsmi_init_flags_t__enumvalues = { +# values for enumeration 'amdsmi_init_flags_t' +amdsmi_init_flags_t__enumvalues = { 0: 'AMDSMI_INIT_ALL_PROCESSORS', 1: 'AMDSMI_INIT_AMD_CPUS', 2: 'AMDSMI_INIT_AMD_GPUS', @@ -201,12 +205,10 @@ 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 +amdsmi_init_flags_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_mm_ip_t' -c__EA_amdsmi_mm_ip_t__enumvalues = { +# values for enumeration 'amdsmi_mm_ip_t' +amdsmi_mm_ip_t__enumvalues = { 0: 'AMDSMI_MM_UVD', 1: 'AMDSMI_MM_VCE', 2: 'AMDSMI_MM_VCN', @@ -216,42 +218,40 @@ 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 +amdsmi_mm_ip_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_container_types_t' -c__EA_amdsmi_container_types_t__enumvalues = { +# values for enumeration 'amdsmi_container_types_t' +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_container_types_t = ctypes.c_uint32 # enum amdsmi_processor_handle = ctypes.POINTER(None) amdsmi_socket_handle = ctypes.POINTER(None) -# values for enumeration 'c__EA_processor_type_t' -c__EA_processor_type_t__enumvalues = { +# values for enumeration 'processor_type_t' +processor_type_t__enumvalues = { 0: 'UNKNOWN', 1: 'AMD_GPU', 2: 'AMD_CPU', 3: 'NON_AMD_GPU', 4: 'NON_AMD_CPU', + 5: 'AMD_CPU_CORE', + 6: 'AMD_APU', } UNKNOWN = 0 AMD_GPU = 1 AMD_CPU = 2 NON_AMD_GPU = 3 NON_AMD_CPU = 4 -c__EA_processor_type_t = ctypes.c_uint32 # enum -processor_type_t = c__EA_processor_type_t -processor_type_t__enumvalues = c__EA_processor_type_t__enumvalues +AMD_CPU_CORE = 5 +AMD_APU = 6 +processor_type_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_status_t' -c__EA_amdsmi_status_t__enumvalues = { +# values for enumeration 'amdsmi_status_t' +amdsmi_status_t__enumvalues = { 0: 'AMDSMI_STATUS_SUCCESS', 1: 'AMDSMI_STATUS_INVAL', 2: 'AMDSMI_STATUS_NOT_SUPPORTED', @@ -280,6 +280,16 @@ c__EA_amdsmi_status_t__enumvalues = { 41: 'AMDSMI_STATUS_INSUFFICIENT_SIZE', 42: 'AMDSMI_STATUS_UNEXPECTED_SIZE', 43: 'AMDSMI_STATUS_UNEXPECTED_DATA', + 44: 'AMDSMI_STATUS_NON_AMD_CPU', + 45: 'AMDSMI_NO_ENERGY_DRV', + 46: 'AMDSMI_NO_MSR_DRV', + 47: 'AMDSMI_NO_HSMP_DRV', + 48: 'AMDSMI_NO_HSMP_SUP', + 49: 'AMDSMI_NO_HSMP_MSG_SUP', + 50: 'AMDSMI_HSMP_TIMEOUT', + 51: 'AMDSMI_NO_DRV', + 52: 'AMDSMI_FILE_NOT_FOUND', + 53: 'AMDSMI_ARG_PTR_NULL', 4294967294: 'AMDSMI_STATUS_MAP_ERROR', 4294967295: 'AMDSMI_STATUS_UNKNOWN_ERROR', } @@ -311,14 +321,22 @@ AMDSMI_STATUS_NO_DATA = 40 AMDSMI_STATUS_INSUFFICIENT_SIZE = 41 AMDSMI_STATUS_UNEXPECTED_SIZE = 42 AMDSMI_STATUS_UNEXPECTED_DATA = 43 +AMDSMI_STATUS_NON_AMD_CPU = 44 +AMDSMI_NO_ENERGY_DRV = 45 +AMDSMI_NO_MSR_DRV = 46 +AMDSMI_NO_HSMP_DRV = 47 +AMDSMI_NO_HSMP_SUP = 48 +AMDSMI_NO_HSMP_MSG_SUP = 49 +AMDSMI_HSMP_TIMEOUT = 50 +AMDSMI_NO_DRV = 51 +AMDSMI_FILE_NOT_FOUND = 52 +AMDSMI_ARG_PTR_NULL = 53 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 +amdsmi_status_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_clk_type_t' -c__EA_amdsmi_clk_type_t__enumvalues = { +# values for enumeration 'amdsmi_clk_type_t' +amdsmi_clk_type_t__enumvalues = { 0: 'CLK_TYPE_SYS', 0: 'CLK_TYPE_FIRST', 0: 'CLK_TYPE_GFX', @@ -346,12 +364,10 @@ 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 +amdsmi_clk_type_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_temperature_type_t' -c__EA_amdsmi_temperature_type_t__enumvalues = { +# values for enumeration 'amdsmi_temperature_type_t' +amdsmi_temperature_type_t__enumvalues = { 0: 'TEMPERATURE_TYPE_EDGE', 0: 'TEMPERATURE_TYPE_FIRST', 1: 'TEMPERATURE_TYPE_JUNCTION', @@ -373,12 +389,10 @@ 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 +amdsmi_temperature_type_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_fw_block_t' -c__EA_amdsmi_fw_block_t__enumvalues = { +# values for enumeration 'amdsmi_fw_block_t' +amdsmi_fw_block_t__enumvalues = { 1: 'FW_ID_SMU', 1: 'FW_ID_FIRST', 2: 'FW_ID_CP_CE', @@ -538,25 +552,23 @@ FW_ID_RLC_SRLS = 75 FW_ID_SMC = 76 FW_ID_DMCU = 77 FW_ID__MAX = 78 -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): +amdsmi_fw_block_t = ctypes.c_uint32 # enum +class struct_amdsmi_range_t(Structure): pass -struct_c__SA_amdsmi_range_t._pack_ = 1 # source:False -struct_c__SA_amdsmi_range_t._fields_ = [ +struct_amdsmi_range_t._pack_ = 1 # source:False +struct_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): +amdsmi_range_t = struct_amdsmi_range_t +class struct_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_ = [ +struct_amdsmi_xgmi_info_t._pack_ = 1 # source:False +struct_amdsmi_xgmi_info_t._fields_ = [ ('xgmi_lanes', ctypes.c_ubyte), ('PADDING_0', ctypes.c_ubyte * 7), ('xgmi_hive_id', ctypes.c_uint64), @@ -565,55 +577,55 @@ struct_c__SA_amdsmi_xgmi_info_t._fields_ = [ ('reserved', ctypes.c_uint32 * 9), ] -amdsmi_xgmi_info_t = struct_c__SA_amdsmi_xgmi_info_t -class struct_c__SA_amdsmi_vram_info_t(Structure): +amdsmi_xgmi_info_t = struct_amdsmi_xgmi_info_t +class struct_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_ = [ +struct_amdsmi_vram_info_t._pack_ = 1 # source:False +struct_amdsmi_vram_info_t._fields_ = [ ('vram_total', ctypes.c_uint32), ('vram_used', ctypes.c_uint32), ('reserved', ctypes.c_uint32 * 2), ] -amdsmi_vram_info_t = struct_c__SA_amdsmi_vram_info_t -class struct_c__SA_amdsmi_frequency_range_t(Structure): +amdsmi_vram_info_t = struct_amdsmi_vram_info_t +class struct_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_ = [ +struct_amdsmi_frequency_range_t._pack_ = 1 # source:False +struct_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): +amdsmi_frequency_range_t = struct_amdsmi_frequency_range_t +class union_amdsmi_bdf_t(Union): pass -class struct_c__UA_amdsmi_bdf_t_0(Structure): +class struct_fields_(Structure): pass -struct_c__UA_amdsmi_bdf_t_0._pack_ = 1 # source:False -struct_c__UA_amdsmi_bdf_t_0._fields_ = [ +struct_fields_._pack_ = 1 # source:False +struct_fields_._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), +union_amdsmi_bdf_t._pack_ = 1 # source:False +union_amdsmi_bdf_t._fields_ = [ + ('fields', struct_fields_), ('as_uint', ctypes.c_uint64), ] -amdsmi_bdf_t = union_c__UA_amdsmi_bdf_t -class struct_c__SA_amdsmi_power_cap_info_t(Structure): +amdsmi_bdf_t = union_amdsmi_bdf_t +class struct_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_ = [ +struct_amdsmi_power_cap_info_t._pack_ = 1 # source:False +struct_amdsmi_power_cap_info_t._fields_ = [ ('power_cap', ctypes.c_uint64), ('default_power_cap', ctypes.c_uint64), ('dpm_cap', ctypes.c_uint64), @@ -622,12 +634,12 @@ struct_c__SA_amdsmi_power_cap_info_t._fields_ = [ ('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): +amdsmi_power_cap_info_t = struct_amdsmi_power_cap_info_t +class struct_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_ = [ +struct_amdsmi_vbios_info_t._pack_ = 1 # source:False +struct_amdsmi_vbios_info_t._fields_ = [ ('name', ctypes.c_char * 64), ('build_date', ctypes.c_char * 32), ('part_number', ctypes.c_char * 64), @@ -635,36 +647,36 @@ struct_c__SA_amdsmi_vbios_info_t._fields_ = [ ('reserved', ctypes.c_uint32 * 16), ] -amdsmi_vbios_info_t = struct_c__SA_amdsmi_vbios_info_t -class struct_c__SA_amdsmi_fw_info_t(Structure): +amdsmi_vbios_info_t = struct_amdsmi_vbios_info_t +class struct_amdsmi_fw_info_t(Structure): pass -class struct_c__SA_amdsmi_fw_info_t_0(Structure): +class struct_fw_info_list_(Structure): pass -struct_c__SA_amdsmi_fw_info_t_0._pack_ = 1 # source:False -struct_c__SA_amdsmi_fw_info_t_0._fields_ = [ +struct_fw_info_list_._pack_ = 1 # source:False +struct_fw_info_list_._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_ = [ +struct_amdsmi_fw_info_t._pack_ = 1 # source:False +struct_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 * 78), + ('fw_info_list', struct_fw_info_list_ * 78), ('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): +amdsmi_fw_info_t = struct_amdsmi_fw_info_t +class struct_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_ = [ +struct_amdsmi_asic_info_t._pack_ = 1 # source:False +struct_amdsmi_asic_info_t._fields_ = [ ('market_name', ctypes.c_char * 64), ('vendor_id', ctypes.c_uint32), ('subvendor_id', ctypes.c_uint32), @@ -674,22 +686,22 @@ struct_c__SA_amdsmi_asic_info_t._fields_ = [ ('reserved', ctypes.c_uint32 * 3), ] -amdsmi_asic_info_t = struct_c__SA_amdsmi_asic_info_t -class struct_c__SA_amdsmi_driver_info_t(Structure): +amdsmi_asic_info_t = struct_amdsmi_asic_info_t +class struct_amdsmi_driver_info_t(Structure): pass -struct_c__SA_amdsmi_driver_info_t._pack_ = 1 # source:False -struct_c__SA_amdsmi_driver_info_t._fields_ = [ +struct_amdsmi_driver_info_t._pack_ = 1 # source:False +struct_amdsmi_driver_info_t._fields_ = [ ('driver_version', ctypes.c_char * 64), ('driver_date', ctypes.c_char * 64), ] -amdsmi_driver_info_t = struct_c__SA_amdsmi_driver_info_t -class struct_c__SA_amdsmi_board_info_t(Structure): +amdsmi_driver_info_t = struct_amdsmi_driver_info_t +class struct_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_ = [ +struct_amdsmi_board_info_t._pack_ = 1 # source:False +struct_amdsmi_board_info_t._fields_ = [ ('serial_number', ctypes.c_uint64), ('is_master', ctypes.c_bool), ('model_number', ctypes.c_char * 32), @@ -700,12 +712,12 @@ struct_c__SA_amdsmi_board_info_t._fields_ = [ ('PADDING_0', ctypes.c_ubyte * 7), ] -amdsmi_board_info_t = struct_c__SA_amdsmi_board_info_t -class struct_c__SA_amdsmi_power_info_t(Structure): +amdsmi_board_info_t = struct_amdsmi_board_info_t +class struct_amdsmi_power_info_t(Structure): pass -struct_c__SA_amdsmi_power_info_t._pack_ = 1 # source:False -struct_c__SA_amdsmi_power_info_t._fields_ = [ +struct_amdsmi_power_info_t._pack_ = 1 # source:False +struct_amdsmi_power_info_t._fields_ = [ ('average_socket_power', ctypes.c_uint32), ('gfx_voltage', ctypes.c_uint32), ('soc_voltage', ctypes.c_uint32), @@ -714,72 +726,72 @@ struct_c__SA_amdsmi_power_info_t._fields_ = [ ('reserved', ctypes.c_uint32 * 11), ] -amdsmi_power_info_t = struct_c__SA_amdsmi_power_info_t -class struct_c__SA_amdsmi_clk_info_t(Structure): +amdsmi_power_info_t = struct_amdsmi_power_info_t +class struct_amdsmi_clk_info_t(Structure): pass -struct_c__SA_amdsmi_clk_info_t._pack_ = 1 # source:False -struct_c__SA_amdsmi_clk_info_t._fields_ = [ +struct_amdsmi_clk_info_t._pack_ = 1 # source:False +struct_amdsmi_clk_info_t._fields_ = [ ('cur_clk', ctypes.c_uint32), ('min_clk', ctypes.c_uint32), ('max_clk', ctypes.c_uint32), ('reserved', ctypes.c_uint32 * 5), ] -amdsmi_clk_info_t = struct_c__SA_amdsmi_clk_info_t -class struct_c__SA_amdsmi_engine_usage_t(Structure): +amdsmi_clk_info_t = struct_amdsmi_clk_info_t +class struct_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_ = [ +struct_amdsmi_engine_usage_t._pack_ = 1 # source:False +struct_amdsmi_engine_usage_t._fields_ = [ ('gfx_activity', ctypes.c_uint32), ('umc_activity', ctypes.c_uint32), ('mm_activity', ctypes.c_uint32), ('reserved', ctypes.c_uint32 * 13), ] -amdsmi_engine_usage_t = struct_c__SA_amdsmi_engine_usage_t +amdsmi_engine_usage_t = struct_amdsmi_engine_usage_t amdsmi_process_handle_t = ctypes.c_uint32 -class struct_c__SA_amdsmi_proc_info_t(Structure): +class struct_amdsmi_proc_info_t(Structure): pass -class struct_c__SA_amdsmi_proc_info_t_0(Structure): +class struct_memory_usage_(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_uint64), - ('enc', ctypes.c_uint64), - ('reserved', ctypes.c_uint32 * 12), -] - -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_ = [ +struct_memory_usage_._pack_ = 1 # source:False +struct_memory_usage_._fields_ = [ ('gtt_mem', ctypes.c_uint64), ('cpu_mem', ctypes.c_uint64), ('vram_mem', ctypes.c_uint64), ('reserved', ctypes.c_uint32 * 10), ] -struct_c__SA_amdsmi_proc_info_t._pack_ = 1 # source:False -struct_c__SA_amdsmi_proc_info_t._fields_ = [ +class struct_engine_usage_(Structure): + pass + +struct_engine_usage_._pack_ = 1 # source:False +struct_engine_usage_._fields_ = [ + ('gfx', ctypes.c_uint64), + ('enc', ctypes.c_uint64), + ('reserved', ctypes.c_uint32 * 12), +] + +struct_amdsmi_proc_info_t._pack_ = 1 # source:False +struct_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), + ('engine_usage', struct_engine_usage_), + ('memory_usage', struct_memory_usage_), ('container_name', ctypes.c_char * 32), ('reserved', ctypes.c_uint32 * 4), ] -amdsmi_proc_info_t = struct_c__SA_amdsmi_proc_info_t +amdsmi_proc_info_t = struct_amdsmi_proc_info_t -# values for enumeration 'c__EA_amdsmi_dev_perf_level_t' -c__EA_amdsmi_dev_perf_level_t__enumvalues = { +# values for enumeration 'amdsmi_dev_perf_level_t' +amdsmi_dev_perf_level_t__enumvalues = { 0: 'AMDSMI_DEV_PERF_LEVEL_AUTO', 0: 'AMDSMI_DEV_PERF_LEVEL_FIRST', 1: 'AMDSMI_DEV_PERF_LEVEL_LOW', @@ -805,13 +817,11 @@ 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_t = ctypes.c_uint32 # enum amdsmi_event_handle_t = ctypes.c_uint64 -# values for enumeration 'c__EA_amdsmi_event_group_t' -c__EA_amdsmi_event_group_t__enumvalues = { +# values for enumeration 'amdsmi_event_group_t' +amdsmi_event_group_t__enumvalues = { 0: 'AMDSMI_EVNT_GRP_XGMI', 10: 'AMDSMI_EVNT_GRP_XGMI_DATA_OUT', 4294967295: 'AMDSMI_EVNT_GRP_INVALID', @@ -819,12 +829,10 @@ c__EA_amdsmi_event_group_t__enumvalues = { 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 +amdsmi_event_group_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_event_type_t' -c__EA_amdsmi_event_type_t__enumvalues = { +# values for enumeration 'amdsmi_event_type_t' +amdsmi_event_type_t__enumvalues = { 0: 'AMDSMI_EVNT_FIRST', 0: 'AMDSMI_EVNT_XGMI_FIRST', 0: 'AMDSMI_EVNT_XGMI_0_NOP_TX', @@ -866,34 +874,30 @@ 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 +amdsmi_event_type_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_counter_command_t' -c__EA_amdsmi_counter_command_t__enumvalues = { +# values for enumeration 'amdsmi_counter_command_t' +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): +amdsmi_counter_command_t = ctypes.c_uint32 # enum +class struct_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_ = [ +struct_amdsmi_counter_value_t._pack_ = 1 # source:False +struct_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 +amdsmi_counter_value_t = struct_amdsmi_counter_value_t -# values for enumeration 'c__EA_amdsmi_evt_notification_type_t' -c__EA_amdsmi_evt_notification_type_t__enumvalues = { +# values for enumeration 'amdsmi_evt_notification_type_t' +amdsmi_evt_notification_type_t__enumvalues = { 1: 'AMDSMI_EVT_NOTIF_VMFAULT', 1: 'AMDSMI_EVT_NOTIF_FIRST', 2: 'AMDSMI_EVT_NOTIF_THERMAL_THROTTLE', @@ -907,24 +911,22 @@ 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): +amdsmi_evt_notification_type_t = ctypes.c_uint32 # enum +class struct_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_ = [ +struct_amdsmi_evt_notification_data_t._pack_ = 1 # source:False +struct_amdsmi_evt_notification_data_t._fields_ = [ ('processor_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 +amdsmi_evt_notification_data_t = struct_amdsmi_evt_notification_data_t -# values for enumeration 'c__EA_amdsmi_temperature_metric_t' -c__EA_amdsmi_temperature_metric_t__enumvalues = { +# values for enumeration 'amdsmi_temperature_metric_t' +amdsmi_temperature_metric_t__enumvalues = { 0: 'AMDSMI_TEMP_CURRENT', 0: 'AMDSMI_TEMP_FIRST', 1: 'AMDSMI_TEMP_MAX', @@ -958,12 +960,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_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_voltage_metric_t' -c__EA_amdsmi_voltage_metric_t__enumvalues = { +# values for enumeration 'amdsmi_voltage_metric_t' +amdsmi_voltage_metric_t__enumvalues = { 0: 'AMDSMI_VOLT_CURRENT', 0: 'AMDSMI_VOLT_FIRST', 1: 'AMDSMI_VOLT_MAX', @@ -985,12 +985,10 @@ 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 +amdsmi_voltage_metric_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_voltage_type_t' -c__EA_amdsmi_voltage_type_t__enumvalues = { +# values for enumeration 'amdsmi_voltage_type_t' +amdsmi_voltage_type_t__enumvalues = { 0: 'AMDSMI_VOLT_TYPE_FIRST', 0: 'AMDSMI_VOLT_TYPE_VDDGFX', 0: 'AMDSMI_VOLT_TYPE_LAST', @@ -1000,12 +998,10 @@ 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 +amdsmi_voltage_type_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_power_profile_preset_masks_t' -c__EA_amdsmi_power_profile_preset_masks_t__enumvalues = { +# values for enumeration 'amdsmi_power_profile_preset_masks_t' +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', @@ -1025,12 +1021,10 @@ 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_t = ctypes.c_uint64 # enum -# values for enumeration 'c__EA_amdsmi_gpu_block_t' -c__EA_amdsmi_gpu_block_t__enumvalues = { +# values for enumeration 'amdsmi_gpu_block_t' +amdsmi_gpu_block_t__enumvalues = { 0: 'AMDSMI_GPU_BLOCK_INVALID', 1: 'AMDSMI_GPU_BLOCK_FIRST', 1: 'AMDSMI_GPU_BLOCK_UMC', @@ -1068,12 +1062,10 @@ 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_t = ctypes.c_uint64 # enum -# values for enumeration 'c__EA_amdsmi_ras_err_state_t' -c__EA_amdsmi_ras_err_state_t__enumvalues = { +# values for enumeration 'amdsmi_ras_err_state_t' +amdsmi_ras_err_state_t__enumvalues = { 0: 'AMDSMI_RAS_ERR_STATE_NONE', 1: 'AMDSMI_RAS_ERR_STATE_DISABLED', 2: 'AMDSMI_RAS_ERR_STATE_PARITY', @@ -1093,12 +1085,10 @@ 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 +amdsmi_ras_err_state_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_memory_type_t' -c__EA_amdsmi_memory_type_t__enumvalues = { +# values for enumeration 'amdsmi_memory_type_t' +amdsmi_memory_type_t__enumvalues = { 0: 'AMDSMI_MEM_TYPE_FIRST', 0: 'AMDSMI_MEM_TYPE_VRAM', 1: 'AMDSMI_MEM_TYPE_VIS_VRAM', @@ -1110,12 +1100,10 @@ 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 +amdsmi_memory_type_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_freq_ind_t' -c__EA_amdsmi_freq_ind_t__enumvalues = { +# values for enumeration 'amdsmi_freq_ind_t' +amdsmi_freq_ind_t__enumvalues = { 0: 'AMDSMI_FREQ_IND_MIN', 1: 'AMDSMI_FREQ_IND_MAX', 4294967295: 'AMDSMI_FREQ_IND_INVALID', @@ -1123,12 +1111,10 @@ c__EA_amdsmi_freq_ind_t__enumvalues = { 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_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_amdsmi_xgmi_status_t' -c__EA_amdsmi_xgmi_status_t__enumvalues = { +# values for enumeration 'amdsmi_xgmi_status_t' +amdsmi_xgmi_status_t__enumvalues = { 0: 'AMDSMI_XGMI_STATUS_NO_ERRORS', 1: 'AMDSMI_XGMI_STATUS_ERROR', 2: 'AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS', @@ -1136,13 +1122,11 @@ c__EA_amdsmi_xgmi_status_t__enumvalues = { 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_xgmi_status_t = ctypes.c_uint32 # enum 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 = { +# values for enumeration 'amdsmi_memory_page_status_t' +amdsmi_memory_page_status_t__enumvalues = { 0: 'AMDSMI_MEM_PAGE_STATUS_RESERVED', 1: 'AMDSMI_MEM_PAGE_STATUS_PENDING', 2: 'AMDSMI_MEM_PAGE_STATUS_UNRESERVABLE', @@ -1150,12 +1134,10 @@ c__EA_amdsmi_memory_page_status_t__enumvalues = { 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 +amdsmi_memory_page_status_t = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_AMDSMI_IO_LINK_TYPE' -c__EA_AMDSMI_IO_LINK_TYPE__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', @@ -1167,12 +1149,10 @@ 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 +AMDSMI_IO_LINK_TYPE = ctypes.c_uint32 # enum -# values for enumeration 'c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE' -c__EA_AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues = { +# values for enumeration 'AMDSMI_UTILIZATION_COUNTER_TYPE' +AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues = { 0: 'AMDSMI_UTILIZATION_COUNTER_FIRST', 0: 'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY', 1: 'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY', @@ -1182,109 +1162,106 @@ 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): +AMDSMI_UTILIZATION_COUNTER_TYPE = ctypes.c_uint32 # enum +class struct_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_ = [ +struct_amdsmi_utilization_counter_t._pack_ = 1 # source:False +struct_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): +amdsmi_utilization_counter_t = struct_amdsmi_utilization_counter_t +class struct_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_ = [ +struct_amdsmi_retired_page_record_t._pack_ = 1 # source:False +struct_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): +amdsmi_retired_page_record_t = struct_amdsmi_retired_page_record_t +class struct_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_ = [ +struct_amdsmi_power_profile_status_t._pack_ = 1 # source:False +struct_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): +amdsmi_power_profile_status_t = struct_amdsmi_power_profile_status_t +class struct_amdsmi_frequencies_t(Structure): pass -struct_c__SA_amdsmi_frequencies_t._pack_ = 1 # source:False -struct_c__SA_amdsmi_frequencies_t._fields_ = [ +struct_amdsmi_frequencies_t._pack_ = 1 # source:False +struct_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): +amdsmi_frequencies_t = struct_amdsmi_frequencies_t +class struct_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_ = [ +struct_amdsmi_pcie_bandwidth_t._pack_ = 1 # source:False +struct_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): +amdsmi_pcie_bandwidth_t = struct_amdsmi_pcie_bandwidth_t +class struct_amdsmi_version_t(Structure): pass -struct_c__SA_amdsmi_version_t._pack_ = 1 # source:False -struct_c__SA_amdsmi_version_t._fields_ = [ +struct_amdsmi_version_t._pack_ = 1 # source:False +struct_amdsmi_version_t._fields_ = [ ('year', ctypes.c_uint32), ('major', ctypes.c_uint32), ('minor', ctypes.c_uint32), ('release', ctypes.c_uint32), ('build', ctypes.POINTER(ctypes.c_char)), - ('reserved', ctypes.c_ubyte * 4), ] -amdsmi_version_t = struct_c__SA_amdsmi_version_t -class struct_c__SA_amdsmi_od_vddc_point_t(Structure): +amdsmi_version_t = struct_amdsmi_version_t +class struct_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_ = [ +struct_amdsmi_od_vddc_point_t._pack_ = 1 # source:False +struct_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): +amdsmi_od_vddc_point_t = struct_amdsmi_od_vddc_point_t +class struct_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): +amdsmi_freq_volt_region_t = struct_amdsmi_freq_volt_region_t +class struct_amdsmi_od_volt_curve_t(Structure): _pack_ = 1 # source:False _fields_ = [ - ('vc_points', struct_c__SA_amdsmi_od_vddc_point_t * 3), + ('vc_points', struct_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): +amdsmi_od_volt_curve_t = struct_amdsmi_od_volt_curve_t +class struct_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_ = [ +struct_amdsmi_od_volt_freq_data_t._pack_ = 1 # source:False +struct_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), @@ -1294,23 +1271,23 @@ struct_c__SA_amdsmi_od_volt_freq_data_t._fields_ = [ ('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): +amdsmi_od_volt_freq_data_t = struct_amdsmi_od_volt_freq_data_t +class struct_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_ = [ +struct_amd_metrics_table_header_t._pack_ = 1 # source:False +struct_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): +amd_metrics_table_header_t = struct_amd_metrics_table_header_t +class struct_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_ = [ +struct_amdsmi_gpu_metrics_t._pack_ = 1 # source:False +struct_amdsmi_gpu_metrics_t._fields_ = [ ('common_header', amd_metrics_table_header_t), ('temperature_edge', ctypes.c_uint16), ('temperature_hotspot', ctypes.c_uint16), @@ -1348,23 +1325,23 @@ struct_c__SA_amdsmi_gpu_metrics_t._fields_ = [ ('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): +amdsmi_gpu_metrics_t = struct_amdsmi_gpu_metrics_t +class struct_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_ = [ +struct_amdsmi_error_count_t._pack_ = 1 # source:False +struct_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): +amdsmi_error_count_t = struct_amdsmi_error_count_t +class struct_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_ = [ +struct_amdsmi_pcie_info_t._pack_ = 1 # source:False +struct_amdsmi_pcie_info_t._fields_ = [ ('pcie_lanes', ctypes.c_uint16), ('PADDING_0', ctypes.c_ubyte * 2), ('pcie_speed', ctypes.c_uint32), @@ -1372,12 +1349,12 @@ struct_c__SA_amdsmi_pcie_info_t._fields_ = [ ('reserved', ctypes.c_uint32 * 5), ] -amdsmi_pcie_info_t = struct_c__SA_amdsmi_pcie_info_t -class struct_c__SA_amdsmi_process_info_t(Structure): +amdsmi_pcie_info_t = struct_amdsmi_pcie_info_t +class struct_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_ = [ +struct_amdsmi_process_info_t._pack_ = 1 # source:False +struct_amdsmi_process_info_t._fields_ = [ ('process_id', ctypes.c_uint32), ('pasid', ctypes.c_uint32), ('vram_usage', ctypes.c_uint64), @@ -1386,7 +1363,7 @@ struct_c__SA_amdsmi_process_info_t._fields_ = [ ('PADDING_0', ctypes.c_ubyte * 4), ] -amdsmi_process_info_t = struct_c__SA_amdsmi_process_info_t +amdsmi_process_info_t = struct_amdsmi_process_info_t uint64_t = ctypes.c_uint64 amdsmi_init = _libraries['libamd_smi.so'].amdsmi_init amdsmi_init.restype = amdsmi_status_t @@ -1406,13 +1383,16 @@ amdsmi_get_processor_handles.restype = amdsmi_status_t amdsmi_get_processor_handles.argtypes = [amdsmi_socket_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))] amdsmi_get_processor_type = _libraries['libamd_smi.so'].amdsmi_get_processor_type amdsmi_get_processor_type.restype = amdsmi_status_t -amdsmi_get_processor_type.argtypes = [amdsmi_processor_handle, ctypes.POINTER(c__EA_processor_type_t)] +amdsmi_get_processor_type.argtypes = [amdsmi_processor_handle, ctypes.POINTER(processor_type_t)] amdsmi_get_processor_handle_from_bdf = _libraries['libamd_smi.so'].amdsmi_get_processor_handle_from_bdf amdsmi_get_processor_handle_from_bdf.restype = amdsmi_status_t amdsmi_get_processor_handle_from_bdf.argtypes = [amdsmi_bdf_t, ctypes.POINTER(ctypes.POINTER(None))] amdsmi_get_gpu_id = _libraries['libamd_smi.so'].amdsmi_get_gpu_id amdsmi_get_gpu_id.restype = amdsmi_status_t amdsmi_get_gpu_id.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)] +amdsmi_get_gpu_revision = _libraries['libamd_smi.so'].amdsmi_get_gpu_revision +amdsmi_get_gpu_revision.restype = amdsmi_status_t +amdsmi_get_gpu_revision.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16)] amdsmi_get_gpu_vendor_name = _libraries['libamd_smi.so'].amdsmi_get_gpu_vendor_name amdsmi_get_gpu_vendor_name.restype = amdsmi_status_t amdsmi_get_gpu_vendor_name.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), size_t] @@ -1428,7 +1408,7 @@ amdsmi_get_gpu_subsystem_name.restype = amdsmi_status_t amdsmi_get_gpu_subsystem_name.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), size_t] amdsmi_get_gpu_pci_bandwidth = _libraries['libamd_smi.so'].amdsmi_get_gpu_pci_bandwidth amdsmi_get_gpu_pci_bandwidth.restype = amdsmi_status_t -amdsmi_get_gpu_pci_bandwidth.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_bandwidth_t)] +amdsmi_get_gpu_pci_bandwidth.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_pcie_bandwidth_t)] amdsmi_get_gpu_bdf_id = _libraries['libamd_smi.so'].amdsmi_get_gpu_bdf_id amdsmi_get_gpu_bdf_id.restype = amdsmi_status_t amdsmi_get_gpu_bdf_id.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)] @@ -1461,13 +1441,13 @@ amdsmi_get_gpu_memory_usage.restype = amdsmi_status_t amdsmi_get_gpu_memory_usage.argtypes = [amdsmi_processor_handle, amdsmi_memory_type_t, ctypes.POINTER(ctypes.c_uint64)] amdsmi_get_gpu_bad_page_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_bad_page_info amdsmi_get_gpu_bad_page_info.restype = amdsmi_status_t -amdsmi_get_gpu_bad_page_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_retired_page_record_t)] +amdsmi_get_gpu_bad_page_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_amdsmi_retired_page_record_t)] amdsmi_get_gpu_ras_block_features_enabled = _libraries['libamd_smi.so'].amdsmi_get_gpu_ras_block_features_enabled amdsmi_get_gpu_ras_block_features_enabled.restype = amdsmi_status_t -amdsmi_get_gpu_ras_block_features_enabled.argtypes = [amdsmi_processor_handle, amdsmi_gpu_block_t, ctypes.POINTER(c__EA_amdsmi_ras_err_state_t)] +amdsmi_get_gpu_ras_block_features_enabled.argtypes = [amdsmi_processor_handle, amdsmi_gpu_block_t, ctypes.POINTER(amdsmi_ras_err_state_t)] amdsmi_get_gpu_memory_reserved_pages = _libraries['libamd_smi.so'].amdsmi_get_gpu_memory_reserved_pages amdsmi_get_gpu_memory_reserved_pages.restype = amdsmi_status_t -amdsmi_get_gpu_memory_reserved_pages.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_retired_page_record_t)] +amdsmi_get_gpu_memory_reserved_pages.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_amdsmi_retired_page_record_t)] amdsmi_get_gpu_fan_rpms = _libraries['libamd_smi.so'].amdsmi_get_gpu_fan_rpms amdsmi_get_gpu_fan_rpms.restype = amdsmi_status_t amdsmi_get_gpu_fan_rpms.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(ctypes.c_int64)] @@ -1491,16 +1471,16 @@ amdsmi_set_gpu_fan_speed.restype = amdsmi_status_t amdsmi_set_gpu_fan_speed.argtypes = [amdsmi_processor_handle, uint32_t, uint64_t] 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_processor_handle, struct_c__SA_amdsmi_utilization_counter_t * 0, uint32_t, ctypes.POINTER(ctypes.c_uint64)] +amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, struct_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_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_info_t)] +amdsmi_get_pcie_link_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_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_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_pcie_info_t)] +amdsmi_get_pcie_link_caps.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_pcie_info_t)] amdsmi_get_gpu_perf_level = _libraries['libamd_smi.so'].amdsmi_get_gpu_perf_level amdsmi_get_gpu_perf_level.restype = amdsmi_status_t -amdsmi_get_gpu_perf_level.argtypes = [amdsmi_processor_handle, ctypes.POINTER(c__EA_amdsmi_dev_perf_level_t)] +amdsmi_get_gpu_perf_level.argtypes = [amdsmi_processor_handle, ctypes.POINTER(amdsmi_dev_perf_level_t)] amdsmi_set_gpu_perf_determinism_mode = _libraries['libamd_smi.so'].amdsmi_set_gpu_perf_determinism_mode amdsmi_set_gpu_perf_determinism_mode.restype = amdsmi_status_t amdsmi_set_gpu_perf_determinism_mode.argtypes = [amdsmi_processor_handle, uint64_t] @@ -1509,16 +1489,16 @@ amdsmi_get_gpu_overdrive_level.restype = amdsmi_status_t amdsmi_get_gpu_overdrive_level.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)] amdsmi_get_clk_freq = _libraries['libamd_smi.so'].amdsmi_get_clk_freq amdsmi_get_clk_freq.restype = amdsmi_status_t -amdsmi_get_clk_freq.argtypes = [amdsmi_processor_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_c__SA_amdsmi_frequencies_t)] +amdsmi_get_clk_freq.argtypes = [amdsmi_processor_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_amdsmi_frequencies_t)] amdsmi_reset_gpu = _libraries['libamd_smi.so'].amdsmi_reset_gpu amdsmi_reset_gpu.restype = amdsmi_status_t amdsmi_reset_gpu.argtypes = [amdsmi_processor_handle] amdsmi_get_gpu_od_volt_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_od_volt_info amdsmi_get_gpu_od_volt_info.restype = amdsmi_status_t -amdsmi_get_gpu_od_volt_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_od_volt_freq_data_t)] +amdsmi_get_gpu_od_volt_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_od_volt_freq_data_t)] amdsmi_get_gpu_metrics_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_metrics_info amdsmi_get_gpu_metrics_info.restype = amdsmi_status_t -amdsmi_get_gpu_metrics_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_gpu_metrics_t)] +amdsmi_get_gpu_metrics_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_gpu_metrics_t)] amdsmi_set_gpu_clk_range = _libraries['libamd_smi.so'].amdsmi_set_gpu_clk_range amdsmi_set_gpu_clk_range.restype = amdsmi_status_t amdsmi_set_gpu_clk_range.argtypes = [amdsmi_processor_handle, uint64_t, uint64_t, amdsmi_clk_type_t] @@ -1530,10 +1510,10 @@ amdsmi_set_gpu_od_volt_info.restype = amdsmi_status_t amdsmi_set_gpu_od_volt_info.argtypes = [amdsmi_processor_handle, uint32_t, uint64_t, uint64_t] amdsmi_get_gpu_od_volt_curve_regions = _libraries['libamd_smi.so'].amdsmi_get_gpu_od_volt_curve_regions amdsmi_get_gpu_od_volt_curve_regions.restype = amdsmi_status_t -amdsmi_get_gpu_od_volt_curve_regions.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_freq_volt_region_t)] +amdsmi_get_gpu_od_volt_curve_regions.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_amdsmi_freq_volt_region_t)] amdsmi_get_gpu_power_profile_presets = _libraries['libamd_smi.so'].amdsmi_get_gpu_power_profile_presets amdsmi_get_gpu_power_profile_presets.restype = amdsmi_status_t -amdsmi_get_gpu_power_profile_presets.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(struct_c__SA_amdsmi_power_profile_status_t)] +amdsmi_get_gpu_power_profile_presets.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(struct_amdsmi_power_profile_status_t)] amdsmi_set_gpu_perf_level = _libraries['libamd_smi.so'].amdsmi_set_gpu_perf_level amdsmi_set_gpu_perf_level.restype = amdsmi_status_t amdsmi_set_gpu_perf_level.argtypes = [amdsmi_processor_handle, amdsmi_dev_perf_level_t] @@ -1545,16 +1525,16 @@ amdsmi_set_clk_freq.restype = amdsmi_status_t amdsmi_set_clk_freq.argtypes = [amdsmi_processor_handle, amdsmi_clk_type_t, uint64_t] amdsmi_get_lib_version = _libraries['libamd_smi.so'].amdsmi_get_lib_version amdsmi_get_lib_version.restype = amdsmi_status_t -amdsmi_get_lib_version.argtypes = [ctypes.POINTER(struct_c__SA_amdsmi_version_t)] +amdsmi_get_lib_version.argtypes = [ctypes.POINTER(struct_amdsmi_version_t)] amdsmi_get_gpu_ecc_count = _libraries['libamd_smi.so'].amdsmi_get_gpu_ecc_count amdsmi_get_gpu_ecc_count.restype = amdsmi_status_t -amdsmi_get_gpu_ecc_count.argtypes = [amdsmi_processor_handle, amdsmi_gpu_block_t, ctypes.POINTER(struct_c__SA_amdsmi_error_count_t)] +amdsmi_get_gpu_ecc_count.argtypes = [amdsmi_processor_handle, amdsmi_gpu_block_t, ctypes.POINTER(struct_amdsmi_error_count_t)] amdsmi_get_gpu_ecc_enabled = _libraries['libamd_smi.so'].amdsmi_get_gpu_ecc_enabled amdsmi_get_gpu_ecc_enabled.restype = amdsmi_status_t amdsmi_get_gpu_ecc_enabled.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)] amdsmi_get_gpu_ecc_status = _libraries['libamd_smi.so'].amdsmi_get_gpu_ecc_status amdsmi_get_gpu_ecc_status.restype = amdsmi_status_t -amdsmi_get_gpu_ecc_status.argtypes = [amdsmi_processor_handle, amdsmi_gpu_block_t, ctypes.POINTER(c__EA_amdsmi_ras_err_state_t)] +amdsmi_get_gpu_ecc_status.argtypes = [amdsmi_processor_handle, amdsmi_gpu_block_t, ctypes.POINTER(amdsmi_ras_err_state_t)] amdsmi_status_code_to_string = _libraries['libamd_smi.so'].amdsmi_status_code_to_string amdsmi_status_code_to_string.restype = amdsmi_status_t amdsmi_status_code_to_string.argtypes = [amdsmi_status_t, ctypes.POINTER(ctypes.POINTER(ctypes.c_char))] @@ -1572,22 +1552,22 @@ amdsmi_gpu_control_counter.restype = amdsmi_status_t amdsmi_gpu_control_counter.argtypes = [amdsmi_event_handle_t, amdsmi_counter_command_t, ctypes.POINTER(None)] amdsmi_gpu_read_counter = _libraries['libamd_smi.so'].amdsmi_gpu_read_counter amdsmi_gpu_read_counter.restype = amdsmi_status_t -amdsmi_gpu_read_counter.argtypes = [amdsmi_event_handle_t, ctypes.POINTER(struct_c__SA_amdsmi_counter_value_t)] +amdsmi_gpu_read_counter.argtypes = [amdsmi_event_handle_t, ctypes.POINTER(struct_amdsmi_counter_value_t)] amdsmi_get_gpu_available_counters = _libraries['libamd_smi.so'].amdsmi_get_gpu_available_counters amdsmi_get_gpu_available_counters.restype = amdsmi_status_t amdsmi_get_gpu_available_counters.argtypes = [amdsmi_processor_handle, amdsmi_event_group_t, ctypes.POINTER(ctypes.c_uint32)] amdsmi_get_gpu_compute_process_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_compute_process_info amdsmi_get_gpu_compute_process_info.restype = amdsmi_status_t -amdsmi_get_gpu_compute_process_info.argtypes = [ctypes.POINTER(struct_c__SA_amdsmi_process_info_t), ctypes.POINTER(ctypes.c_uint32)] +amdsmi_get_gpu_compute_process_info.argtypes = [ctypes.POINTER(struct_amdsmi_process_info_t), ctypes.POINTER(ctypes.c_uint32)] amdsmi_get_gpu_compute_process_info_by_pid = _libraries['libamd_smi.so'].amdsmi_get_gpu_compute_process_info_by_pid amdsmi_get_gpu_compute_process_info_by_pid.restype = amdsmi_status_t -amdsmi_get_gpu_compute_process_info_by_pid.argtypes = [uint32_t, ctypes.POINTER(struct_c__SA_amdsmi_process_info_t)] +amdsmi_get_gpu_compute_process_info_by_pid.argtypes = [uint32_t, ctypes.POINTER(struct_amdsmi_process_info_t)] amdsmi_get_gpu_compute_process_gpus = _libraries['libamd_smi.so'].amdsmi_get_gpu_compute_process_gpus amdsmi_get_gpu_compute_process_gpus.restype = amdsmi_status_t amdsmi_get_gpu_compute_process_gpus.argtypes = [uint32_t, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)] amdsmi_gpu_xgmi_error_status = _libraries['libamd_smi.so'].amdsmi_gpu_xgmi_error_status amdsmi_gpu_xgmi_error_status.restype = amdsmi_status_t -amdsmi_gpu_xgmi_error_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(c__EA_amdsmi_xgmi_status_t)] +amdsmi_gpu_xgmi_error_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(amdsmi_xgmi_status_t)] amdsmi_reset_gpu_xgmi_error = _libraries['libamd_smi.so'].amdsmi_reset_gpu_xgmi_error amdsmi_reset_gpu_xgmi_error.restype = amdsmi_status_t amdsmi_reset_gpu_xgmi_error.argtypes = [amdsmi_processor_handle] @@ -1602,7 +1582,7 @@ amdsmi_get_minmax_bandwith_between_processors.restype = amdsmi_status_t amdsmi_get_minmax_bandwith_between_processors.argtypes = [amdsmi_processor_handle, amdsmi_processor_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_processor_handle, amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(c__EA_AMDSMI_IO_LINK_TYPE)] +amdsmi_topo_get_link_type.argtypes = [amdsmi_processor_handle, amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(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_processor_handle, amdsmi_processor_handle, ctypes.POINTER(ctypes.c_bool)] @@ -1614,61 +1594,61 @@ amdsmi_set_gpu_event_notification_mask.restype = amdsmi_status_t amdsmi_set_gpu_event_notification_mask.argtypes = [amdsmi_processor_handle, uint64_t] amdsmi_get_gpu_event_notification = _libraries['libamd_smi.so'].amdsmi_get_gpu_event_notification amdsmi_get_gpu_event_notification.restype = amdsmi_status_t -amdsmi_get_gpu_event_notification.argtypes = [ctypes.c_int32, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_c__SA_amdsmi_evt_notification_data_t)] +amdsmi_get_gpu_event_notification.argtypes = [ctypes.c_int32, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_amdsmi_evt_notification_data_t)] amdsmi_stop_gpu_event_notification = _libraries['libamd_smi.so'].amdsmi_stop_gpu_event_notification amdsmi_stop_gpu_event_notification.restype = amdsmi_status_t amdsmi_stop_gpu_event_notification.argtypes = [amdsmi_processor_handle] amdsmi_get_gpu_device_bdf = _libraries['libamd_smi.so'].amdsmi_get_gpu_device_bdf amdsmi_get_gpu_device_bdf.restype = amdsmi_status_t -amdsmi_get_gpu_device_bdf.argtypes = [amdsmi_processor_handle, ctypes.POINTER(union_c__UA_amdsmi_bdf_t)] +amdsmi_get_gpu_device_bdf.argtypes = [amdsmi_processor_handle, ctypes.POINTER(union_amdsmi_bdf_t)] amdsmi_get_gpu_device_uuid = _libraries['libamd_smi.so'].amdsmi_get_gpu_device_uuid amdsmi_get_gpu_device_uuid.restype = amdsmi_status_t amdsmi_get_gpu_device_uuid.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_char)] amdsmi_get_gpu_driver_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_driver_info amdsmi_get_gpu_driver_info.restype = amdsmi_status_t -amdsmi_get_gpu_driver_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_driver_info_t)] +amdsmi_get_gpu_driver_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_driver_info_t)] amdsmi_get_gpu_asic_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_asic_info amdsmi_get_gpu_asic_info.restype = amdsmi_status_t -amdsmi_get_gpu_asic_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_asic_info_t)] +amdsmi_get_gpu_asic_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_asic_info_t)] amdsmi_get_gpu_board_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_board_info amdsmi_get_gpu_board_info.restype = amdsmi_status_t -amdsmi_get_gpu_board_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_board_info_t)] +amdsmi_get_gpu_board_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_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_processor_handle, uint32_t, ctypes.POINTER(struct_c__SA_amdsmi_power_cap_info_t)] +amdsmi_get_power_cap_info.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(struct_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_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_xgmi_info_t)] +amdsmi_get_xgmi_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_xgmi_info_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_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_fw_info_t)] +amdsmi_get_fw_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_fw_info_t)] amdsmi_get_gpu_vbios_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_vbios_info amdsmi_get_gpu_vbios_info.restype = amdsmi_status_t -amdsmi_get_gpu_vbios_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_vbios_info_t)] +amdsmi_get_gpu_vbios_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_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_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_engine_usage_t)] +amdsmi_get_gpu_activity.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_engine_usage_t)] amdsmi_get_power_info = _libraries['libamd_smi.so'].amdsmi_get_power_info amdsmi_get_power_info.restype = amdsmi_status_t -amdsmi_get_power_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_power_info_t)] +amdsmi_get_power_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_power_info_t)] amdsmi_get_clock_info = _libraries['libamd_smi.so'].amdsmi_get_clock_info amdsmi_get_clock_info.restype = amdsmi_status_t -amdsmi_get_clock_info.argtypes = [amdsmi_processor_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_c__SA_amdsmi_clk_info_t)] +amdsmi_get_clock_info.argtypes = [amdsmi_processor_handle, amdsmi_clk_type_t, ctypes.POINTER(struct_amdsmi_clk_info_t)] amdsmi_get_gpu_vram_usage = _libraries['libamd_smi.so'].amdsmi_get_gpu_vram_usage amdsmi_get_gpu_vram_usage.restype = amdsmi_status_t -amdsmi_get_gpu_vram_usage.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_vram_info_t)] +amdsmi_get_gpu_vram_usage.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_vram_info_t)] amdsmi_get_gpu_process_list = _libraries['libamd_smi.so'].amdsmi_get_gpu_process_list amdsmi_get_gpu_process_list.restype = amdsmi_status_t amdsmi_get_gpu_process_list.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)] amdsmi_get_gpu_process_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_process_info amdsmi_get_gpu_process_info.restype = amdsmi_status_t -amdsmi_get_gpu_process_info.argtypes = [amdsmi_processor_handle, amdsmi_process_handle_t, ctypes.POINTER(struct_c__SA_amdsmi_proc_info_t)] +amdsmi_get_gpu_process_info.argtypes = [amdsmi_processor_handle, amdsmi_process_handle_t, ctypes.POINTER(struct_amdsmi_proc_info_t)] amdsmi_get_gpu_total_ecc_count = _libraries['libamd_smi.so'].amdsmi_get_gpu_total_ecc_count amdsmi_get_gpu_total_ecc_count.restype = amdsmi_status_t -amdsmi_get_gpu_total_ecc_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_error_count_t)] +amdsmi_get_gpu_total_ecc_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_error_count_t)] __all__ = \ - ['AMDSMI_CNTR_CMD_START', 'AMDSMI_CNTR_CMD_STOP', - 'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY', + ['AMDSMI_ARG_PTR_NULL', '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', @@ -1694,30 +1674,33 @@ __all__ = \ '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_PROCESSORS', + 'AMDSMI_FILE_NOT_FOUND', '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_HSMP_TIMEOUT', 'AMDSMI_INIT_ALL_PROCESSORS', '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_IO_LINK_TYPE', '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_MM__MAX', 'AMDSMI_NO_DRV', 'AMDSMI_NO_ENERGY_DRV', + 'AMDSMI_NO_HSMP_DRV', 'AMDSMI_NO_HSMP_MSG_SUP', + 'AMDSMI_NO_HSMP_SUP', 'AMDSMI_NO_MSR_DRV', + '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', @@ -1736,8 +1719,9 @@ __all__ = \ '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_MAP_ERROR', 'AMDSMI_STATUS_NON_AMD_CPU', + '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', @@ -1753,32 +1737,31 @@ __all__ = \ '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_MES', '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_IMU_DRAM', 'FW_ID_IMU_IRAM', 'FW_ID_ISP', 'FW_ID_MC', - 'FW_ID_MES_STACK', 'FW_ID_MES_THREAD1', 'FW_ID_MES_THREAD1_STACK', - 'FW_ID_MMSCH', 'FW_ID_PPTABLE', 'FW_ID_PSP_BL', 'FW_ID_PSP_DBG', - 'FW_ID_PSP_INTF', 'FW_ID_PSP_KEYDB', 'FW_ID_PSP_SOC', - 'FW_ID_PSP_SOSDRV', 'FW_ID_PSP_SPL', 'FW_ID_PSP_SYSDRV', - 'FW_ID_PSP_TOC', 'FW_ID_REG_ACCESS_WHITELIST', 'FW_ID_RLC', - 'FW_ID_RLCV_LX7', 'FW_ID_RLC_P', 'FW_ID_RLC_RESTORE_LIST_CNTL', + 'AMDSMI_UTILIZATION_COUNTER_TYPE', '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_APU', 'AMD_CPU', + 'AMD_CPU_CORE', '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_MES', + '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_IMU_DRAM', 'FW_ID_IMU_IRAM', 'FW_ID_ISP', + 'FW_ID_MC', 'FW_ID_MES_STACK', 'FW_ID_MES_THREAD1', + 'FW_ID_MES_THREAD1_STACK', 'FW_ID_MMSCH', 'FW_ID_PPTABLE', + 'FW_ID_PSP_BL', 'FW_ID_PSP_DBG', 'FW_ID_PSP_INTF', + 'FW_ID_PSP_KEYDB', 'FW_ID_PSP_SOC', 'FW_ID_PSP_SOSDRV', + 'FW_ID_PSP_SPL', 'FW_ID_PSP_SYSDRV', 'FW_ID_PSP_TOC', + 'FW_ID_REG_ACCESS_WHITELIST', 'FW_ID_RLC', 'FW_ID_RLCV_LX7', + 'FW_ID_RLC_P', 'FW_ID_RLC_RESTORE_LIST_CNTL', 'FW_ID_RLC_RESTORE_LIST_GPM_MEM', 'FW_ID_RLC_RESTORE_LIST_SRM_MEM', 'FW_ID_RLC_SAVE_RESTORE_LIST', 'FW_ID_RLC_SRLG', 'FW_ID_RLC_SRLS', 'FW_ID_RLC_V', 'FW_ID_RLX6', @@ -1802,21 +1785,15 @@ __all__ = \ 'amd_metrics_table_header_t', 'amdsmi_asic_info_t', 'amdsmi_bdf_t', 'amdsmi_bit_field_t', 'amdsmi_board_info_t', 'amdsmi_clk_info_t', 'amdsmi_clk_type_t', - 'amdsmi_clk_type_t__enumvalues', '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_t', 'amdsmi_dev_perf_level_t__enumvalues', + 'amdsmi_container_types_t', 'amdsmi_counter_command_t', + 'amdsmi_counter_value_t', 'amdsmi_dev_perf_level_t', 'amdsmi_driver_info_t', '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_event_handle_t', 'amdsmi_event_type_t', '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_fw_block_t', 'amdsmi_fw_block_t__enumvalues', + 'amdsmi_evt_notification_type_t', 'amdsmi_freq_ind_t', + 'amdsmi_freq_volt_region_t', 'amdsmi_frequencies_t', + 'amdsmi_frequency_range_t', 'amdsmi_fw_block_t', 'amdsmi_fw_info_t', 'amdsmi_get_clk_freq', 'amdsmi_get_clock_info', 'amdsmi_get_energy_count', 'amdsmi_get_fw_info', 'amdsmi_get_gpu_activity', @@ -1842,7 +1819,8 @@ __all__ = \ 'amdsmi_get_gpu_power_profile_presets', 'amdsmi_get_gpu_process_info', 'amdsmi_get_gpu_process_list', 'amdsmi_get_gpu_ras_block_features_enabled', - 'amdsmi_get_gpu_subsystem_id', 'amdsmi_get_gpu_subsystem_name', + 'amdsmi_get_gpu_revision', 'amdsmi_get_gpu_subsystem_id', + 'amdsmi_get_gpu_subsystem_name', 'amdsmi_get_gpu_topo_numa_affinity', 'amdsmi_get_gpu_total_ecc_count', 'amdsmi_get_gpu_vbios_info', 'amdsmi_get_gpu_vendor_name', 'amdsmi_get_gpu_volt_metric', @@ -1856,29 +1834,25 @@ __all__ = \ 'amdsmi_get_socket_handles', 'amdsmi_get_socket_info', 'amdsmi_get_temp_metric', 'amdsmi_get_utilization_count', 'amdsmi_get_xgmi_info', 'amdsmi_gpu_block_t', - 'amdsmi_gpu_block_t__enumvalues', 'amdsmi_gpu_control_counter', + 'amdsmi_gpu_control_counter', 'amdsmi_gpu_counter_group_supported', 'amdsmi_gpu_create_counter', 'amdsmi_gpu_destroy_counter', 'amdsmi_gpu_metrics_t', 'amdsmi_gpu_read_counter', 'amdsmi_gpu_xgmi_error_status', 'amdsmi_init', 'amdsmi_init_flags_t', - 'amdsmi_init_flags_t__enumvalues', 'amdsmi_init_gpu_event_notification', '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_od_vddc_point_t', + 'amdsmi_memory_page_status_t', 'amdsmi_memory_type_t', + 'amdsmi_mm_ip_t', '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_info_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_t', 'amdsmi_process_info_t', 'amdsmi_processor_handle', 'amdsmi_range_t', - 'amdsmi_ras_err_state_t', 'amdsmi_ras_err_state_t__enumvalues', - 'amdsmi_reset_gpu', 'amdsmi_reset_gpu_fan', - 'amdsmi_reset_gpu_xgmi_error', 'amdsmi_retired_page_record_t', - 'amdsmi_set_clk_freq', 'amdsmi_set_gpu_clk_range', + 'amdsmi_ras_err_state_t', 'amdsmi_reset_gpu', + 'amdsmi_reset_gpu_fan', 'amdsmi_reset_gpu_xgmi_error', + 'amdsmi_retired_page_record_t', 'amdsmi_set_clk_freq', + 'amdsmi_set_gpu_clk_range', 'amdsmi_set_gpu_event_notification_mask', 'amdsmi_set_gpu_fan_speed', 'amdsmi_set_gpu_od_clk_info', 'amdsmi_set_gpu_od_volt_info', 'amdsmi_set_gpu_overdrive_level', @@ -1887,67 +1861,33 @@ __all__ = \ 'amdsmi_set_gpu_perf_level', 'amdsmi_set_gpu_power_profile', 'amdsmi_set_power_cap', 'amdsmi_shut_down', 'amdsmi_socket_handle', 'amdsmi_status_code_to_string', - 'amdsmi_status_t', 'amdsmi_status_t__enumvalues', - 'amdsmi_stop_gpu_event_notification', - 'amdsmi_temperature_metric_t', - 'amdsmi_temperature_metric_t__enumvalues', - 'amdsmi_temperature_type_t', - 'amdsmi_temperature_type_t__enumvalues', + 'amdsmi_status_t', 'amdsmi_stop_gpu_event_notification', + 'amdsmi_temperature_metric_t', 'amdsmi_temperature_type_t', 'amdsmi_topo_get_link_type', 'amdsmi_topo_get_link_weight', '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_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_processor_type_t', - 'processor_type_t', 'processor_type_t__enumvalues', 'size_t', - '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_info_t', - 'struct_c__SA_amdsmi_counter_value_t', - 'struct_c__SA_amdsmi_driver_info_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_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_info_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'] + 'amdsmi_voltage_type_t', 'amdsmi_vram_info_t', + 'amdsmi_xgmi_info_t', 'amdsmi_xgmi_status_t', 'processor_type_t', + 'size_t', 'struct_amd_metrics_table_header_t', + 'struct_amdsmi_asic_info_t', 'struct_amdsmi_board_info_t', + 'struct_amdsmi_clk_info_t', 'struct_amdsmi_counter_value_t', + 'struct_amdsmi_driver_info_t', 'struct_amdsmi_engine_usage_t', + 'struct_amdsmi_error_count_t', + 'struct_amdsmi_evt_notification_data_t', + 'struct_amdsmi_freq_volt_region_t', 'struct_amdsmi_frequencies_t', + 'struct_amdsmi_frequency_range_t', 'struct_amdsmi_fw_info_t', + 'struct_amdsmi_gpu_metrics_t', 'struct_amdsmi_od_vddc_point_t', + 'struct_amdsmi_od_volt_curve_t', + 'struct_amdsmi_od_volt_freq_data_t', + 'struct_amdsmi_pcie_bandwidth_t', 'struct_amdsmi_pcie_info_t', + 'struct_amdsmi_power_cap_info_t', 'struct_amdsmi_power_info_t', + 'struct_amdsmi_power_profile_status_t', + 'struct_amdsmi_proc_info_t', 'struct_amdsmi_process_info_t', + 'struct_amdsmi_range_t', 'struct_amdsmi_retired_page_record_t', + 'struct_amdsmi_utilization_counter_t', + 'struct_amdsmi_vbios_info_t', 'struct_amdsmi_version_t', + 'struct_amdsmi_vram_info_t', 'struct_amdsmi_xgmi_info_t', + 'struct_engine_usage_', 'struct_fields_', 'struct_fw_info_list_', + 'struct_memory_usage_', 'uint32_t', 'uint64_t', + 'union_amdsmi_bdf_t'] diff --git a/projects/amdsmi/src/amd_smi/amd_smi.cc b/projects/amdsmi/src/amd_smi/amd_smi.cc index 829301b16e..f2fc15d670 100644 --- a/projects/amdsmi/src/amd_smi/amd_smi.cc +++ b/projects/amdsmi/src/amd_smi/amd_smi.cc @@ -1847,10 +1847,10 @@ amdsmi_status_t amdsmi_get_processor_handle_from_bdf(amdsmi_bdf_t bdf, return status; } amdsmi_bdf_t found_bdf = gpu_device->get_bdf(); - if (bdf.bus_number == found_bdf.bus_number && - bdf.device_number == found_bdf.device_number && - bdf.domain_number == found_bdf.domain_number && - bdf.function_number == found_bdf.function_number) { + if ((bdf.fields.bus_number == found_bdf.fields.bus_number) && + (bdf.fields.device_number == found_bdf.fields.device_number) && + (bdf.fields.domain_number == found_bdf.fields.domain_number) && + (bdf.fields.function_number == found_bdf.fields.function_number)) { *processor_handle = devs[idx]; return AMDSMI_STATUS_SUCCESS; } diff --git a/projects/amdsmi/src/amd_smi/amd_smi_drm.cc b/projects/amdsmi/src/amd_smi/amd_smi_drm.cc index 9f24920377..49677e77e8 100644 --- a/projects/amdsmi/src/amd_smi/amd_smi_drm.cc +++ b/projects/amdsmi/src/amd_smi/amd_smi_drm.cc @@ -171,10 +171,10 @@ amdsmi_status_t AMDSmiDrm::init() { continue; } - bdf.function_number = device->businfo.pci->func; - bdf.device_number = device->businfo.pci->dev; - bdf.bus_number = device->businfo.pci->bus; - bdf.domain_number = device->businfo.pci->domain; + bdf.fields.function_number = device->businfo.pci->func; + bdf.fields.device_number = device->businfo.pci->dev; + bdf.fields.bus_number = device->businfo.pci->bus; + bdf.fields.domain_number = device->businfo.pci->domain; vendor_id = device->deviceinfo.pci->vendor_id; diff --git a/projects/amdsmi/src/amd_smi/fdinfo.cc b/projects/amdsmi/src/amd_smi/fdinfo.cc index 7bb794e00a..857b09c71f 100644 --- a/projects/amdsmi/src/amd_smi/fdinfo.cc +++ b/projects/amdsmi/src/amd_smi/fdinfo.cc @@ -73,10 +73,11 @@ amdsmi_status_t gpuvsmi_get_pids(const amdsmi_bdf_t &bdf, std::vector struct dirent *dir; /* 0000:00:00.0 */ - snprintf(bdf_str, 13, "%04x:%02x:%02x.%d", bdf.domain_number & 0xffff, - bdf.bus_number & 0xff, - bdf.device_number & 0x1f, - bdf.function_number & 0x7); + snprintf(bdf_str, 13, "%04x:%02x:%02x.%d", + bdf.fields.domain_number & 0xffff, + bdf.fields.bus_number & 0xff, + bdf.fields.device_number & 0x1f, + bdf.fields.function_number & 0x7); d = opendir("/proc"); if (!d) @@ -121,10 +122,11 @@ amdsmi_status_t gpuvsmi_get_pid_info(const amdsmi_bdf_t &bdf, long int pid, struct dirent *dir; /* 0000:00:00.0 */ - snprintf(bdf_str, 13, "%04x:%02x:%02x.%d", bdf.domain_number & 0xffff, - bdf.bus_number & 0xff, - bdf.device_number & 0x1f, - bdf.function_number & 0x7); + snprintf(bdf_str, 13, "%04x:%02x:%02x.%d", + bdf.fields.domain_number & 0xffff, + bdf.fields.bus_number & 0xff, + bdf.fields.device_number & 0x1f, + bdf.fields.function_number & 0x7); std::string path = "/proc/" + std::to_string(pid) + "/fdinfo/";