# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
@c.record
class struct_v11_gfx_mqd(c.Struct):
  SIZE = 2048
  shadow_base_lo: int
  shadow_base_hi: int
  gds_bkup_base_lo: int
  gds_bkup_base_hi: int
  fw_work_area_base_lo: int
  fw_work_area_base_hi: int
  shadow_initialized: int
  ib_vmid: int
  reserved_8: int
  reserved_9: int
  reserved_10: int
  reserved_11: int
  reserved_12: int
  reserved_13: int
  reserved_14: int
  reserved_15: int
  reserved_16: int
  reserved_17: int
  reserved_18: int
  reserved_19: int
  reserved_20: int
  reserved_21: int
  reserved_22: int
  reserved_23: int
  reserved_24: int
  reserved_25: int
  reserved_26: int
  reserved_27: int
  reserved_28: int
  reserved_29: int
  reserved_30: int
  reserved_31: int
  reserved_32: int
  reserved_33: int
  reserved_34: int
  reserved_35: int
  reserved_36: int
  reserved_37: int
  reserved_38: int
  reserved_39: int
  reserved_40: int
  reserved_41: int
  reserved_42: int
  reserved_43: int
  reserved_44: int
  reserved_45: int
  reserved_46: int
  reserved_47: int
  reserved_48: int
  reserved_49: int
  reserved_50: int
  reserved_51: int
  reserved_52: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  reserved_59: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  reserved_65: int
  reserved_66: int
  reserved_67: int
  reserved_68: int
  reserved_69: int
  reserved_70: int
  reserved_71: int
  reserved_72: int
  reserved_73: int
  reserved_74: int
  reserved_75: int
  reserved_76: int
  reserved_77: int
  reserved_78: int
  reserved_79: int
  reserved_80: int
  reserved_81: int
  reserved_82: int
  reserved_83: int
  checksum_lo: int
  checksum_hi: int
  cp_mqd_query_time_lo: int
  cp_mqd_query_time_hi: int
  reserved_88: int
  reserved_89: int
  reserved_90: int
  reserved_91: int
  cp_mqd_query_wave_count: int
  cp_mqd_query_gfx_hqd_rptr: int
  cp_mqd_query_gfx_hqd_wptr: int
  cp_mqd_query_gfx_hqd_offset: int
  reserved_96: int
  reserved_97: int
  reserved_98: int
  reserved_99: int
  reserved_100: int
  reserved_101: int
  reserved_102: int
  reserved_103: int
  control_buf_addr_lo: int
  control_buf_addr_hi: int
  disable_queue: int
  reserved_107: int
  reserved_108: int
  reserved_109: int
  reserved_110: int
  reserved_111: int
  reserved_112: int
  reserved_113: int
  reserved_114: int
  reserved_115: int
  reserved_116: int
  reserved_117: int
  reserved_118: int
  reserved_119: int
  reserved_120: int
  reserved_121: int
  reserved_122: int
  reserved_123: int
  reserved_124: int
  reserved_125: int
  reserved_126: int
  reserved_127: int
  cp_mqd_base_addr: int
  cp_mqd_base_addr_hi: int
  cp_gfx_hqd_active: int
  cp_gfx_hqd_vmid: int
  reserved_131: int
  reserved_132: int
  cp_gfx_hqd_queue_priority: int
  cp_gfx_hqd_quantum: int
  cp_gfx_hqd_base: int
  cp_gfx_hqd_base_hi: int
  cp_gfx_hqd_rptr: int
  cp_gfx_hqd_rptr_addr: int
  cp_gfx_hqd_rptr_addr_hi: int
  cp_rb_wptr_poll_addr_lo: int
  cp_rb_wptr_poll_addr_hi: int
  cp_rb_doorbell_control: int
  cp_gfx_hqd_offset: int
  cp_gfx_hqd_cntl: int
  reserved_146: int
  reserved_147: int
  cp_gfx_hqd_csmd_rptr: int
  cp_gfx_hqd_wptr: int
  cp_gfx_hqd_wptr_hi: int
  reserved_151: int
  reserved_152: int
  reserved_153: int
  reserved_154: int
  reserved_155: int
  cp_gfx_hqd_mapped: int
  cp_gfx_hqd_que_mgr_control: int
  reserved_158: int
  reserved_159: int
  cp_gfx_hqd_hq_status0: int
  cp_gfx_hqd_hq_control0: int
  cp_gfx_mqd_control: int
  reserved_163: int
  reserved_164: int
  reserved_165: int
  reserved_166: int
  reserved_167: int
  reserved_168: int
  reserved_169: int
  cp_num_prim_needed_count0_lo: int
  cp_num_prim_needed_count0_hi: int
  cp_num_prim_needed_count1_lo: int
  cp_num_prim_needed_count1_hi: int
  cp_num_prim_needed_count2_lo: int
  cp_num_prim_needed_count2_hi: int
  cp_num_prim_needed_count3_lo: int
  cp_num_prim_needed_count3_hi: int
  cp_num_prim_written_count0_lo: int
  cp_num_prim_written_count0_hi: int
  cp_num_prim_written_count1_lo: int
  cp_num_prim_written_count1_hi: int
  cp_num_prim_written_count2_lo: int
  cp_num_prim_written_count2_hi: int
  cp_num_prim_written_count3_lo: int
  cp_num_prim_written_count3_hi: int
  reserved_186: int
  reserved_187: int
  reserved_188: int
  reserved_189: int
  mp1_smn_fps_cnt: int
  sq_thread_trace_buf0_base: int
  sq_thread_trace_buf0_size: int
  sq_thread_trace_buf1_base: int
  sq_thread_trace_buf1_size: int
  sq_thread_trace_wptr: int
  sq_thread_trace_mask: int
  sq_thread_trace_token_mask: int
  sq_thread_trace_ctrl: int
  sq_thread_trace_status: int
  sq_thread_trace_dropped_cntr: int
  sq_thread_trace_finish_done_debug: int
  sq_thread_trace_gfx_draw_cntr: int
  sq_thread_trace_gfx_marker_cntr: int
  sq_thread_trace_hp3d_draw_cntr: int
  sq_thread_trace_hp3d_marker_cntr: int
  reserved_206: int
  reserved_207: int
  cp_sc_psinvoc_count0_lo: int
  cp_sc_psinvoc_count0_hi: int
  cp_pa_cprim_count_lo: int
  cp_pa_cprim_count_hi: int
  cp_pa_cinvoc_count_lo: int
  cp_pa_cinvoc_count_hi: int
  cp_vgt_vsinvoc_count_lo: int
  cp_vgt_vsinvoc_count_hi: int
  cp_vgt_gsinvoc_count_lo: int
  cp_vgt_gsinvoc_count_hi: int
  cp_vgt_gsprim_count_lo: int
  cp_vgt_gsprim_count_hi: int
  cp_vgt_iaprim_count_lo: int
  cp_vgt_iaprim_count_hi: int
  cp_vgt_iavert_count_lo: int
  cp_vgt_iavert_count_hi: int
  cp_vgt_hsinvoc_count_lo: int
  cp_vgt_hsinvoc_count_hi: int
  cp_vgt_dsinvoc_count_lo: int
  cp_vgt_dsinvoc_count_hi: int
  cp_vgt_csinvoc_count_lo: int
  cp_vgt_csinvoc_count_hi: int
  reserved_230: int
  reserved_231: int
  reserved_232: int
  reserved_233: int
  reserved_234: int
  reserved_235: int
  reserved_236: int
  reserved_237: int
  reserved_238: int
  reserved_239: int
  reserved_240: int
  reserved_241: int
  reserved_242: int
  reserved_243: int
  reserved_244: int
  reserved_245: int
  reserved_246: int
  reserved_247: int
  reserved_248: int
  reserved_249: int
  reserved_250: int
  reserved_251: int
  reserved_252: int
  reserved_253: int
  reserved_254: int
  reserved_255: int
  reserved_256: int
  reserved_257: int
  reserved_258: int
  reserved_259: int
  reserved_260: int
  reserved_261: int
  reserved_262: int
  reserved_263: int
  reserved_264: int
  reserved_265: int
  reserved_266: int
  reserved_267: int
  vgt_strmout_buffer_filled_size_0: int
  vgt_strmout_buffer_filled_size_1: int
  vgt_strmout_buffer_filled_size_2: int
  vgt_strmout_buffer_filled_size_3: int
  reserved_272: int
  reserved_273: int
  reserved_274: int
  reserved_275: int
  vgt_dma_max_size: int
  vgt_dma_num_instances: int
  reserved_278: int
  reserved_279: int
  reserved_280: int
  reserved_281: int
  reserved_282: int
  reserved_283: int
  reserved_284: int
  reserved_285: int
  reserved_286: int
  reserved_287: int
  it_set_base_ib_addr_lo: int
  it_set_base_ib_addr_hi: int
  reserved_290: int
  reserved_291: int
  reserved_292: int
  reserved_293: int
  reserved_294: int
  reserved_295: int
  reserved_296: int
  reserved_297: int
  reserved_298: int
  reserved_299: int
  reserved_300: int
  reserved_301: int
  reserved_302: int
  reserved_303: int
  reserved_304: int
  reserved_305: int
  reserved_306: int
  reserved_307: int
  reserved_308: int
  reserved_309: int
  reserved_310: int
  reserved_311: int
  reserved_312: int
  reserved_313: int
  reserved_314: int
  reserved_315: int
  reserved_316: int
  reserved_317: int
  reserved_318: int
  reserved_319: int
  reserved_320: int
  reserved_321: int
  reserved_322: int
  reserved_323: int
  reserved_324: int
  reserved_325: int
  reserved_326: int
  reserved_327: int
  reserved_328: int
  reserved_329: int
  reserved_330: int
  reserved_331: int
  reserved_332: int
  reserved_333: int
  reserved_334: int
  reserved_335: int
  reserved_336: int
  reserved_337: int
  reserved_338: int
  reserved_339: int
  reserved_340: int
  reserved_341: int
  reserved_342: int
  reserved_343: int
  reserved_344: int
  reserved_345: int
  reserved_346: int
  reserved_347: int
  reserved_348: int
  reserved_349: int
  reserved_350: int
  reserved_351: int
  reserved_352: int
  reserved_353: int
  reserved_354: int
  reserved_355: int
  spi_shader_pgm_rsrc3_ps: int
  spi_shader_pgm_rsrc3_vs: int
  spi_shader_pgm_rsrc3_gs: int
  spi_shader_pgm_rsrc3_hs: int
  spi_shader_pgm_rsrc4_ps: int
  spi_shader_pgm_rsrc4_vs: int
  spi_shader_pgm_rsrc4_gs: int
  spi_shader_pgm_rsrc4_hs: int
  db_occlusion_count0_low_00: int
  db_occlusion_count0_hi_00: int
  db_occlusion_count1_low_00: int
  db_occlusion_count1_hi_00: int
  db_occlusion_count2_low_00: int
  db_occlusion_count2_hi_00: int
  db_occlusion_count3_low_00: int
  db_occlusion_count3_hi_00: int
  db_occlusion_count0_low_01: int
  db_occlusion_count0_hi_01: int
  db_occlusion_count1_low_01: int
  db_occlusion_count1_hi_01: int
  db_occlusion_count2_low_01: int
  db_occlusion_count2_hi_01: int
  db_occlusion_count3_low_01: int
  db_occlusion_count3_hi_01: int
  db_occlusion_count0_low_02: int
  db_occlusion_count0_hi_02: int
  db_occlusion_count1_low_02: int
  db_occlusion_count1_hi_02: int
  db_occlusion_count2_low_02: int
  db_occlusion_count2_hi_02: int
  db_occlusion_count3_low_02: int
  db_occlusion_count3_hi_02: int
  db_occlusion_count0_low_03: int
  db_occlusion_count0_hi_03: int
  db_occlusion_count1_low_03: int
  db_occlusion_count1_hi_03: int
  db_occlusion_count2_low_03: int
  db_occlusion_count2_hi_03: int
  db_occlusion_count3_low_03: int
  db_occlusion_count3_hi_03: int
  db_occlusion_count0_low_04: int
  db_occlusion_count0_hi_04: int
  db_occlusion_count1_low_04: int
  db_occlusion_count1_hi_04: int
  db_occlusion_count2_low_04: int
  db_occlusion_count2_hi_04: int
  db_occlusion_count3_low_04: int
  db_occlusion_count3_hi_04: int
  db_occlusion_count0_low_05: int
  db_occlusion_count0_hi_05: int
  db_occlusion_count1_low_05: int
  db_occlusion_count1_hi_05: int
  db_occlusion_count2_low_05: int
  db_occlusion_count2_hi_05: int
  db_occlusion_count3_low_05: int
  db_occlusion_count3_hi_05: int
  db_occlusion_count0_low_06: int
  db_occlusion_count0_hi_06: int
  db_occlusion_count1_low_06: int
  db_occlusion_count1_hi_06: int
  db_occlusion_count2_low_06: int
  db_occlusion_count2_hi_06: int
  db_occlusion_count3_low_06: int
  db_occlusion_count3_hi_06: int
  db_occlusion_count0_low_07: int
  db_occlusion_count0_hi_07: int
  db_occlusion_count1_low_07: int
  db_occlusion_count1_hi_07: int
  db_occlusion_count2_low_07: int
  db_occlusion_count2_hi_07: int
  db_occlusion_count3_low_07: int
  db_occlusion_count3_hi_07: int
  db_occlusion_count0_low_10: int
  db_occlusion_count0_hi_10: int
  db_occlusion_count1_low_10: int
  db_occlusion_count1_hi_10: int
  db_occlusion_count2_low_10: int
  db_occlusion_count2_hi_10: int
  db_occlusion_count3_low_10: int
  db_occlusion_count3_hi_10: int
  db_occlusion_count0_low_11: int
  db_occlusion_count0_hi_11: int
  db_occlusion_count1_low_11: int
  db_occlusion_count1_hi_11: int
  db_occlusion_count2_low_11: int
  db_occlusion_count2_hi_11: int
  db_occlusion_count3_low_11: int
  db_occlusion_count3_hi_11: int
  db_occlusion_count0_low_12: int
  db_occlusion_count0_hi_12: int
  db_occlusion_count1_low_12: int
  db_occlusion_count1_hi_12: int
  db_occlusion_count2_low_12: int
  db_occlusion_count2_hi_12: int
  db_occlusion_count3_low_12: int
  db_occlusion_count3_hi_12: int
  db_occlusion_count0_low_13: int
  db_occlusion_count0_hi_13: int
  db_occlusion_count1_low_13: int
  db_occlusion_count1_hi_13: int
  db_occlusion_count2_low_13: int
  db_occlusion_count2_hi_13: int
  db_occlusion_count3_low_13: int
  db_occlusion_count3_hi_13: int
  db_occlusion_count0_low_14: int
  db_occlusion_count0_hi_14: int
  db_occlusion_count1_low_14: int
  db_occlusion_count1_hi_14: int
  db_occlusion_count2_low_14: int
  db_occlusion_count2_hi_14: int
  db_occlusion_count3_low_14: int
  db_occlusion_count3_hi_14: int
  db_occlusion_count0_low_15: int
  db_occlusion_count0_hi_15: int
  db_occlusion_count1_low_15: int
  db_occlusion_count1_hi_15: int
  db_occlusion_count2_low_15: int
  db_occlusion_count2_hi_15: int
  db_occlusion_count3_low_15: int
  db_occlusion_count3_hi_15: int
  db_occlusion_count0_low_16: int
  db_occlusion_count0_hi_16: int
  db_occlusion_count1_low_16: int
  db_occlusion_count1_hi_16: int
  db_occlusion_count2_low_16: int
  db_occlusion_count2_hi_16: int
  db_occlusion_count3_low_16: int
  db_occlusion_count3_hi_16: int
  db_occlusion_count0_low_17: int
  db_occlusion_count0_hi_17: int
  db_occlusion_count1_low_17: int
  db_occlusion_count1_hi_17: int
  db_occlusion_count2_low_17: int
  db_occlusion_count2_hi_17: int
  db_occlusion_count3_low_17: int
  db_occlusion_count3_hi_17: int
  reserved_492: int
  reserved_493: int
  reserved_494: int
  reserved_495: int
  reserved_496: int
  reserved_497: int
  reserved_498: int
  reserved_499: int
  reserved_500: int
  reserved_501: int
  reserved_502: int
  reserved_503: int
  reserved_504: int
  reserved_505: int
  reserved_506: int
  reserved_507: int
  reserved_508: int
  reserved_509: int
  reserved_510: int
  reserved_511: int
struct_v11_gfx_mqd.register_fields([('shadow_base_lo', ctypes.c_uint32, 0), ('shadow_base_hi', ctypes.c_uint32, 4), ('gds_bkup_base_lo', ctypes.c_uint32, 8), ('gds_bkup_base_hi', ctypes.c_uint32, 12), ('fw_work_area_base_lo', ctypes.c_uint32, 16), ('fw_work_area_base_hi', ctypes.c_uint32, 20), ('shadow_initialized', ctypes.c_uint32, 24), ('ib_vmid', ctypes.c_uint32, 28), ('reserved_8', ctypes.c_uint32, 32), ('reserved_9', ctypes.c_uint32, 36), ('reserved_10', ctypes.c_uint32, 40), ('reserved_11', ctypes.c_uint32, 44), ('reserved_12', ctypes.c_uint32, 48), ('reserved_13', ctypes.c_uint32, 52), ('reserved_14', ctypes.c_uint32, 56), ('reserved_15', ctypes.c_uint32, 60), ('reserved_16', ctypes.c_uint32, 64), ('reserved_17', ctypes.c_uint32, 68), ('reserved_18', ctypes.c_uint32, 72), ('reserved_19', ctypes.c_uint32, 76), ('reserved_20', ctypes.c_uint32, 80), ('reserved_21', ctypes.c_uint32, 84), ('reserved_22', ctypes.c_uint32, 88), ('reserved_23', ctypes.c_uint32, 92), ('reserved_24', ctypes.c_uint32, 96), ('reserved_25', ctypes.c_uint32, 100), ('reserved_26', ctypes.c_uint32, 104), ('reserved_27', ctypes.c_uint32, 108), ('reserved_28', ctypes.c_uint32, 112), ('reserved_29', ctypes.c_uint32, 116), ('reserved_30', ctypes.c_uint32, 120), ('reserved_31', ctypes.c_uint32, 124), ('reserved_32', ctypes.c_uint32, 128), ('reserved_33', ctypes.c_uint32, 132), ('reserved_34', ctypes.c_uint32, 136), ('reserved_35', ctypes.c_uint32, 140), ('reserved_36', ctypes.c_uint32, 144), ('reserved_37', ctypes.c_uint32, 148), ('reserved_38', ctypes.c_uint32, 152), ('reserved_39', ctypes.c_uint32, 156), ('reserved_40', ctypes.c_uint32, 160), ('reserved_41', ctypes.c_uint32, 164), ('reserved_42', ctypes.c_uint32, 168), ('reserved_43', ctypes.c_uint32, 172), ('reserved_44', ctypes.c_uint32, 176), ('reserved_45', ctypes.c_uint32, 180), ('reserved_46', ctypes.c_uint32, 184), ('reserved_47', ctypes.c_uint32, 188), ('reserved_48', ctypes.c_uint32, 192), ('reserved_49', ctypes.c_uint32, 196), ('reserved_50', ctypes.c_uint32, 200), ('reserved_51', ctypes.c_uint32, 204), ('reserved_52', ctypes.c_uint32, 208), ('reserved_53', ctypes.c_uint32, 212), ('reserved_54', ctypes.c_uint32, 216), ('reserved_55', ctypes.c_uint32, 220), ('reserved_56', ctypes.c_uint32, 224), ('reserved_57', ctypes.c_uint32, 228), ('reserved_58', ctypes.c_uint32, 232), ('reserved_59', ctypes.c_uint32, 236), ('reserved_60', ctypes.c_uint32, 240), ('reserved_61', ctypes.c_uint32, 244), ('reserved_62', ctypes.c_uint32, 248), ('reserved_63', ctypes.c_uint32, 252), ('reserved_64', ctypes.c_uint32, 256), ('reserved_65', ctypes.c_uint32, 260), ('reserved_66', ctypes.c_uint32, 264), ('reserved_67', ctypes.c_uint32, 268), ('reserved_68', ctypes.c_uint32, 272), ('reserved_69', ctypes.c_uint32, 276), ('reserved_70', ctypes.c_uint32, 280), ('reserved_71', ctypes.c_uint32, 284), ('reserved_72', ctypes.c_uint32, 288), ('reserved_73', ctypes.c_uint32, 292), ('reserved_74', ctypes.c_uint32, 296), ('reserved_75', ctypes.c_uint32, 300), ('reserved_76', ctypes.c_uint32, 304), ('reserved_77', ctypes.c_uint32, 308), ('reserved_78', ctypes.c_uint32, 312), ('reserved_79', ctypes.c_uint32, 316), ('reserved_80', ctypes.c_uint32, 320), ('reserved_81', ctypes.c_uint32, 324), ('reserved_82', ctypes.c_uint32, 328), ('reserved_83', ctypes.c_uint32, 332), ('checksum_lo', ctypes.c_uint32, 336), ('checksum_hi', ctypes.c_uint32, 340), ('cp_mqd_query_time_lo', ctypes.c_uint32, 344), ('cp_mqd_query_time_hi', ctypes.c_uint32, 348), ('reserved_88', ctypes.c_uint32, 352), ('reserved_89', ctypes.c_uint32, 356), ('reserved_90', ctypes.c_uint32, 360), ('reserved_91', ctypes.c_uint32, 364), ('cp_mqd_query_wave_count', ctypes.c_uint32, 368), ('cp_mqd_query_gfx_hqd_rptr', ctypes.c_uint32, 372), ('cp_mqd_query_gfx_hqd_wptr', ctypes.c_uint32, 376), ('cp_mqd_query_gfx_hqd_offset', ctypes.c_uint32, 380), ('reserved_96', ctypes.c_uint32, 384), ('reserved_97', ctypes.c_uint32, 388), ('reserved_98', ctypes.c_uint32, 392), ('reserved_99', ctypes.c_uint32, 396), ('reserved_100', ctypes.c_uint32, 400), ('reserved_101', ctypes.c_uint32, 404), ('reserved_102', ctypes.c_uint32, 408), ('reserved_103', ctypes.c_uint32, 412), ('control_buf_addr_lo', ctypes.c_uint32, 416), ('control_buf_addr_hi', ctypes.c_uint32, 420), ('disable_queue', ctypes.c_uint32, 424), ('reserved_107', ctypes.c_uint32, 428), ('reserved_108', ctypes.c_uint32, 432), ('reserved_109', ctypes.c_uint32, 436), ('reserved_110', ctypes.c_uint32, 440), ('reserved_111', ctypes.c_uint32, 444), ('reserved_112', ctypes.c_uint32, 448), ('reserved_113', ctypes.c_uint32, 452), ('reserved_114', ctypes.c_uint32, 456), ('reserved_115', ctypes.c_uint32, 460), ('reserved_116', ctypes.c_uint32, 464), ('reserved_117', ctypes.c_uint32, 468), ('reserved_118', ctypes.c_uint32, 472), ('reserved_119', ctypes.c_uint32, 476), ('reserved_120', ctypes.c_uint32, 480), ('reserved_121', ctypes.c_uint32, 484), ('reserved_122', ctypes.c_uint32, 488), ('reserved_123', ctypes.c_uint32, 492), ('reserved_124', ctypes.c_uint32, 496), ('reserved_125', ctypes.c_uint32, 500), ('reserved_126', ctypes.c_uint32, 504), ('reserved_127', ctypes.c_uint32, 508), ('cp_mqd_base_addr', ctypes.c_uint32, 512), ('cp_mqd_base_addr_hi', ctypes.c_uint32, 516), ('cp_gfx_hqd_active', ctypes.c_uint32, 520), ('cp_gfx_hqd_vmid', ctypes.c_uint32, 524), ('reserved_131', ctypes.c_uint32, 528), ('reserved_132', ctypes.c_uint32, 532), ('cp_gfx_hqd_queue_priority', ctypes.c_uint32, 536), ('cp_gfx_hqd_quantum', ctypes.c_uint32, 540), ('cp_gfx_hqd_base', ctypes.c_uint32, 544), ('cp_gfx_hqd_base_hi', ctypes.c_uint32, 548), ('cp_gfx_hqd_rptr', ctypes.c_uint32, 552), ('cp_gfx_hqd_rptr_addr', ctypes.c_uint32, 556), ('cp_gfx_hqd_rptr_addr_hi', ctypes.c_uint32, 560), ('cp_rb_wptr_poll_addr_lo', ctypes.c_uint32, 564), ('cp_rb_wptr_poll_addr_hi', ctypes.c_uint32, 568), ('cp_rb_doorbell_control', ctypes.c_uint32, 572), ('cp_gfx_hqd_offset', ctypes.c_uint32, 576), ('cp_gfx_hqd_cntl', ctypes.c_uint32, 580), ('reserved_146', ctypes.c_uint32, 584), ('reserved_147', ctypes.c_uint32, 588), ('cp_gfx_hqd_csmd_rptr', ctypes.c_uint32, 592), ('cp_gfx_hqd_wptr', ctypes.c_uint32, 596), ('cp_gfx_hqd_wptr_hi', ctypes.c_uint32, 600), ('reserved_151', ctypes.c_uint32, 604), ('reserved_152', ctypes.c_uint32, 608), ('reserved_153', ctypes.c_uint32, 612), ('reserved_154', ctypes.c_uint32, 616), ('reserved_155', ctypes.c_uint32, 620), ('cp_gfx_hqd_mapped', ctypes.c_uint32, 624), ('cp_gfx_hqd_que_mgr_control', ctypes.c_uint32, 628), ('reserved_158', ctypes.c_uint32, 632), ('reserved_159', ctypes.c_uint32, 636), ('cp_gfx_hqd_hq_status0', ctypes.c_uint32, 640), ('cp_gfx_hqd_hq_control0', ctypes.c_uint32, 644), ('cp_gfx_mqd_control', ctypes.c_uint32, 648), ('reserved_163', ctypes.c_uint32, 652), ('reserved_164', ctypes.c_uint32, 656), ('reserved_165', ctypes.c_uint32, 660), ('reserved_166', ctypes.c_uint32, 664), ('reserved_167', ctypes.c_uint32, 668), ('reserved_168', ctypes.c_uint32, 672), ('reserved_169', ctypes.c_uint32, 676), ('cp_num_prim_needed_count0_lo', ctypes.c_uint32, 680), ('cp_num_prim_needed_count0_hi', ctypes.c_uint32, 684), ('cp_num_prim_needed_count1_lo', ctypes.c_uint32, 688), ('cp_num_prim_needed_count1_hi', ctypes.c_uint32, 692), ('cp_num_prim_needed_count2_lo', ctypes.c_uint32, 696), ('cp_num_prim_needed_count2_hi', ctypes.c_uint32, 700), ('cp_num_prim_needed_count3_lo', ctypes.c_uint32, 704), ('cp_num_prim_needed_count3_hi', ctypes.c_uint32, 708), ('cp_num_prim_written_count0_lo', ctypes.c_uint32, 712), ('cp_num_prim_written_count0_hi', ctypes.c_uint32, 716), ('cp_num_prim_written_count1_lo', ctypes.c_uint32, 720), ('cp_num_prim_written_count1_hi', ctypes.c_uint32, 724), ('cp_num_prim_written_count2_lo', ctypes.c_uint32, 728), ('cp_num_prim_written_count2_hi', ctypes.c_uint32, 732), ('cp_num_prim_written_count3_lo', ctypes.c_uint32, 736), ('cp_num_prim_written_count3_hi', ctypes.c_uint32, 740), ('reserved_186', ctypes.c_uint32, 744), ('reserved_187', ctypes.c_uint32, 748), ('reserved_188', ctypes.c_uint32, 752), ('reserved_189', ctypes.c_uint32, 756), ('mp1_smn_fps_cnt', ctypes.c_uint32, 760), ('sq_thread_trace_buf0_base', ctypes.c_uint32, 764), ('sq_thread_trace_buf0_size', ctypes.c_uint32, 768), ('sq_thread_trace_buf1_base', ctypes.c_uint32, 772), ('sq_thread_trace_buf1_size', ctypes.c_uint32, 776), ('sq_thread_trace_wptr', ctypes.c_uint32, 780), ('sq_thread_trace_mask', ctypes.c_uint32, 784), ('sq_thread_trace_token_mask', ctypes.c_uint32, 788), ('sq_thread_trace_ctrl', ctypes.c_uint32, 792), ('sq_thread_trace_status', ctypes.c_uint32, 796), ('sq_thread_trace_dropped_cntr', ctypes.c_uint32, 800), ('sq_thread_trace_finish_done_debug', ctypes.c_uint32, 804), ('sq_thread_trace_gfx_draw_cntr', ctypes.c_uint32, 808), ('sq_thread_trace_gfx_marker_cntr', ctypes.c_uint32, 812), ('sq_thread_trace_hp3d_draw_cntr', ctypes.c_uint32, 816), ('sq_thread_trace_hp3d_marker_cntr', ctypes.c_uint32, 820), ('reserved_206', ctypes.c_uint32, 824), ('reserved_207', ctypes.c_uint32, 828), ('cp_sc_psinvoc_count0_lo', ctypes.c_uint32, 832), ('cp_sc_psinvoc_count0_hi', ctypes.c_uint32, 836), ('cp_pa_cprim_count_lo', ctypes.c_uint32, 840), ('cp_pa_cprim_count_hi', ctypes.c_uint32, 844), ('cp_pa_cinvoc_count_lo', ctypes.c_uint32, 848), ('cp_pa_cinvoc_count_hi', ctypes.c_uint32, 852), ('cp_vgt_vsinvoc_count_lo', ctypes.c_uint32, 856), ('cp_vgt_vsinvoc_count_hi', ctypes.c_uint32, 860), ('cp_vgt_gsinvoc_count_lo', ctypes.c_uint32, 864), ('cp_vgt_gsinvoc_count_hi', ctypes.c_uint32, 868), ('cp_vgt_gsprim_count_lo', ctypes.c_uint32, 872), ('cp_vgt_gsprim_count_hi', ctypes.c_uint32, 876), ('cp_vgt_iaprim_count_lo', ctypes.c_uint32, 880), ('cp_vgt_iaprim_count_hi', ctypes.c_uint32, 884), ('cp_vgt_iavert_count_lo', ctypes.c_uint32, 888), ('cp_vgt_iavert_count_hi', ctypes.c_uint32, 892), ('cp_vgt_hsinvoc_count_lo', ctypes.c_uint32, 896), ('cp_vgt_hsinvoc_count_hi', ctypes.c_uint32, 900), ('cp_vgt_dsinvoc_count_lo', ctypes.c_uint32, 904), ('cp_vgt_dsinvoc_count_hi', ctypes.c_uint32, 908), ('cp_vgt_csinvoc_count_lo', ctypes.c_uint32, 912), ('cp_vgt_csinvoc_count_hi', ctypes.c_uint32, 916), ('reserved_230', ctypes.c_uint32, 920), ('reserved_231', ctypes.c_uint32, 924), ('reserved_232', ctypes.c_uint32, 928), ('reserved_233', ctypes.c_uint32, 932), ('reserved_234', ctypes.c_uint32, 936), ('reserved_235', ctypes.c_uint32, 940), ('reserved_236', ctypes.c_uint32, 944), ('reserved_237', ctypes.c_uint32, 948), ('reserved_238', ctypes.c_uint32, 952), ('reserved_239', ctypes.c_uint32, 956), ('reserved_240', ctypes.c_uint32, 960), ('reserved_241', ctypes.c_uint32, 964), ('reserved_242', ctypes.c_uint32, 968), ('reserved_243', ctypes.c_uint32, 972), ('reserved_244', ctypes.c_uint32, 976), ('reserved_245', ctypes.c_uint32, 980), ('reserved_246', ctypes.c_uint32, 984), ('reserved_247', ctypes.c_uint32, 988), ('reserved_248', ctypes.c_uint32, 992), ('reserved_249', ctypes.c_uint32, 996), ('reserved_250', ctypes.c_uint32, 1000), ('reserved_251', ctypes.c_uint32, 1004), ('reserved_252', ctypes.c_uint32, 1008), ('reserved_253', ctypes.c_uint32, 1012), ('reserved_254', ctypes.c_uint32, 1016), ('reserved_255', ctypes.c_uint32, 1020), ('reserved_256', ctypes.c_uint32, 1024), ('reserved_257', ctypes.c_uint32, 1028), ('reserved_258', ctypes.c_uint32, 1032), ('reserved_259', ctypes.c_uint32, 1036), ('reserved_260', ctypes.c_uint32, 1040), ('reserved_261', ctypes.c_uint32, 1044), ('reserved_262', ctypes.c_uint32, 1048), ('reserved_263', ctypes.c_uint32, 1052), ('reserved_264', ctypes.c_uint32, 1056), ('reserved_265', ctypes.c_uint32, 1060), ('reserved_266', ctypes.c_uint32, 1064), ('reserved_267', ctypes.c_uint32, 1068), ('vgt_strmout_buffer_filled_size_0', ctypes.c_uint32, 1072), ('vgt_strmout_buffer_filled_size_1', ctypes.c_uint32, 1076), ('vgt_strmout_buffer_filled_size_2', ctypes.c_uint32, 1080), ('vgt_strmout_buffer_filled_size_3', ctypes.c_uint32, 1084), ('reserved_272', ctypes.c_uint32, 1088), ('reserved_273', ctypes.c_uint32, 1092), ('reserved_274', ctypes.c_uint32, 1096), ('reserved_275', ctypes.c_uint32, 1100), ('vgt_dma_max_size', ctypes.c_uint32, 1104), ('vgt_dma_num_instances', ctypes.c_uint32, 1108), ('reserved_278', ctypes.c_uint32, 1112), ('reserved_279', ctypes.c_uint32, 1116), ('reserved_280', ctypes.c_uint32, 1120), ('reserved_281', ctypes.c_uint32, 1124), ('reserved_282', ctypes.c_uint32, 1128), ('reserved_283', ctypes.c_uint32, 1132), ('reserved_284', ctypes.c_uint32, 1136), ('reserved_285', ctypes.c_uint32, 1140), ('reserved_286', ctypes.c_uint32, 1144), ('reserved_287', ctypes.c_uint32, 1148), ('it_set_base_ib_addr_lo', ctypes.c_uint32, 1152), ('it_set_base_ib_addr_hi', ctypes.c_uint32, 1156), ('reserved_290', ctypes.c_uint32, 1160), ('reserved_291', ctypes.c_uint32, 1164), ('reserved_292', ctypes.c_uint32, 1168), ('reserved_293', ctypes.c_uint32, 1172), ('reserved_294', ctypes.c_uint32, 1176), ('reserved_295', ctypes.c_uint32, 1180), ('reserved_296', ctypes.c_uint32, 1184), ('reserved_297', ctypes.c_uint32, 1188), ('reserved_298', ctypes.c_uint32, 1192), ('reserved_299', ctypes.c_uint32, 1196), ('reserved_300', ctypes.c_uint32, 1200), ('reserved_301', ctypes.c_uint32, 1204), ('reserved_302', ctypes.c_uint32, 1208), ('reserved_303', ctypes.c_uint32, 1212), ('reserved_304', ctypes.c_uint32, 1216), ('reserved_305', ctypes.c_uint32, 1220), ('reserved_306', ctypes.c_uint32, 1224), ('reserved_307', ctypes.c_uint32, 1228), ('reserved_308', ctypes.c_uint32, 1232), ('reserved_309', ctypes.c_uint32, 1236), ('reserved_310', ctypes.c_uint32, 1240), ('reserved_311', ctypes.c_uint32, 1244), ('reserved_312', ctypes.c_uint32, 1248), ('reserved_313', ctypes.c_uint32, 1252), ('reserved_314', ctypes.c_uint32, 1256), ('reserved_315', ctypes.c_uint32, 1260), ('reserved_316', ctypes.c_uint32, 1264), ('reserved_317', ctypes.c_uint32, 1268), ('reserved_318', ctypes.c_uint32, 1272), ('reserved_319', ctypes.c_uint32, 1276), ('reserved_320', ctypes.c_uint32, 1280), ('reserved_321', ctypes.c_uint32, 1284), ('reserved_322', ctypes.c_uint32, 1288), ('reserved_323', ctypes.c_uint32, 1292), ('reserved_324', ctypes.c_uint32, 1296), ('reserved_325', ctypes.c_uint32, 1300), ('reserved_326', ctypes.c_uint32, 1304), ('reserved_327', ctypes.c_uint32, 1308), ('reserved_328', ctypes.c_uint32, 1312), ('reserved_329', ctypes.c_uint32, 1316), ('reserved_330', ctypes.c_uint32, 1320), ('reserved_331', ctypes.c_uint32, 1324), ('reserved_332', ctypes.c_uint32, 1328), ('reserved_333', ctypes.c_uint32, 1332), ('reserved_334', ctypes.c_uint32, 1336), ('reserved_335', ctypes.c_uint32, 1340), ('reserved_336', ctypes.c_uint32, 1344), ('reserved_337', ctypes.c_uint32, 1348), ('reserved_338', ctypes.c_uint32, 1352), ('reserved_339', ctypes.c_uint32, 1356), ('reserved_340', ctypes.c_uint32, 1360), ('reserved_341', ctypes.c_uint32, 1364), ('reserved_342', ctypes.c_uint32, 1368), ('reserved_343', ctypes.c_uint32, 1372), ('reserved_344', ctypes.c_uint32, 1376), ('reserved_345', ctypes.c_uint32, 1380), ('reserved_346', ctypes.c_uint32, 1384), ('reserved_347', ctypes.c_uint32, 1388), ('reserved_348', ctypes.c_uint32, 1392), ('reserved_349', ctypes.c_uint32, 1396), ('reserved_350', ctypes.c_uint32, 1400), ('reserved_351', ctypes.c_uint32, 1404), ('reserved_352', ctypes.c_uint32, 1408), ('reserved_353', ctypes.c_uint32, 1412), ('reserved_354', ctypes.c_uint32, 1416), ('reserved_355', ctypes.c_uint32, 1420), ('spi_shader_pgm_rsrc3_ps', ctypes.c_uint32, 1424), ('spi_shader_pgm_rsrc3_vs', ctypes.c_uint32, 1428), ('spi_shader_pgm_rsrc3_gs', ctypes.c_uint32, 1432), ('spi_shader_pgm_rsrc3_hs', ctypes.c_uint32, 1436), ('spi_shader_pgm_rsrc4_ps', ctypes.c_uint32, 1440), ('spi_shader_pgm_rsrc4_vs', ctypes.c_uint32, 1444), ('spi_shader_pgm_rsrc4_gs', ctypes.c_uint32, 1448), ('spi_shader_pgm_rsrc4_hs', ctypes.c_uint32, 1452), ('db_occlusion_count0_low_00', ctypes.c_uint32, 1456), ('db_occlusion_count0_hi_00', ctypes.c_uint32, 1460), ('db_occlusion_count1_low_00', ctypes.c_uint32, 1464), ('db_occlusion_count1_hi_00', ctypes.c_uint32, 1468), ('db_occlusion_count2_low_00', ctypes.c_uint32, 1472), ('db_occlusion_count2_hi_00', ctypes.c_uint32, 1476), ('db_occlusion_count3_low_00', ctypes.c_uint32, 1480), ('db_occlusion_count3_hi_00', ctypes.c_uint32, 1484), ('db_occlusion_count0_low_01', ctypes.c_uint32, 1488), ('db_occlusion_count0_hi_01', ctypes.c_uint32, 1492), ('db_occlusion_count1_low_01', ctypes.c_uint32, 1496), ('db_occlusion_count1_hi_01', ctypes.c_uint32, 1500), ('db_occlusion_count2_low_01', ctypes.c_uint32, 1504), ('db_occlusion_count2_hi_01', ctypes.c_uint32, 1508), ('db_occlusion_count3_low_01', ctypes.c_uint32, 1512), ('db_occlusion_count3_hi_01', ctypes.c_uint32, 1516), ('db_occlusion_count0_low_02', ctypes.c_uint32, 1520), ('db_occlusion_count0_hi_02', ctypes.c_uint32, 1524), ('db_occlusion_count1_low_02', ctypes.c_uint32, 1528), ('db_occlusion_count1_hi_02', ctypes.c_uint32, 1532), ('db_occlusion_count2_low_02', ctypes.c_uint32, 1536), ('db_occlusion_count2_hi_02', ctypes.c_uint32, 1540), ('db_occlusion_count3_low_02', ctypes.c_uint32, 1544), ('db_occlusion_count3_hi_02', ctypes.c_uint32, 1548), ('db_occlusion_count0_low_03', ctypes.c_uint32, 1552), ('db_occlusion_count0_hi_03', ctypes.c_uint32, 1556), ('db_occlusion_count1_low_03', ctypes.c_uint32, 1560), ('db_occlusion_count1_hi_03', ctypes.c_uint32, 1564), ('db_occlusion_count2_low_03', ctypes.c_uint32, 1568), ('db_occlusion_count2_hi_03', ctypes.c_uint32, 1572), ('db_occlusion_count3_low_03', ctypes.c_uint32, 1576), ('db_occlusion_count3_hi_03', ctypes.c_uint32, 1580), ('db_occlusion_count0_low_04', ctypes.c_uint32, 1584), ('db_occlusion_count0_hi_04', ctypes.c_uint32, 1588), ('db_occlusion_count1_low_04', ctypes.c_uint32, 1592), ('db_occlusion_count1_hi_04', ctypes.c_uint32, 1596), ('db_occlusion_count2_low_04', ctypes.c_uint32, 1600), ('db_occlusion_count2_hi_04', ctypes.c_uint32, 1604), ('db_occlusion_count3_low_04', ctypes.c_uint32, 1608), ('db_occlusion_count3_hi_04', ctypes.c_uint32, 1612), ('db_occlusion_count0_low_05', ctypes.c_uint32, 1616), ('db_occlusion_count0_hi_05', ctypes.c_uint32, 1620), ('db_occlusion_count1_low_05', ctypes.c_uint32, 1624), ('db_occlusion_count1_hi_05', ctypes.c_uint32, 1628), ('db_occlusion_count2_low_05', ctypes.c_uint32, 1632), ('db_occlusion_count2_hi_05', ctypes.c_uint32, 1636), ('db_occlusion_count3_low_05', ctypes.c_uint32, 1640), ('db_occlusion_count3_hi_05', ctypes.c_uint32, 1644), ('db_occlusion_count0_low_06', ctypes.c_uint32, 1648), ('db_occlusion_count0_hi_06', ctypes.c_uint32, 1652), ('db_occlusion_count1_low_06', ctypes.c_uint32, 1656), ('db_occlusion_count1_hi_06', ctypes.c_uint32, 1660), ('db_occlusion_count2_low_06', ctypes.c_uint32, 1664), ('db_occlusion_count2_hi_06', ctypes.c_uint32, 1668), ('db_occlusion_count3_low_06', ctypes.c_uint32, 1672), ('db_occlusion_count3_hi_06', ctypes.c_uint32, 1676), ('db_occlusion_count0_low_07', ctypes.c_uint32, 1680), ('db_occlusion_count0_hi_07', ctypes.c_uint32, 1684), ('db_occlusion_count1_low_07', ctypes.c_uint32, 1688), ('db_occlusion_count1_hi_07', ctypes.c_uint32, 1692), ('db_occlusion_count2_low_07', ctypes.c_uint32, 1696), ('db_occlusion_count2_hi_07', ctypes.c_uint32, 1700), ('db_occlusion_count3_low_07', ctypes.c_uint32, 1704), ('db_occlusion_count3_hi_07', ctypes.c_uint32, 1708), ('db_occlusion_count0_low_10', ctypes.c_uint32, 1712), ('db_occlusion_count0_hi_10', ctypes.c_uint32, 1716), ('db_occlusion_count1_low_10', ctypes.c_uint32, 1720), ('db_occlusion_count1_hi_10', ctypes.c_uint32, 1724), ('db_occlusion_count2_low_10', ctypes.c_uint32, 1728), ('db_occlusion_count2_hi_10', ctypes.c_uint32, 1732), ('db_occlusion_count3_low_10', ctypes.c_uint32, 1736), ('db_occlusion_count3_hi_10', ctypes.c_uint32, 1740), ('db_occlusion_count0_low_11', ctypes.c_uint32, 1744), ('db_occlusion_count0_hi_11', ctypes.c_uint32, 1748), ('db_occlusion_count1_low_11', ctypes.c_uint32, 1752), ('db_occlusion_count1_hi_11', ctypes.c_uint32, 1756), ('db_occlusion_count2_low_11', ctypes.c_uint32, 1760), ('db_occlusion_count2_hi_11', ctypes.c_uint32, 1764), ('db_occlusion_count3_low_11', ctypes.c_uint32, 1768), ('db_occlusion_count3_hi_11', ctypes.c_uint32, 1772), ('db_occlusion_count0_low_12', ctypes.c_uint32, 1776), ('db_occlusion_count0_hi_12', ctypes.c_uint32, 1780), ('db_occlusion_count1_low_12', ctypes.c_uint32, 1784), ('db_occlusion_count1_hi_12', ctypes.c_uint32, 1788), ('db_occlusion_count2_low_12', ctypes.c_uint32, 1792), ('db_occlusion_count2_hi_12', ctypes.c_uint32, 1796), ('db_occlusion_count3_low_12', ctypes.c_uint32, 1800), ('db_occlusion_count3_hi_12', ctypes.c_uint32, 1804), ('db_occlusion_count0_low_13', ctypes.c_uint32, 1808), ('db_occlusion_count0_hi_13', ctypes.c_uint32, 1812), ('db_occlusion_count1_low_13', ctypes.c_uint32, 1816), ('db_occlusion_count1_hi_13', ctypes.c_uint32, 1820), ('db_occlusion_count2_low_13', ctypes.c_uint32, 1824), ('db_occlusion_count2_hi_13', ctypes.c_uint32, 1828), ('db_occlusion_count3_low_13', ctypes.c_uint32, 1832), ('db_occlusion_count3_hi_13', ctypes.c_uint32, 1836), ('db_occlusion_count0_low_14', ctypes.c_uint32, 1840), ('db_occlusion_count0_hi_14', ctypes.c_uint32, 1844), ('db_occlusion_count1_low_14', ctypes.c_uint32, 1848), ('db_occlusion_count1_hi_14', ctypes.c_uint32, 1852), ('db_occlusion_count2_low_14', ctypes.c_uint32, 1856), ('db_occlusion_count2_hi_14', ctypes.c_uint32, 1860), ('db_occlusion_count3_low_14', ctypes.c_uint32, 1864), ('db_occlusion_count3_hi_14', ctypes.c_uint32, 1868), ('db_occlusion_count0_low_15', ctypes.c_uint32, 1872), ('db_occlusion_count0_hi_15', ctypes.c_uint32, 1876), ('db_occlusion_count1_low_15', ctypes.c_uint32, 1880), ('db_occlusion_count1_hi_15', ctypes.c_uint32, 1884), ('db_occlusion_count2_low_15', ctypes.c_uint32, 1888), ('db_occlusion_count2_hi_15', ctypes.c_uint32, 1892), ('db_occlusion_count3_low_15', ctypes.c_uint32, 1896), ('db_occlusion_count3_hi_15', ctypes.c_uint32, 1900), ('db_occlusion_count0_low_16', ctypes.c_uint32, 1904), ('db_occlusion_count0_hi_16', ctypes.c_uint32, 1908), ('db_occlusion_count1_low_16', ctypes.c_uint32, 1912), ('db_occlusion_count1_hi_16', ctypes.c_uint32, 1916), ('db_occlusion_count2_low_16', ctypes.c_uint32, 1920), ('db_occlusion_count2_hi_16', ctypes.c_uint32, 1924), ('db_occlusion_count3_low_16', ctypes.c_uint32, 1928), ('db_occlusion_count3_hi_16', ctypes.c_uint32, 1932), ('db_occlusion_count0_low_17', ctypes.c_uint32, 1936), ('db_occlusion_count0_hi_17', ctypes.c_uint32, 1940), ('db_occlusion_count1_low_17', ctypes.c_uint32, 1944), ('db_occlusion_count1_hi_17', ctypes.c_uint32, 1948), ('db_occlusion_count2_low_17', ctypes.c_uint32, 1952), ('db_occlusion_count2_hi_17', ctypes.c_uint32, 1956), ('db_occlusion_count3_low_17', ctypes.c_uint32, 1960), ('db_occlusion_count3_hi_17', ctypes.c_uint32, 1964), ('reserved_492', ctypes.c_uint32, 1968), ('reserved_493', ctypes.c_uint32, 1972), ('reserved_494', ctypes.c_uint32, 1976), ('reserved_495', ctypes.c_uint32, 1980), ('reserved_496', ctypes.c_uint32, 1984), ('reserved_497', ctypes.c_uint32, 1988), ('reserved_498', ctypes.c_uint32, 1992), ('reserved_499', ctypes.c_uint32, 1996), ('reserved_500', ctypes.c_uint32, 2000), ('reserved_501', ctypes.c_uint32, 2004), ('reserved_502', ctypes.c_uint32, 2008), ('reserved_503', ctypes.c_uint32, 2012), ('reserved_504', ctypes.c_uint32, 2016), ('reserved_505', ctypes.c_uint32, 2020), ('reserved_506', ctypes.c_uint32, 2024), ('reserved_507', ctypes.c_uint32, 2028), ('reserved_508', ctypes.c_uint32, 2032), ('reserved_509', ctypes.c_uint32, 2036), ('reserved_510', ctypes.c_uint32, 2040), ('reserved_511', ctypes.c_uint32, 2044)])
@c.record
class struct_v11_sdma_mqd(c.Struct):
  SIZE = 512
  sdmax_rlcx_rb_cntl: int
  sdmax_rlcx_rb_base: int
  sdmax_rlcx_rb_base_hi: int
  sdmax_rlcx_rb_rptr: int
  sdmax_rlcx_rb_rptr_hi: int
  sdmax_rlcx_rb_wptr: int
  sdmax_rlcx_rb_wptr_hi: int
  sdmax_rlcx_rb_rptr_addr_hi: int
  sdmax_rlcx_rb_rptr_addr_lo: int
  sdmax_rlcx_ib_cntl: int
  sdmax_rlcx_ib_rptr: int
  sdmax_rlcx_ib_offset: int
  sdmax_rlcx_ib_base_lo: int
  sdmax_rlcx_ib_base_hi: int
  sdmax_rlcx_ib_size: int
  sdmax_rlcx_skip_cntl: int
  sdmax_rlcx_context_status: int
  sdmax_rlcx_doorbell: int
  sdmax_rlcx_doorbell_log: int
  sdmax_rlcx_doorbell_offset: int
  sdmax_rlcx_csa_addr_lo: int
  sdmax_rlcx_csa_addr_hi: int
  sdmax_rlcx_sched_cntl: int
  sdmax_rlcx_ib_sub_remain: int
  sdmax_rlcx_preempt: int
  sdmax_rlcx_dummy_reg: int
  sdmax_rlcx_rb_wptr_poll_addr_hi: int
  sdmax_rlcx_rb_wptr_poll_addr_lo: int
  sdmax_rlcx_rb_aql_cntl: int
  sdmax_rlcx_minor_ptr_update: int
  sdmax_rlcx_rb_preempt: int
  sdmax_rlcx_midcmd_data0: int
  sdmax_rlcx_midcmd_data1: int
  sdmax_rlcx_midcmd_data2: int
  sdmax_rlcx_midcmd_data3: int
  sdmax_rlcx_midcmd_data4: int
  sdmax_rlcx_midcmd_data5: int
  sdmax_rlcx_midcmd_data6: int
  sdmax_rlcx_midcmd_data7: int
  sdmax_rlcx_midcmd_data8: int
  sdmax_rlcx_midcmd_data9: int
  sdmax_rlcx_midcmd_data10: int
  sdmax_rlcx_midcmd_cntl: int
  sdmax_rlcx_f32_dbg0: int
  sdmax_rlcx_f32_dbg1: int
  reserved_45: int
  reserved_46: int
  reserved_47: int
  reserved_48: int
  reserved_49: int
  reserved_50: int
  reserved_51: int
  reserved_52: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  reserved_59: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  reserved_65: int
  reserved_66: int
  reserved_67: int
  reserved_68: int
  reserved_69: int
  reserved_70: int
  reserved_71: int
  reserved_72: int
  reserved_73: int
  reserved_74: int
  reserved_75: int
  reserved_76: int
  reserved_77: int
  reserved_78: int
  reserved_79: int
  reserved_80: int
  reserved_81: int
  reserved_82: int
  reserved_83: int
  reserved_84: int
  reserved_85: int
  reserved_86: int
  reserved_87: int
  reserved_88: int
  reserved_89: int
  reserved_90: int
  reserved_91: int
  reserved_92: int
  reserved_93: int
  reserved_94: int
  reserved_95: int
  reserved_96: int
  reserved_97: int
  reserved_98: int
  reserved_99: int
  reserved_100: int
  reserved_101: int
  reserved_102: int
  reserved_103: int
  reserved_104: int
  reserved_105: int
  reserved_106: int
  reserved_107: int
  reserved_108: int
  reserved_109: int
  reserved_110: int
  reserved_111: int
  reserved_112: int
  reserved_113: int
  reserved_114: int
  reserved_115: int
  reserved_116: int
  reserved_117: int
  reserved_118: int
  reserved_119: int
  reserved_120: int
  reserved_121: int
  reserved_122: int
  reserved_123: int
  reserved_124: int
  reserved_125: int
  sdma_engine_id: int
  sdma_queue_id: int
struct_v11_sdma_mqd.register_fields([('sdmax_rlcx_rb_cntl', ctypes.c_uint32, 0), ('sdmax_rlcx_rb_base', ctypes.c_uint32, 4), ('sdmax_rlcx_rb_base_hi', ctypes.c_uint32, 8), ('sdmax_rlcx_rb_rptr', ctypes.c_uint32, 12), ('sdmax_rlcx_rb_rptr_hi', ctypes.c_uint32, 16), ('sdmax_rlcx_rb_wptr', ctypes.c_uint32, 20), ('sdmax_rlcx_rb_wptr_hi', ctypes.c_uint32, 24), ('sdmax_rlcx_rb_rptr_addr_hi', ctypes.c_uint32, 28), ('sdmax_rlcx_rb_rptr_addr_lo', ctypes.c_uint32, 32), ('sdmax_rlcx_ib_cntl', ctypes.c_uint32, 36), ('sdmax_rlcx_ib_rptr', ctypes.c_uint32, 40), ('sdmax_rlcx_ib_offset', ctypes.c_uint32, 44), ('sdmax_rlcx_ib_base_lo', ctypes.c_uint32, 48), ('sdmax_rlcx_ib_base_hi', ctypes.c_uint32, 52), ('sdmax_rlcx_ib_size', ctypes.c_uint32, 56), ('sdmax_rlcx_skip_cntl', ctypes.c_uint32, 60), ('sdmax_rlcx_context_status', ctypes.c_uint32, 64), ('sdmax_rlcx_doorbell', ctypes.c_uint32, 68), ('sdmax_rlcx_doorbell_log', ctypes.c_uint32, 72), ('sdmax_rlcx_doorbell_offset', ctypes.c_uint32, 76), ('sdmax_rlcx_csa_addr_lo', ctypes.c_uint32, 80), ('sdmax_rlcx_csa_addr_hi', ctypes.c_uint32, 84), ('sdmax_rlcx_sched_cntl', ctypes.c_uint32, 88), ('sdmax_rlcx_ib_sub_remain', ctypes.c_uint32, 92), ('sdmax_rlcx_preempt', ctypes.c_uint32, 96), ('sdmax_rlcx_dummy_reg', ctypes.c_uint32, 100), ('sdmax_rlcx_rb_wptr_poll_addr_hi', ctypes.c_uint32, 104), ('sdmax_rlcx_rb_wptr_poll_addr_lo', ctypes.c_uint32, 108), ('sdmax_rlcx_rb_aql_cntl', ctypes.c_uint32, 112), ('sdmax_rlcx_minor_ptr_update', ctypes.c_uint32, 116), ('sdmax_rlcx_rb_preempt', ctypes.c_uint32, 120), ('sdmax_rlcx_midcmd_data0', ctypes.c_uint32, 124), ('sdmax_rlcx_midcmd_data1', ctypes.c_uint32, 128), ('sdmax_rlcx_midcmd_data2', ctypes.c_uint32, 132), ('sdmax_rlcx_midcmd_data3', ctypes.c_uint32, 136), ('sdmax_rlcx_midcmd_data4', ctypes.c_uint32, 140), ('sdmax_rlcx_midcmd_data5', ctypes.c_uint32, 144), ('sdmax_rlcx_midcmd_data6', ctypes.c_uint32, 148), ('sdmax_rlcx_midcmd_data7', ctypes.c_uint32, 152), ('sdmax_rlcx_midcmd_data8', ctypes.c_uint32, 156), ('sdmax_rlcx_midcmd_data9', ctypes.c_uint32, 160), ('sdmax_rlcx_midcmd_data10', ctypes.c_uint32, 164), ('sdmax_rlcx_midcmd_cntl', ctypes.c_uint32, 168), ('sdmax_rlcx_f32_dbg0', ctypes.c_uint32, 172), ('sdmax_rlcx_f32_dbg1', ctypes.c_uint32, 176), ('reserved_45', ctypes.c_uint32, 180), ('reserved_46', ctypes.c_uint32, 184), ('reserved_47', ctypes.c_uint32, 188), ('reserved_48', ctypes.c_uint32, 192), ('reserved_49', ctypes.c_uint32, 196), ('reserved_50', ctypes.c_uint32, 200), ('reserved_51', ctypes.c_uint32, 204), ('reserved_52', ctypes.c_uint32, 208), ('reserved_53', ctypes.c_uint32, 212), ('reserved_54', ctypes.c_uint32, 216), ('reserved_55', ctypes.c_uint32, 220), ('reserved_56', ctypes.c_uint32, 224), ('reserved_57', ctypes.c_uint32, 228), ('reserved_58', ctypes.c_uint32, 232), ('reserved_59', ctypes.c_uint32, 236), ('reserved_60', ctypes.c_uint32, 240), ('reserved_61', ctypes.c_uint32, 244), ('reserved_62', ctypes.c_uint32, 248), ('reserved_63', ctypes.c_uint32, 252), ('reserved_64', ctypes.c_uint32, 256), ('reserved_65', ctypes.c_uint32, 260), ('reserved_66', ctypes.c_uint32, 264), ('reserved_67', ctypes.c_uint32, 268), ('reserved_68', ctypes.c_uint32, 272), ('reserved_69', ctypes.c_uint32, 276), ('reserved_70', ctypes.c_uint32, 280), ('reserved_71', ctypes.c_uint32, 284), ('reserved_72', ctypes.c_uint32, 288), ('reserved_73', ctypes.c_uint32, 292), ('reserved_74', ctypes.c_uint32, 296), ('reserved_75', ctypes.c_uint32, 300), ('reserved_76', ctypes.c_uint32, 304), ('reserved_77', ctypes.c_uint32, 308), ('reserved_78', ctypes.c_uint32, 312), ('reserved_79', ctypes.c_uint32, 316), ('reserved_80', ctypes.c_uint32, 320), ('reserved_81', ctypes.c_uint32, 324), ('reserved_82', ctypes.c_uint32, 328), ('reserved_83', ctypes.c_uint32, 332), ('reserved_84', ctypes.c_uint32, 336), ('reserved_85', ctypes.c_uint32, 340), ('reserved_86', ctypes.c_uint32, 344), ('reserved_87', ctypes.c_uint32, 348), ('reserved_88', ctypes.c_uint32, 352), ('reserved_89', ctypes.c_uint32, 356), ('reserved_90', ctypes.c_uint32, 360), ('reserved_91', ctypes.c_uint32, 364), ('reserved_92', ctypes.c_uint32, 368), ('reserved_93', ctypes.c_uint32, 372), ('reserved_94', ctypes.c_uint32, 376), ('reserved_95', ctypes.c_uint32, 380), ('reserved_96', ctypes.c_uint32, 384), ('reserved_97', ctypes.c_uint32, 388), ('reserved_98', ctypes.c_uint32, 392), ('reserved_99', ctypes.c_uint32, 396), ('reserved_100', ctypes.c_uint32, 400), ('reserved_101', ctypes.c_uint32, 404), ('reserved_102', ctypes.c_uint32, 408), ('reserved_103', ctypes.c_uint32, 412), ('reserved_104', ctypes.c_uint32, 416), ('reserved_105', ctypes.c_uint32, 420), ('reserved_106', ctypes.c_uint32, 424), ('reserved_107', ctypes.c_uint32, 428), ('reserved_108', ctypes.c_uint32, 432), ('reserved_109', ctypes.c_uint32, 436), ('reserved_110', ctypes.c_uint32, 440), ('reserved_111', ctypes.c_uint32, 444), ('reserved_112', ctypes.c_uint32, 448), ('reserved_113', ctypes.c_uint32, 452), ('reserved_114', ctypes.c_uint32, 456), ('reserved_115', ctypes.c_uint32, 460), ('reserved_116', ctypes.c_uint32, 464), ('reserved_117', ctypes.c_uint32, 468), ('reserved_118', ctypes.c_uint32, 472), ('reserved_119', ctypes.c_uint32, 476), ('reserved_120', ctypes.c_uint32, 480), ('reserved_121', ctypes.c_uint32, 484), ('reserved_122', ctypes.c_uint32, 488), ('reserved_123', ctypes.c_uint32, 492), ('reserved_124', ctypes.c_uint32, 496), ('reserved_125', ctypes.c_uint32, 500), ('sdma_engine_id', ctypes.c_uint32, 504), ('sdma_queue_id', ctypes.c_uint32, 508)])
@c.record
class struct_v11_compute_mqd(c.Struct):
  SIZE = 2048
  header: int
  compute_dispatch_initiator: int
  compute_dim_x: int
  compute_dim_y: int
  compute_dim_z: int
  compute_start_x: int
  compute_start_y: int
  compute_start_z: int
  compute_num_thread_x: int
  compute_num_thread_y: int
  compute_num_thread_z: int
  compute_pipelinestat_enable: int
  compute_perfcount_enable: int
  compute_pgm_lo: int
  compute_pgm_hi: int
  compute_dispatch_pkt_addr_lo: int
  compute_dispatch_pkt_addr_hi: int
  compute_dispatch_scratch_base_lo: int
  compute_dispatch_scratch_base_hi: int
  compute_pgm_rsrc1: int
  compute_pgm_rsrc2: int
  compute_vmid: int
  compute_resource_limits: int
  compute_static_thread_mgmt_se0: int
  compute_static_thread_mgmt_se1: int
  compute_tmpring_size: int
  compute_static_thread_mgmt_se2: int
  compute_static_thread_mgmt_se3: int
  compute_restart_x: int
  compute_restart_y: int
  compute_restart_z: int
  compute_thread_trace_enable: int
  compute_misc_reserved: int
  compute_dispatch_id: int
  compute_threadgroup_id: int
  compute_req_ctrl: int
  reserved_36: int
  compute_user_accum_0: int
  compute_user_accum_1: int
  compute_user_accum_2: int
  compute_user_accum_3: int
  compute_pgm_rsrc3: int
  compute_ddid_index: int
  compute_shader_chksum: int
  compute_static_thread_mgmt_se4: int
  compute_static_thread_mgmt_se5: int
  compute_static_thread_mgmt_se6: int
  compute_static_thread_mgmt_se7: int
  compute_dispatch_interleave: int
  compute_relaunch: int
  compute_wave_restore_addr_lo: int
  compute_wave_restore_addr_hi: int
  compute_wave_restore_control: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  reserved_59: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  compute_user_data_0: int
  compute_user_data_1: int
  compute_user_data_2: int
  compute_user_data_3: int
  compute_user_data_4: int
  compute_user_data_5: int
  compute_user_data_6: int
  compute_user_data_7: int
  compute_user_data_8: int
  compute_user_data_9: int
  compute_user_data_10: int
  compute_user_data_11: int
  compute_user_data_12: int
  compute_user_data_13: int
  compute_user_data_14: int
  compute_user_data_15: int
  cp_compute_csinvoc_count_lo: int
  cp_compute_csinvoc_count_hi: int
  reserved_83: int
  reserved_84: int
  reserved_85: int
  cp_mqd_query_time_lo: int
  cp_mqd_query_time_hi: int
  cp_mqd_connect_start_time_lo: int
  cp_mqd_connect_start_time_hi: int
  cp_mqd_connect_end_time_lo: int
  cp_mqd_connect_end_time_hi: int
  cp_mqd_connect_end_wf_count: int
  cp_mqd_connect_end_pq_rptr: int
  cp_mqd_connect_end_pq_wptr: int
  cp_mqd_connect_end_ib_rptr: int
  cp_mqd_readindex_lo: int
  cp_mqd_readindex_hi: int
  cp_mqd_save_start_time_lo: int
  cp_mqd_save_start_time_hi: int
  cp_mqd_save_end_time_lo: int
  cp_mqd_save_end_time_hi: int
  cp_mqd_restore_start_time_lo: int
  cp_mqd_restore_start_time_hi: int
  cp_mqd_restore_end_time_lo: int
  cp_mqd_restore_end_time_hi: int
  disable_queue: int
  reserved_107: int
  gds_cs_ctxsw_cnt0: int
  gds_cs_ctxsw_cnt1: int
  gds_cs_ctxsw_cnt2: int
  gds_cs_ctxsw_cnt3: int
  reserved_112: int
  reserved_113: int
  cp_pq_exe_status_lo: int
  cp_pq_exe_status_hi: int
  cp_packet_id_lo: int
  cp_packet_id_hi: int
  cp_packet_exe_status_lo: int
  cp_packet_exe_status_hi: int
  gds_save_base_addr_lo: int
  gds_save_base_addr_hi: int
  gds_save_mask_lo: int
  gds_save_mask_hi: int
  ctx_save_base_addr_lo: int
  ctx_save_base_addr_hi: int
  reserved_126: int
  reserved_127: int
  cp_mqd_base_addr_lo: int
  cp_mqd_base_addr_hi: int
  cp_hqd_active: int
  cp_hqd_vmid: int
  cp_hqd_persistent_state: int
  cp_hqd_pipe_priority: int
  cp_hqd_queue_priority: int
  cp_hqd_quantum: int
  cp_hqd_pq_base_lo: int
  cp_hqd_pq_base_hi: int
  cp_hqd_pq_rptr: int
  cp_hqd_pq_rptr_report_addr_lo: int
  cp_hqd_pq_rptr_report_addr_hi: int
  cp_hqd_pq_wptr_poll_addr_lo: int
  cp_hqd_pq_wptr_poll_addr_hi: int
  cp_hqd_pq_doorbell_control: int
  reserved_144: int
  cp_hqd_pq_control: int
  cp_hqd_ib_base_addr_lo: int
  cp_hqd_ib_base_addr_hi: int
  cp_hqd_ib_rptr: int
  cp_hqd_ib_control: int
  cp_hqd_iq_timer: int
  cp_hqd_iq_rptr: int
  cp_hqd_dequeue_request: int
  cp_hqd_dma_offload: int
  cp_hqd_sema_cmd: int
  cp_hqd_msg_type: int
  cp_hqd_atomic0_preop_lo: int
  cp_hqd_atomic0_preop_hi: int
  cp_hqd_atomic1_preop_lo: int
  cp_hqd_atomic1_preop_hi: int
  cp_hqd_hq_status0: int
  cp_hqd_hq_control0: int
  cp_mqd_control: int
  cp_hqd_hq_status1: int
  cp_hqd_hq_control1: int
  cp_hqd_eop_base_addr_lo: int
  cp_hqd_eop_base_addr_hi: int
  cp_hqd_eop_control: int
  cp_hqd_eop_rptr: int
  cp_hqd_eop_wptr: int
  cp_hqd_eop_done_events: int
  cp_hqd_ctx_save_base_addr_lo: int
  cp_hqd_ctx_save_base_addr_hi: int
  cp_hqd_ctx_save_control: int
  cp_hqd_cntl_stack_offset: int
  cp_hqd_cntl_stack_size: int
  cp_hqd_wg_state_offset: int
  cp_hqd_ctx_save_size: int
  cp_hqd_gds_resource_state: int
  cp_hqd_error: int
  cp_hqd_eop_wptr_mem: int
  cp_hqd_aql_control: int
  cp_hqd_pq_wptr_lo: int
  cp_hqd_pq_wptr_hi: int
  reserved_184: int
  reserved_185: int
  reserved_186: int
  reserved_187: int
  reserved_188: int
  reserved_189: int
  reserved_190: int
  reserved_191: int
  iqtimer_pkt_header: int
  iqtimer_pkt_dw0: int
  iqtimer_pkt_dw1: int
  iqtimer_pkt_dw2: int
  iqtimer_pkt_dw3: int
  iqtimer_pkt_dw4: int
  iqtimer_pkt_dw5: int
  iqtimer_pkt_dw6: int
  iqtimer_pkt_dw7: int
  iqtimer_pkt_dw8: int
  iqtimer_pkt_dw9: int
  iqtimer_pkt_dw10: int
  iqtimer_pkt_dw11: int
  iqtimer_pkt_dw12: int
  iqtimer_pkt_dw13: int
  iqtimer_pkt_dw14: int
  iqtimer_pkt_dw15: int
  iqtimer_pkt_dw16: int
  iqtimer_pkt_dw17: int
  iqtimer_pkt_dw18: int
  iqtimer_pkt_dw19: int
  iqtimer_pkt_dw20: int
  iqtimer_pkt_dw21: int
  iqtimer_pkt_dw22: int
  iqtimer_pkt_dw23: int
  iqtimer_pkt_dw24: int
  iqtimer_pkt_dw25: int
  iqtimer_pkt_dw26: int
  iqtimer_pkt_dw27: int
  iqtimer_pkt_dw28: int
  iqtimer_pkt_dw29: int
  iqtimer_pkt_dw30: int
  iqtimer_pkt_dw31: int
  reserved_225: int
  reserved_226: int
  reserved_227: int
  set_resources_header: int
  set_resources_dw1: int
  set_resources_dw2: int
  set_resources_dw3: int
  set_resources_dw4: int
  set_resources_dw5: int
  set_resources_dw6: int
  set_resources_dw7: int
  reserved_236: int
  reserved_237: int
  reserved_238: int
  reserved_239: int
  queue_doorbell_id0: int
  queue_doorbell_id1: int
  queue_doorbell_id2: int
  queue_doorbell_id3: int
  queue_doorbell_id4: int
  queue_doorbell_id5: int
  queue_doorbell_id6: int
  queue_doorbell_id7: int
  queue_doorbell_id8: int
  queue_doorbell_id9: int
  queue_doorbell_id10: int
  queue_doorbell_id11: int
  queue_doorbell_id12: int
  queue_doorbell_id13: int
  queue_doorbell_id14: int
  queue_doorbell_id15: int
  control_buf_addr_lo: int
  control_buf_addr_hi: int
  control_buf_wptr_lo: int
  control_buf_wptr_hi: int
  control_buf_dptr_lo: int
  control_buf_dptr_hi: int
  control_buf_num_entries: int
  draw_ring_addr_lo: int
  draw_ring_addr_hi: int
  reserved_265: int
  reserved_266: int
  reserved_267: int
  reserved_268: int
  reserved_269: int
  reserved_270: int
  reserved_271: int
  reserved_272: int
  reserved_273: int
  reserved_274: int
  reserved_275: int
  reserved_276: int
  reserved_277: int
  reserved_278: int
  reserved_279: int
  reserved_280: int
  reserved_281: int
  reserved_282: int
  reserved_283: int
  reserved_284: int
  reserved_285: int
  reserved_286: int
  reserved_287: int
  reserved_288: int
  reserved_289: int
  reserved_290: int
  reserved_291: int
  reserved_292: int
  reserved_293: int
  reserved_294: int
  reserved_295: int
  reserved_296: int
  reserved_297: int
  reserved_298: int
  reserved_299: int
  reserved_300: int
  reserved_301: int
  reserved_302: int
  reserved_303: int
  reserved_304: int
  reserved_305: int
  reserved_306: int
  reserved_307: int
  reserved_308: int
  reserved_309: int
  reserved_310: int
  reserved_311: int
  reserved_312: int
  reserved_313: int
  reserved_314: int
  reserved_315: int
  reserved_316: int
  reserved_317: int
  reserved_318: int
  reserved_319: int
  reserved_320: int
  reserved_321: int
  reserved_322: int
  reserved_323: int
  reserved_324: int
  reserved_325: int
  reserved_326: int
  reserved_327: int
  reserved_328: int
  reserved_329: int
  reserved_330: int
  reserved_331: int
  reserved_332: int
  reserved_333: int
  reserved_334: int
  reserved_335: int
  reserved_336: int
  reserved_337: int
  reserved_338: int
  reserved_339: int
  reserved_340: int
  reserved_341: int
  reserved_342: int
  reserved_343: int
  reserved_344: int
  reserved_345: int
  reserved_346: int
  reserved_347: int
  reserved_348: int
  reserved_349: int
  reserved_350: int
  reserved_351: int
  reserved_352: int
  reserved_353: int
  reserved_354: int
  reserved_355: int
  reserved_356: int
  reserved_357: int
  reserved_358: int
  reserved_359: int
  reserved_360: int
  reserved_361: int
  reserved_362: int
  reserved_363: int
  reserved_364: int
  reserved_365: int
  reserved_366: int
  reserved_367: int
  reserved_368: int
  reserved_369: int
  reserved_370: int
  reserved_371: int
  reserved_372: int
  reserved_373: int
  reserved_374: int
  reserved_375: int
  reserved_376: int
  reserved_377: int
  reserved_378: int
  reserved_379: int
  reserved_380: int
  reserved_381: int
  reserved_382: int
  reserved_383: int
  reserved_384: int
  reserved_385: int
  reserved_386: int
  reserved_387: int
  reserved_388: int
  reserved_389: int
  reserved_390: int
  reserved_391: int
  reserved_392: int
  reserved_393: int
  reserved_394: int
  reserved_395: int
  reserved_396: int
  reserved_397: int
  reserved_398: int
  reserved_399: int
  reserved_400: int
  reserved_401: int
  reserved_402: int
  reserved_403: int
  reserved_404: int
  reserved_405: int
  reserved_406: int
  reserved_407: int
  reserved_408: int
  reserved_409: int
  reserved_410: int
  reserved_411: int
  reserved_412: int
  reserved_413: int
  reserved_414: int
  reserved_415: int
  reserved_416: int
  reserved_417: int
  reserved_418: int
  reserved_419: int
  reserved_420: int
  reserved_421: int
  reserved_422: int
  reserved_423: int
  reserved_424: int
  reserved_425: int
  reserved_426: int
  reserved_427: int
  reserved_428: int
  reserved_429: int
  reserved_430: int
  reserved_431: int
  reserved_432: int
  reserved_433: int
  reserved_434: int
  reserved_435: int
  reserved_436: int
  reserved_437: int
  reserved_438: int
  reserved_439: int
  reserved_440: int
  reserved_441: int
  reserved_442: int
  reserved_443: int
  reserved_444: int
  reserved_445: int
  reserved_446: int
  reserved_447: int
  gws_0_val: int
  gws_1_val: int
  gws_2_val: int
  gws_3_val: int
  gws_4_val: int
  gws_5_val: int
  gws_6_val: int
  gws_7_val: int
  gws_8_val: int
  gws_9_val: int
  gws_10_val: int
  gws_11_val: int
  gws_12_val: int
  gws_13_val: int
  gws_14_val: int
  gws_15_val: int
  gws_16_val: int
  gws_17_val: int
  gws_18_val: int
  gws_19_val: int
  gws_20_val: int
  gws_21_val: int
  gws_22_val: int
  gws_23_val: int
  gws_24_val: int
  gws_25_val: int
  gws_26_val: int
  gws_27_val: int
  gws_28_val: int
  gws_29_val: int
  gws_30_val: int
  gws_31_val: int
  gws_32_val: int
  gws_33_val: int
  gws_34_val: int
  gws_35_val: int
  gws_36_val: int
  gws_37_val: int
  gws_38_val: int
  gws_39_val: int
  gws_40_val: int
  gws_41_val: int
  gws_42_val: int
  gws_43_val: int
  gws_44_val: int
  gws_45_val: int
  gws_46_val: int
  gws_47_val: int
  gws_48_val: int
  gws_49_val: int
  gws_50_val: int
  gws_51_val: int
  gws_52_val: int
  gws_53_val: int
  gws_54_val: int
  gws_55_val: int
  gws_56_val: int
  gws_57_val: int
  gws_58_val: int
  gws_59_val: int
  gws_60_val: int
  gws_61_val: int
  gws_62_val: int
  gws_63_val: int
struct_v11_compute_mqd.register_fields([('header', ctypes.c_uint32, 0), ('compute_dispatch_initiator', ctypes.c_uint32, 4), ('compute_dim_x', ctypes.c_uint32, 8), ('compute_dim_y', ctypes.c_uint32, 12), ('compute_dim_z', ctypes.c_uint32, 16), ('compute_start_x', ctypes.c_uint32, 20), ('compute_start_y', ctypes.c_uint32, 24), ('compute_start_z', ctypes.c_uint32, 28), ('compute_num_thread_x', ctypes.c_uint32, 32), ('compute_num_thread_y', ctypes.c_uint32, 36), ('compute_num_thread_z', ctypes.c_uint32, 40), ('compute_pipelinestat_enable', ctypes.c_uint32, 44), ('compute_perfcount_enable', ctypes.c_uint32, 48), ('compute_pgm_lo', ctypes.c_uint32, 52), ('compute_pgm_hi', ctypes.c_uint32, 56), ('compute_dispatch_pkt_addr_lo', ctypes.c_uint32, 60), ('compute_dispatch_pkt_addr_hi', ctypes.c_uint32, 64), ('compute_dispatch_scratch_base_lo', ctypes.c_uint32, 68), ('compute_dispatch_scratch_base_hi', ctypes.c_uint32, 72), ('compute_pgm_rsrc1', ctypes.c_uint32, 76), ('compute_pgm_rsrc2', ctypes.c_uint32, 80), ('compute_vmid', ctypes.c_uint32, 84), ('compute_resource_limits', ctypes.c_uint32, 88), ('compute_static_thread_mgmt_se0', ctypes.c_uint32, 92), ('compute_static_thread_mgmt_se1', ctypes.c_uint32, 96), ('compute_tmpring_size', ctypes.c_uint32, 100), ('compute_static_thread_mgmt_se2', ctypes.c_uint32, 104), ('compute_static_thread_mgmt_se3', ctypes.c_uint32, 108), ('compute_restart_x', ctypes.c_uint32, 112), ('compute_restart_y', ctypes.c_uint32, 116), ('compute_restart_z', ctypes.c_uint32, 120), ('compute_thread_trace_enable', ctypes.c_uint32, 124), ('compute_misc_reserved', ctypes.c_uint32, 128), ('compute_dispatch_id', ctypes.c_uint32, 132), ('compute_threadgroup_id', ctypes.c_uint32, 136), ('compute_req_ctrl', ctypes.c_uint32, 140), ('reserved_36', ctypes.c_uint32, 144), ('compute_user_accum_0', ctypes.c_uint32, 148), ('compute_user_accum_1', ctypes.c_uint32, 152), ('compute_user_accum_2', ctypes.c_uint32, 156), ('compute_user_accum_3', ctypes.c_uint32, 160), ('compute_pgm_rsrc3', ctypes.c_uint32, 164), ('compute_ddid_index', ctypes.c_uint32, 168), ('compute_shader_chksum', ctypes.c_uint32, 172), ('compute_static_thread_mgmt_se4', ctypes.c_uint32, 176), ('compute_static_thread_mgmt_se5', ctypes.c_uint32, 180), ('compute_static_thread_mgmt_se6', ctypes.c_uint32, 184), ('compute_static_thread_mgmt_se7', ctypes.c_uint32, 188), ('compute_dispatch_interleave', ctypes.c_uint32, 192), ('compute_relaunch', ctypes.c_uint32, 196), ('compute_wave_restore_addr_lo', ctypes.c_uint32, 200), ('compute_wave_restore_addr_hi', ctypes.c_uint32, 204), ('compute_wave_restore_control', ctypes.c_uint32, 208), ('reserved_53', ctypes.c_uint32, 212), ('reserved_54', ctypes.c_uint32, 216), ('reserved_55', ctypes.c_uint32, 220), ('reserved_56', ctypes.c_uint32, 224), ('reserved_57', ctypes.c_uint32, 228), ('reserved_58', ctypes.c_uint32, 232), ('reserved_59', ctypes.c_uint32, 236), ('reserved_60', ctypes.c_uint32, 240), ('reserved_61', ctypes.c_uint32, 244), ('reserved_62', ctypes.c_uint32, 248), ('reserved_63', ctypes.c_uint32, 252), ('reserved_64', ctypes.c_uint32, 256), ('compute_user_data_0', ctypes.c_uint32, 260), ('compute_user_data_1', ctypes.c_uint32, 264), ('compute_user_data_2', ctypes.c_uint32, 268), ('compute_user_data_3', ctypes.c_uint32, 272), ('compute_user_data_4', ctypes.c_uint32, 276), ('compute_user_data_5', ctypes.c_uint32, 280), ('compute_user_data_6', ctypes.c_uint32, 284), ('compute_user_data_7', ctypes.c_uint32, 288), ('compute_user_data_8', ctypes.c_uint32, 292), ('compute_user_data_9', ctypes.c_uint32, 296), ('compute_user_data_10', ctypes.c_uint32, 300), ('compute_user_data_11', ctypes.c_uint32, 304), ('compute_user_data_12', ctypes.c_uint32, 308), ('compute_user_data_13', ctypes.c_uint32, 312), ('compute_user_data_14', ctypes.c_uint32, 316), ('compute_user_data_15', ctypes.c_uint32, 320), ('cp_compute_csinvoc_count_lo', ctypes.c_uint32, 324), ('cp_compute_csinvoc_count_hi', ctypes.c_uint32, 328), ('reserved_83', ctypes.c_uint32, 332), ('reserved_84', ctypes.c_uint32, 336), ('reserved_85', ctypes.c_uint32, 340), ('cp_mqd_query_time_lo', ctypes.c_uint32, 344), ('cp_mqd_query_time_hi', ctypes.c_uint32, 348), ('cp_mqd_connect_start_time_lo', ctypes.c_uint32, 352), ('cp_mqd_connect_start_time_hi', ctypes.c_uint32, 356), ('cp_mqd_connect_end_time_lo', ctypes.c_uint32, 360), ('cp_mqd_connect_end_time_hi', ctypes.c_uint32, 364), ('cp_mqd_connect_end_wf_count', ctypes.c_uint32, 368), ('cp_mqd_connect_end_pq_rptr', ctypes.c_uint32, 372), ('cp_mqd_connect_end_pq_wptr', ctypes.c_uint32, 376), ('cp_mqd_connect_end_ib_rptr', ctypes.c_uint32, 380), ('cp_mqd_readindex_lo', ctypes.c_uint32, 384), ('cp_mqd_readindex_hi', ctypes.c_uint32, 388), ('cp_mqd_save_start_time_lo', ctypes.c_uint32, 392), ('cp_mqd_save_start_time_hi', ctypes.c_uint32, 396), ('cp_mqd_save_end_time_lo', ctypes.c_uint32, 400), ('cp_mqd_save_end_time_hi', ctypes.c_uint32, 404), ('cp_mqd_restore_start_time_lo', ctypes.c_uint32, 408), ('cp_mqd_restore_start_time_hi', ctypes.c_uint32, 412), ('cp_mqd_restore_end_time_lo', ctypes.c_uint32, 416), ('cp_mqd_restore_end_time_hi', ctypes.c_uint32, 420), ('disable_queue', ctypes.c_uint32, 424), ('reserved_107', ctypes.c_uint32, 428), ('gds_cs_ctxsw_cnt0', ctypes.c_uint32, 432), ('gds_cs_ctxsw_cnt1', ctypes.c_uint32, 436), ('gds_cs_ctxsw_cnt2', ctypes.c_uint32, 440), ('gds_cs_ctxsw_cnt3', ctypes.c_uint32, 444), ('reserved_112', ctypes.c_uint32, 448), ('reserved_113', ctypes.c_uint32, 452), ('cp_pq_exe_status_lo', ctypes.c_uint32, 456), ('cp_pq_exe_status_hi', ctypes.c_uint32, 460), ('cp_packet_id_lo', ctypes.c_uint32, 464), ('cp_packet_id_hi', ctypes.c_uint32, 468), ('cp_packet_exe_status_lo', ctypes.c_uint32, 472), ('cp_packet_exe_status_hi', ctypes.c_uint32, 476), ('gds_save_base_addr_lo', ctypes.c_uint32, 480), ('gds_save_base_addr_hi', ctypes.c_uint32, 484), ('gds_save_mask_lo', ctypes.c_uint32, 488), ('gds_save_mask_hi', ctypes.c_uint32, 492), ('ctx_save_base_addr_lo', ctypes.c_uint32, 496), ('ctx_save_base_addr_hi', ctypes.c_uint32, 500), ('reserved_126', ctypes.c_uint32, 504), ('reserved_127', ctypes.c_uint32, 508), ('cp_mqd_base_addr_lo', ctypes.c_uint32, 512), ('cp_mqd_base_addr_hi', ctypes.c_uint32, 516), ('cp_hqd_active', ctypes.c_uint32, 520), ('cp_hqd_vmid', ctypes.c_uint32, 524), ('cp_hqd_persistent_state', ctypes.c_uint32, 528), ('cp_hqd_pipe_priority', ctypes.c_uint32, 532), ('cp_hqd_queue_priority', ctypes.c_uint32, 536), ('cp_hqd_quantum', ctypes.c_uint32, 540), ('cp_hqd_pq_base_lo', ctypes.c_uint32, 544), ('cp_hqd_pq_base_hi', ctypes.c_uint32, 548), ('cp_hqd_pq_rptr', ctypes.c_uint32, 552), ('cp_hqd_pq_rptr_report_addr_lo', ctypes.c_uint32, 556), ('cp_hqd_pq_rptr_report_addr_hi', ctypes.c_uint32, 560), ('cp_hqd_pq_wptr_poll_addr_lo', ctypes.c_uint32, 564), ('cp_hqd_pq_wptr_poll_addr_hi', ctypes.c_uint32, 568), ('cp_hqd_pq_doorbell_control', ctypes.c_uint32, 572), ('reserved_144', ctypes.c_uint32, 576), ('cp_hqd_pq_control', ctypes.c_uint32, 580), ('cp_hqd_ib_base_addr_lo', ctypes.c_uint32, 584), ('cp_hqd_ib_base_addr_hi', ctypes.c_uint32, 588), ('cp_hqd_ib_rptr', ctypes.c_uint32, 592), ('cp_hqd_ib_control', ctypes.c_uint32, 596), ('cp_hqd_iq_timer', ctypes.c_uint32, 600), ('cp_hqd_iq_rptr', ctypes.c_uint32, 604), ('cp_hqd_dequeue_request', ctypes.c_uint32, 608), ('cp_hqd_dma_offload', ctypes.c_uint32, 612), ('cp_hqd_sema_cmd', ctypes.c_uint32, 616), ('cp_hqd_msg_type', ctypes.c_uint32, 620), ('cp_hqd_atomic0_preop_lo', ctypes.c_uint32, 624), ('cp_hqd_atomic0_preop_hi', ctypes.c_uint32, 628), ('cp_hqd_atomic1_preop_lo', ctypes.c_uint32, 632), ('cp_hqd_atomic1_preop_hi', ctypes.c_uint32, 636), ('cp_hqd_hq_status0', ctypes.c_uint32, 640), ('cp_hqd_hq_control0', ctypes.c_uint32, 644), ('cp_mqd_control', ctypes.c_uint32, 648), ('cp_hqd_hq_status1', ctypes.c_uint32, 652), ('cp_hqd_hq_control1', ctypes.c_uint32, 656), ('cp_hqd_eop_base_addr_lo', ctypes.c_uint32, 660), ('cp_hqd_eop_base_addr_hi', ctypes.c_uint32, 664), ('cp_hqd_eop_control', ctypes.c_uint32, 668), ('cp_hqd_eop_rptr', ctypes.c_uint32, 672), ('cp_hqd_eop_wptr', ctypes.c_uint32, 676), ('cp_hqd_eop_done_events', ctypes.c_uint32, 680), ('cp_hqd_ctx_save_base_addr_lo', ctypes.c_uint32, 684), ('cp_hqd_ctx_save_base_addr_hi', ctypes.c_uint32, 688), ('cp_hqd_ctx_save_control', ctypes.c_uint32, 692), ('cp_hqd_cntl_stack_offset', ctypes.c_uint32, 696), ('cp_hqd_cntl_stack_size', ctypes.c_uint32, 700), ('cp_hqd_wg_state_offset', ctypes.c_uint32, 704), ('cp_hqd_ctx_save_size', ctypes.c_uint32, 708), ('cp_hqd_gds_resource_state', ctypes.c_uint32, 712), ('cp_hqd_error', ctypes.c_uint32, 716), ('cp_hqd_eop_wptr_mem', ctypes.c_uint32, 720), ('cp_hqd_aql_control', ctypes.c_uint32, 724), ('cp_hqd_pq_wptr_lo', ctypes.c_uint32, 728), ('cp_hqd_pq_wptr_hi', ctypes.c_uint32, 732), ('reserved_184', ctypes.c_uint32, 736), ('reserved_185', ctypes.c_uint32, 740), ('reserved_186', ctypes.c_uint32, 744), ('reserved_187', ctypes.c_uint32, 748), ('reserved_188', ctypes.c_uint32, 752), ('reserved_189', ctypes.c_uint32, 756), ('reserved_190', ctypes.c_uint32, 760), ('reserved_191', ctypes.c_uint32, 764), ('iqtimer_pkt_header', ctypes.c_uint32, 768), ('iqtimer_pkt_dw0', ctypes.c_uint32, 772), ('iqtimer_pkt_dw1', ctypes.c_uint32, 776), ('iqtimer_pkt_dw2', ctypes.c_uint32, 780), ('iqtimer_pkt_dw3', ctypes.c_uint32, 784), ('iqtimer_pkt_dw4', ctypes.c_uint32, 788), ('iqtimer_pkt_dw5', ctypes.c_uint32, 792), ('iqtimer_pkt_dw6', ctypes.c_uint32, 796), ('iqtimer_pkt_dw7', ctypes.c_uint32, 800), ('iqtimer_pkt_dw8', ctypes.c_uint32, 804), ('iqtimer_pkt_dw9', ctypes.c_uint32, 808), ('iqtimer_pkt_dw10', ctypes.c_uint32, 812), ('iqtimer_pkt_dw11', ctypes.c_uint32, 816), ('iqtimer_pkt_dw12', ctypes.c_uint32, 820), ('iqtimer_pkt_dw13', ctypes.c_uint32, 824), ('iqtimer_pkt_dw14', ctypes.c_uint32, 828), ('iqtimer_pkt_dw15', ctypes.c_uint32, 832), ('iqtimer_pkt_dw16', ctypes.c_uint32, 836), ('iqtimer_pkt_dw17', ctypes.c_uint32, 840), ('iqtimer_pkt_dw18', ctypes.c_uint32, 844), ('iqtimer_pkt_dw19', ctypes.c_uint32, 848), ('iqtimer_pkt_dw20', ctypes.c_uint32, 852), ('iqtimer_pkt_dw21', ctypes.c_uint32, 856), ('iqtimer_pkt_dw22', ctypes.c_uint32, 860), ('iqtimer_pkt_dw23', ctypes.c_uint32, 864), ('iqtimer_pkt_dw24', ctypes.c_uint32, 868), ('iqtimer_pkt_dw25', ctypes.c_uint32, 872), ('iqtimer_pkt_dw26', ctypes.c_uint32, 876), ('iqtimer_pkt_dw27', ctypes.c_uint32, 880), ('iqtimer_pkt_dw28', ctypes.c_uint32, 884), ('iqtimer_pkt_dw29', ctypes.c_uint32, 888), ('iqtimer_pkt_dw30', ctypes.c_uint32, 892), ('iqtimer_pkt_dw31', ctypes.c_uint32, 896), ('reserved_225', ctypes.c_uint32, 900), ('reserved_226', ctypes.c_uint32, 904), ('reserved_227', ctypes.c_uint32, 908), ('set_resources_header', ctypes.c_uint32, 912), ('set_resources_dw1', ctypes.c_uint32, 916), ('set_resources_dw2', ctypes.c_uint32, 920), ('set_resources_dw3', ctypes.c_uint32, 924), ('set_resources_dw4', ctypes.c_uint32, 928), ('set_resources_dw5', ctypes.c_uint32, 932), ('set_resources_dw6', ctypes.c_uint32, 936), ('set_resources_dw7', ctypes.c_uint32, 940), ('reserved_236', ctypes.c_uint32, 944), ('reserved_237', ctypes.c_uint32, 948), ('reserved_238', ctypes.c_uint32, 952), ('reserved_239', ctypes.c_uint32, 956), ('queue_doorbell_id0', ctypes.c_uint32, 960), ('queue_doorbell_id1', ctypes.c_uint32, 964), ('queue_doorbell_id2', ctypes.c_uint32, 968), ('queue_doorbell_id3', ctypes.c_uint32, 972), ('queue_doorbell_id4', ctypes.c_uint32, 976), ('queue_doorbell_id5', ctypes.c_uint32, 980), ('queue_doorbell_id6', ctypes.c_uint32, 984), ('queue_doorbell_id7', ctypes.c_uint32, 988), ('queue_doorbell_id8', ctypes.c_uint32, 992), ('queue_doorbell_id9', ctypes.c_uint32, 996), ('queue_doorbell_id10', ctypes.c_uint32, 1000), ('queue_doorbell_id11', ctypes.c_uint32, 1004), ('queue_doorbell_id12', ctypes.c_uint32, 1008), ('queue_doorbell_id13', ctypes.c_uint32, 1012), ('queue_doorbell_id14', ctypes.c_uint32, 1016), ('queue_doorbell_id15', ctypes.c_uint32, 1020), ('control_buf_addr_lo', ctypes.c_uint32, 1024), ('control_buf_addr_hi', ctypes.c_uint32, 1028), ('control_buf_wptr_lo', ctypes.c_uint32, 1032), ('control_buf_wptr_hi', ctypes.c_uint32, 1036), ('control_buf_dptr_lo', ctypes.c_uint32, 1040), ('control_buf_dptr_hi', ctypes.c_uint32, 1044), ('control_buf_num_entries', ctypes.c_uint32, 1048), ('draw_ring_addr_lo', ctypes.c_uint32, 1052), ('draw_ring_addr_hi', ctypes.c_uint32, 1056), ('reserved_265', ctypes.c_uint32, 1060), ('reserved_266', ctypes.c_uint32, 1064), ('reserved_267', ctypes.c_uint32, 1068), ('reserved_268', ctypes.c_uint32, 1072), ('reserved_269', ctypes.c_uint32, 1076), ('reserved_270', ctypes.c_uint32, 1080), ('reserved_271', ctypes.c_uint32, 1084), ('reserved_272', ctypes.c_uint32, 1088), ('reserved_273', ctypes.c_uint32, 1092), ('reserved_274', ctypes.c_uint32, 1096), ('reserved_275', ctypes.c_uint32, 1100), ('reserved_276', ctypes.c_uint32, 1104), ('reserved_277', ctypes.c_uint32, 1108), ('reserved_278', ctypes.c_uint32, 1112), ('reserved_279', ctypes.c_uint32, 1116), ('reserved_280', ctypes.c_uint32, 1120), ('reserved_281', ctypes.c_uint32, 1124), ('reserved_282', ctypes.c_uint32, 1128), ('reserved_283', ctypes.c_uint32, 1132), ('reserved_284', ctypes.c_uint32, 1136), ('reserved_285', ctypes.c_uint32, 1140), ('reserved_286', ctypes.c_uint32, 1144), ('reserved_287', ctypes.c_uint32, 1148), ('reserved_288', ctypes.c_uint32, 1152), ('reserved_289', ctypes.c_uint32, 1156), ('reserved_290', ctypes.c_uint32, 1160), ('reserved_291', ctypes.c_uint32, 1164), ('reserved_292', ctypes.c_uint32, 1168), ('reserved_293', ctypes.c_uint32, 1172), ('reserved_294', ctypes.c_uint32, 1176), ('reserved_295', ctypes.c_uint32, 1180), ('reserved_296', ctypes.c_uint32, 1184), ('reserved_297', ctypes.c_uint32, 1188), ('reserved_298', ctypes.c_uint32, 1192), ('reserved_299', ctypes.c_uint32, 1196), ('reserved_300', ctypes.c_uint32, 1200), ('reserved_301', ctypes.c_uint32, 1204), ('reserved_302', ctypes.c_uint32, 1208), ('reserved_303', ctypes.c_uint32, 1212), ('reserved_304', ctypes.c_uint32, 1216), ('reserved_305', ctypes.c_uint32, 1220), ('reserved_306', ctypes.c_uint32, 1224), ('reserved_307', ctypes.c_uint32, 1228), ('reserved_308', ctypes.c_uint32, 1232), ('reserved_309', ctypes.c_uint32, 1236), ('reserved_310', ctypes.c_uint32, 1240), ('reserved_311', ctypes.c_uint32, 1244), ('reserved_312', ctypes.c_uint32, 1248), ('reserved_313', ctypes.c_uint32, 1252), ('reserved_314', ctypes.c_uint32, 1256), ('reserved_315', ctypes.c_uint32, 1260), ('reserved_316', ctypes.c_uint32, 1264), ('reserved_317', ctypes.c_uint32, 1268), ('reserved_318', ctypes.c_uint32, 1272), ('reserved_319', ctypes.c_uint32, 1276), ('reserved_320', ctypes.c_uint32, 1280), ('reserved_321', ctypes.c_uint32, 1284), ('reserved_322', ctypes.c_uint32, 1288), ('reserved_323', ctypes.c_uint32, 1292), ('reserved_324', ctypes.c_uint32, 1296), ('reserved_325', ctypes.c_uint32, 1300), ('reserved_326', ctypes.c_uint32, 1304), ('reserved_327', ctypes.c_uint32, 1308), ('reserved_328', ctypes.c_uint32, 1312), ('reserved_329', ctypes.c_uint32, 1316), ('reserved_330', ctypes.c_uint32, 1320), ('reserved_331', ctypes.c_uint32, 1324), ('reserved_332', ctypes.c_uint32, 1328), ('reserved_333', ctypes.c_uint32, 1332), ('reserved_334', ctypes.c_uint32, 1336), ('reserved_335', ctypes.c_uint32, 1340), ('reserved_336', ctypes.c_uint32, 1344), ('reserved_337', ctypes.c_uint32, 1348), ('reserved_338', ctypes.c_uint32, 1352), ('reserved_339', ctypes.c_uint32, 1356), ('reserved_340', ctypes.c_uint32, 1360), ('reserved_341', ctypes.c_uint32, 1364), ('reserved_342', ctypes.c_uint32, 1368), ('reserved_343', ctypes.c_uint32, 1372), ('reserved_344', ctypes.c_uint32, 1376), ('reserved_345', ctypes.c_uint32, 1380), ('reserved_346', ctypes.c_uint32, 1384), ('reserved_347', ctypes.c_uint32, 1388), ('reserved_348', ctypes.c_uint32, 1392), ('reserved_349', ctypes.c_uint32, 1396), ('reserved_350', ctypes.c_uint32, 1400), ('reserved_351', ctypes.c_uint32, 1404), ('reserved_352', ctypes.c_uint32, 1408), ('reserved_353', ctypes.c_uint32, 1412), ('reserved_354', ctypes.c_uint32, 1416), ('reserved_355', ctypes.c_uint32, 1420), ('reserved_356', ctypes.c_uint32, 1424), ('reserved_357', ctypes.c_uint32, 1428), ('reserved_358', ctypes.c_uint32, 1432), ('reserved_359', ctypes.c_uint32, 1436), ('reserved_360', ctypes.c_uint32, 1440), ('reserved_361', ctypes.c_uint32, 1444), ('reserved_362', ctypes.c_uint32, 1448), ('reserved_363', ctypes.c_uint32, 1452), ('reserved_364', ctypes.c_uint32, 1456), ('reserved_365', ctypes.c_uint32, 1460), ('reserved_366', ctypes.c_uint32, 1464), ('reserved_367', ctypes.c_uint32, 1468), ('reserved_368', ctypes.c_uint32, 1472), ('reserved_369', ctypes.c_uint32, 1476), ('reserved_370', ctypes.c_uint32, 1480), ('reserved_371', ctypes.c_uint32, 1484), ('reserved_372', ctypes.c_uint32, 1488), ('reserved_373', ctypes.c_uint32, 1492), ('reserved_374', ctypes.c_uint32, 1496), ('reserved_375', ctypes.c_uint32, 1500), ('reserved_376', ctypes.c_uint32, 1504), ('reserved_377', ctypes.c_uint32, 1508), ('reserved_378', ctypes.c_uint32, 1512), ('reserved_379', ctypes.c_uint32, 1516), ('reserved_380', ctypes.c_uint32, 1520), ('reserved_381', ctypes.c_uint32, 1524), ('reserved_382', ctypes.c_uint32, 1528), ('reserved_383', ctypes.c_uint32, 1532), ('reserved_384', ctypes.c_uint32, 1536), ('reserved_385', ctypes.c_uint32, 1540), ('reserved_386', ctypes.c_uint32, 1544), ('reserved_387', ctypes.c_uint32, 1548), ('reserved_388', ctypes.c_uint32, 1552), ('reserved_389', ctypes.c_uint32, 1556), ('reserved_390', ctypes.c_uint32, 1560), ('reserved_391', ctypes.c_uint32, 1564), ('reserved_392', ctypes.c_uint32, 1568), ('reserved_393', ctypes.c_uint32, 1572), ('reserved_394', ctypes.c_uint32, 1576), ('reserved_395', ctypes.c_uint32, 1580), ('reserved_396', ctypes.c_uint32, 1584), ('reserved_397', ctypes.c_uint32, 1588), ('reserved_398', ctypes.c_uint32, 1592), ('reserved_399', ctypes.c_uint32, 1596), ('reserved_400', ctypes.c_uint32, 1600), ('reserved_401', ctypes.c_uint32, 1604), ('reserved_402', ctypes.c_uint32, 1608), ('reserved_403', ctypes.c_uint32, 1612), ('reserved_404', ctypes.c_uint32, 1616), ('reserved_405', ctypes.c_uint32, 1620), ('reserved_406', ctypes.c_uint32, 1624), ('reserved_407', ctypes.c_uint32, 1628), ('reserved_408', ctypes.c_uint32, 1632), ('reserved_409', ctypes.c_uint32, 1636), ('reserved_410', ctypes.c_uint32, 1640), ('reserved_411', ctypes.c_uint32, 1644), ('reserved_412', ctypes.c_uint32, 1648), ('reserved_413', ctypes.c_uint32, 1652), ('reserved_414', ctypes.c_uint32, 1656), ('reserved_415', ctypes.c_uint32, 1660), ('reserved_416', ctypes.c_uint32, 1664), ('reserved_417', ctypes.c_uint32, 1668), ('reserved_418', ctypes.c_uint32, 1672), ('reserved_419', ctypes.c_uint32, 1676), ('reserved_420', ctypes.c_uint32, 1680), ('reserved_421', ctypes.c_uint32, 1684), ('reserved_422', ctypes.c_uint32, 1688), ('reserved_423', ctypes.c_uint32, 1692), ('reserved_424', ctypes.c_uint32, 1696), ('reserved_425', ctypes.c_uint32, 1700), ('reserved_426', ctypes.c_uint32, 1704), ('reserved_427', ctypes.c_uint32, 1708), ('reserved_428', ctypes.c_uint32, 1712), ('reserved_429', ctypes.c_uint32, 1716), ('reserved_430', ctypes.c_uint32, 1720), ('reserved_431', ctypes.c_uint32, 1724), ('reserved_432', ctypes.c_uint32, 1728), ('reserved_433', ctypes.c_uint32, 1732), ('reserved_434', ctypes.c_uint32, 1736), ('reserved_435', ctypes.c_uint32, 1740), ('reserved_436', ctypes.c_uint32, 1744), ('reserved_437', ctypes.c_uint32, 1748), ('reserved_438', ctypes.c_uint32, 1752), ('reserved_439', ctypes.c_uint32, 1756), ('reserved_440', ctypes.c_uint32, 1760), ('reserved_441', ctypes.c_uint32, 1764), ('reserved_442', ctypes.c_uint32, 1768), ('reserved_443', ctypes.c_uint32, 1772), ('reserved_444', ctypes.c_uint32, 1776), ('reserved_445', ctypes.c_uint32, 1780), ('reserved_446', ctypes.c_uint32, 1784), ('reserved_447', ctypes.c_uint32, 1788), ('gws_0_val', ctypes.c_uint32, 1792), ('gws_1_val', ctypes.c_uint32, 1796), ('gws_2_val', ctypes.c_uint32, 1800), ('gws_3_val', ctypes.c_uint32, 1804), ('gws_4_val', ctypes.c_uint32, 1808), ('gws_5_val', ctypes.c_uint32, 1812), ('gws_6_val', ctypes.c_uint32, 1816), ('gws_7_val', ctypes.c_uint32, 1820), ('gws_8_val', ctypes.c_uint32, 1824), ('gws_9_val', ctypes.c_uint32, 1828), ('gws_10_val', ctypes.c_uint32, 1832), ('gws_11_val', ctypes.c_uint32, 1836), ('gws_12_val', ctypes.c_uint32, 1840), ('gws_13_val', ctypes.c_uint32, 1844), ('gws_14_val', ctypes.c_uint32, 1848), ('gws_15_val', ctypes.c_uint32, 1852), ('gws_16_val', ctypes.c_uint32, 1856), ('gws_17_val', ctypes.c_uint32, 1860), ('gws_18_val', ctypes.c_uint32, 1864), ('gws_19_val', ctypes.c_uint32, 1868), ('gws_20_val', ctypes.c_uint32, 1872), ('gws_21_val', ctypes.c_uint32, 1876), ('gws_22_val', ctypes.c_uint32, 1880), ('gws_23_val', ctypes.c_uint32, 1884), ('gws_24_val', ctypes.c_uint32, 1888), ('gws_25_val', ctypes.c_uint32, 1892), ('gws_26_val', ctypes.c_uint32, 1896), ('gws_27_val', ctypes.c_uint32, 1900), ('gws_28_val', ctypes.c_uint32, 1904), ('gws_29_val', ctypes.c_uint32, 1908), ('gws_30_val', ctypes.c_uint32, 1912), ('gws_31_val', ctypes.c_uint32, 1916), ('gws_32_val', ctypes.c_uint32, 1920), ('gws_33_val', ctypes.c_uint32, 1924), ('gws_34_val', ctypes.c_uint32, 1928), ('gws_35_val', ctypes.c_uint32, 1932), ('gws_36_val', ctypes.c_uint32, 1936), ('gws_37_val', ctypes.c_uint32, 1940), ('gws_38_val', ctypes.c_uint32, 1944), ('gws_39_val', ctypes.c_uint32, 1948), ('gws_40_val', ctypes.c_uint32, 1952), ('gws_41_val', ctypes.c_uint32, 1956), ('gws_42_val', ctypes.c_uint32, 1960), ('gws_43_val', ctypes.c_uint32, 1964), ('gws_44_val', ctypes.c_uint32, 1968), ('gws_45_val', ctypes.c_uint32, 1972), ('gws_46_val', ctypes.c_uint32, 1976), ('gws_47_val', ctypes.c_uint32, 1980), ('gws_48_val', ctypes.c_uint32, 1984), ('gws_49_val', ctypes.c_uint32, 1988), ('gws_50_val', ctypes.c_uint32, 1992), ('gws_51_val', ctypes.c_uint32, 1996), ('gws_52_val', ctypes.c_uint32, 2000), ('gws_53_val', ctypes.c_uint32, 2004), ('gws_54_val', ctypes.c_uint32, 2008), ('gws_55_val', ctypes.c_uint32, 2012), ('gws_56_val', ctypes.c_uint32, 2016), ('gws_57_val', ctypes.c_uint32, 2020), ('gws_58_val', ctypes.c_uint32, 2024), ('gws_59_val', ctypes.c_uint32, 2028), ('gws_60_val', ctypes.c_uint32, 2032), ('gws_61_val', ctypes.c_uint32, 2036), ('gws_62_val', ctypes.c_uint32, 2040), ('gws_63_val', ctypes.c_uint32, 2044)])
@c.record
class struct_v12_gfx_mqd(c.Struct):
  SIZE = 2048
  shadow_base_lo: int
  shadow_base_hi: int
  reserved_2: int
  reserved_3: int
  fw_work_area_base_lo: int
  fw_work_area_base_hi: int
  shadow_initialized: int
  ib_vmid: int
  reserved_8: int
  reserved_9: int
  reserved_10: int
  reserved_11: int
  reserved_12: int
  reserved_13: int
  reserved_14: int
  reserved_15: int
  reserved_16: int
  reserved_17: int
  reserved_18: int
  reserved_19: int
  reserved_20: int
  reserved_21: int
  reserved_22: int
  reserved_23: int
  reserved_24: int
  reserved_25: int
  reserved_26: int
  reserved_27: int
  reserved_28: int
  reserved_29: int
  reserved_30: int
  reserved_31: int
  reserved_32: int
  reserved_33: int
  reserved_34: int
  reserved_35: int
  reserved_36: int
  reserved_37: int
  reserved_38: int
  reserved_39: int
  reserved_40: int
  reserved_41: int
  reserved_42: int
  reserved_43: int
  reserved_44: int
  reserved_45: int
  reserved_46: int
  reserved_47: int
  reserved_48: int
  reserved_49: int
  reserved_50: int
  reserved_51: int
  reserved_52: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  reserved_59: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  reserved_65: int
  reserved_66: int
  reserved_67: int
  reserved_68: int
  reserved_69: int
  reserved_70: int
  reserved_71: int
  reserved_72: int
  reserved_73: int
  reserved_74: int
  reserved_75: int
  reserved_76: int
  reserved_77: int
  reserved_78: int
  reserved_79: int
  reserved_80: int
  reserved_81: int
  reserved_82: int
  reserved_83: int
  checksum_lo: int
  checksum_hi: int
  cp_mqd_query_time_lo: int
  cp_mqd_query_time_hi: int
  reserved_88: int
  reserved_89: int
  reserved_90: int
  reserved_91: int
  cp_mqd_query_wave_count: int
  cp_mqd_query_gfx_hqd_rptr: int
  cp_mqd_query_gfx_hqd_wptr: int
  cp_mqd_query_gfx_hqd_offset: int
  reserved_96: int
  reserved_97: int
  reserved_98: int
  reserved_99: int
  reserved_100: int
  reserved_101: int
  reserved_102: int
  reserved_103: int
  task_shader_control_buf_addr_lo: int
  task_shader_control_buf_addr_hi: int
  task_shader_read_rptr_lo: int
  task_shader_read_rptr_hi: int
  task_shader_num_entries: int
  task_shader_num_entries_bits: int
  task_shader_ring_buffer_addr_lo: int
  task_shader_ring_buffer_addr_hi: int
  reserved_112: int
  reserved_113: int
  reserved_114: int
  reserved_115: int
  reserved_116: int
  reserved_117: int
  reserved_118: int
  reserved_119: int
  reserved_120: int
  reserved_121: int
  reserved_122: int
  reserved_123: int
  reserved_124: int
  reserved_125: int
  reserved_126: int
  reserved_127: int
  cp_mqd_base_addr: int
  cp_mqd_base_addr_hi: int
  cp_gfx_hqd_active: int
  cp_gfx_hqd_vmid: int
  reserved_132: int
  reserved_133: int
  cp_gfx_hqd_queue_priority: int
  cp_gfx_hqd_quantum: int
  cp_gfx_hqd_base: int
  cp_gfx_hqd_base_hi: int
  cp_gfx_hqd_rptr: int
  cp_gfx_hqd_rptr_addr: int
  cp_gfx_hqd_rptr_addr_hi: int
  cp_rb_wptr_poll_addr_lo: int
  cp_rb_wptr_poll_addr_hi: int
  cp_rb_doorbell_control: int
  cp_gfx_hqd_offset: int
  cp_gfx_hqd_cntl: int
  reserved_146: int
  reserved_147: int
  cp_gfx_hqd_csmd_rptr: int
  cp_gfx_hqd_wptr: int
  cp_gfx_hqd_wptr_hi: int
  reserved_151: int
  reserved_152: int
  reserved_153: int
  reserved_154: int
  reserved_155: int
  cp_gfx_hqd_mapped: int
  cp_gfx_hqd_que_mgr_control: int
  reserved_158: int
  reserved_159: int
  cp_gfx_hqd_hq_status0: int
  cp_gfx_hqd_hq_control0: int
  cp_gfx_mqd_control: int
  reserved_163: int
  reserved_164: int
  reserved_165: int
  reserved_166: int
  reserved_167: int
  reserved_168: int
  reserved_169: int
  reserved_170: int
  reserved_171: int
  reserved_172: int
  reserved_173: int
  reserved_174: int
  reserved_175: int
  reserved_176: int
  reserved_177: int
  reserved_178: int
  reserved_179: int
  reserved_180: int
  reserved_181: int
  reserved_182: int
  reserved_183: int
  reserved_184: int
  reserved_185: int
  reserved_186: int
  reserved_187: int
  reserved_188: int
  reserved_189: int
  reserved_190: int
  reserved_191: int
  reserved_192: int
  reserved_193: int
  reserved_194: int
  reserved_195: int
  reserved_196: int
  reserved_197: int
  reserved_198: int
  reserved_199: int
  reserved_200: int
  reserved_201: int
  reserved_202: int
  reserved_203: int
  reserved_204: int
  reserved_205: int
  reserved_206: int
  reserved_207: int
  reserved_208: int
  reserved_209: int
  reserved_210: int
  reserved_211: int
  reserved_212: int
  reserved_213: int
  reserved_214: int
  reserved_215: int
  reserved_216: int
  reserved_217: int
  reserved_218: int
  reserved_219: int
  reserved_220: int
  reserved_221: int
  reserved_222: int
  reserved_223: int
  reserved_224: int
  reserved_225: int
  reserved_226: int
  reserved_227: int
  reserved_228: int
  reserved_229: int
  reserved_230: int
  reserved_231: int
  reserved_232: int
  reserved_233: int
  reserved_234: int
  reserved_235: int
  reserved_236: int
  reserved_237: int
  reserved_238: int
  reserved_239: int
  reserved_240: int
  reserved_241: int
  reserved_242: int
  reserved_243: int
  reserved_244: int
  reserved_245: int
  reserved_246: int
  reserved_247: int
  reserved_248: int
  reserved_249: int
  reserved_250: int
  reserved_251: int
  reserved_252: int
  reserved_253: int
  reserved_254: int
  reserved_255: int
  reserved_256: int
  reserved_257: int
  reserved_258: int
  reserved_259: int
  reserved_260: int
  reserved_261: int
  reserved_262: int
  reserved_263: int
  reserved_264: int
  reserved_265: int
  reserved_266: int
  reserved_267: int
  reserved_268: int
  reserved_269: int
  reserved_270: int
  reserved_271: int
  dfwx_flags: int
  dfwx_slot: int
  dfwx_client_data_addr_lo: int
  dfwx_client_data_addr_hi: int
  reserved_276: int
  reserved_277: int
  reserved_278: int
  reserved_279: int
  reserved_280: int
  reserved_281: int
  reserved_282: int
  reserved_283: int
  reserved_284: int
  reserved_285: int
  reserved_286: int
  reserved_287: int
  reserved_288: int
  reserved_289: int
  reserved_290: int
  reserved_291: int
  reserved_292: int
  reserved_293: int
  reserved_294: int
  reserved_295: int
  reserved_296: int
  reserved_297: int
  reserved_298: int
  reserved_299: int
  reserved_300: int
  reserved_301: int
  reserved_302: int
  reserved_303: int
  reserved_304: int
  reserved_305: int
  reserved_306: int
  reserved_307: int
  reserved_308: int
  reserved_309: int
  reserved_310: int
  reserved_311: int
  reserved_312: int
  reserved_313: int
  reserved_314: int
  reserved_315: int
  reserved_316: int
  reserved_317: int
  reserved_318: int
  reserved_319: int
  reserved_320: int
  reserved_321: int
  reserved_322: int
  reserved_323: int
  reserved_324: int
  reserved_325: int
  reserved_326: int
  reserved_327: int
  reserved_328: int
  reserved_329: int
  reserved_330: int
  reserved_331: int
  reserved_332: int
  reserved_333: int
  reserved_334: int
  reserved_335: int
  reserved_336: int
  reserved_337: int
  reserved_338: int
  reserved_339: int
  reserved_340: int
  reserved_341: int
  reserved_342: int
  reserved_343: int
  reserved_344: int
  reserved_345: int
  reserved_346: int
  reserved_347: int
  reserved_348: int
  reserved_349: int
  reserved_350: int
  reserved_351: int
  reserved_352: int
  reserved_353: int
  reserved_354: int
  reserved_355: int
  reserved_356: int
  reserved_357: int
  reserved_358: int
  reserved_359: int
  reserved_360: int
  reserved_361: int
  reserved_362: int
  reserved_363: int
  reserved_364: int
  reserved_365: int
  reserved_366: int
  reserved_367: int
  reserved_368: int
  reserved_369: int
  reserved_370: int
  reserved_371: int
  reserved_372: int
  reserved_373: int
  reserved_374: int
  reserved_375: int
  reserved_376: int
  reserved_377: int
  reserved_378: int
  reserved_379: int
  reserved_380: int
  reserved_381: int
  reserved_382: int
  reserved_383: int
  reserved_384: int
  reserved_385: int
  reserved_386: int
  reserved_387: int
  reserved_388: int
  reserved_389: int
  reserved_390: int
  reserved_391: int
  reserved_392: int
  reserved_393: int
  reserved_394: int
  reserved_395: int
  reserved_396: int
  reserved_397: int
  reserved_398: int
  reserved_399: int
  reserved_400: int
  reserved_401: int
  reserved_402: int
  reserved_403: int
  reserved_404: int
  reserved_405: int
  reserved_406: int
  reserved_407: int
  reserved_408: int
  reserved_409: int
  reserved_410: int
  reserved_411: int
  reserved_412: int
  reserved_413: int
  reserved_414: int
  reserved_415: int
  reserved_416: int
  reserved_417: int
  reserved_418: int
  reserved_419: int
  reserved_420: int
  reserved_421: int
  reserved_422: int
  reserved_423: int
  reserved_424: int
  reserved_425: int
  reserved_426: int
  reserved_427: int
  reserved_428: int
  reserved_429: int
  reserved_430: int
  reserved_431: int
  reserved_432: int
  reserved_433: int
  reserved_434: int
  reserved_435: int
  reserved_436: int
  reserved_437: int
  reserved_438: int
  reserved_439: int
  reserved_440: int
  reserved_441: int
  reserved_442: int
  reserved_443: int
  reserved_444: int
  reserved_445: int
  reserved_446: int
  reserved_447: int
  reserved_448: int
  reserved_449: int
  reserved_450: int
  reserved_451: int
  reserved_452: int
  reserved_453: int
  reserved_454: int
  reserved_455: int
  reserved_456: int
  reserved_457: int
  reserved_458: int
  reserved_459: int
  reserved_460: int
  reserved_461: int
  reserved_462: int
  reserved_463: int
  reserved_464: int
  reserved_465: int
  reserved_466: int
  reserved_467: int
  reserved_468: int
  reserved_469: int
  reserved_470: int
  reserved_471: int
  reserved_472: int
  reserved_473: int
  reserved_474: int
  reserved_475: int
  reserved_476: int
  reserved_477: int
  reserved_478: int
  reserved_479: int
  reserved_480: int
  reserved_481: int
  reserved_482: int
  reserved_483: int
  reserved_484: int
  reserved_485: int
  reserved_486: int
  reserved_487: int
  reserved_488: int
  reserved_489: int
  reserved_490: int
  reserved_491: int
  reserved_492: int
  reserved_493: int
  reserved_494: int
  reserved_495: int
  reserved_496: int
  reserved_497: int
  reserved_498: int
  reserved_499: int
  reserved_500: int
  reserved_501: int
  reserved_502: int
  reserved_503: int
  reserved_504: int
  reserved_505: int
  reserved_506: int
  reserved_507: int
  reserved_508: int
  reserved_509: int
  reserved_510: int
  reserved_511: int
uint32_t: TypeAlias = ctypes.c_uint32
struct_v12_gfx_mqd.register_fields([('shadow_base_lo', uint32_t, 0), ('shadow_base_hi', uint32_t, 4), ('reserved_2', uint32_t, 8), ('reserved_3', uint32_t, 12), ('fw_work_area_base_lo', uint32_t, 16), ('fw_work_area_base_hi', uint32_t, 20), ('shadow_initialized', uint32_t, 24), ('ib_vmid', uint32_t, 28), ('reserved_8', uint32_t, 32), ('reserved_9', uint32_t, 36), ('reserved_10', uint32_t, 40), ('reserved_11', uint32_t, 44), ('reserved_12', uint32_t, 48), ('reserved_13', uint32_t, 52), ('reserved_14', uint32_t, 56), ('reserved_15', uint32_t, 60), ('reserved_16', uint32_t, 64), ('reserved_17', uint32_t, 68), ('reserved_18', uint32_t, 72), ('reserved_19', uint32_t, 76), ('reserved_20', uint32_t, 80), ('reserved_21', uint32_t, 84), ('reserved_22', uint32_t, 88), ('reserved_23', uint32_t, 92), ('reserved_24', uint32_t, 96), ('reserved_25', uint32_t, 100), ('reserved_26', uint32_t, 104), ('reserved_27', uint32_t, 108), ('reserved_28', uint32_t, 112), ('reserved_29', uint32_t, 116), ('reserved_30', uint32_t, 120), ('reserved_31', uint32_t, 124), ('reserved_32', uint32_t, 128), ('reserved_33', uint32_t, 132), ('reserved_34', uint32_t, 136), ('reserved_35', uint32_t, 140), ('reserved_36', uint32_t, 144), ('reserved_37', uint32_t, 148), ('reserved_38', uint32_t, 152), ('reserved_39', uint32_t, 156), ('reserved_40', uint32_t, 160), ('reserved_41', uint32_t, 164), ('reserved_42', uint32_t, 168), ('reserved_43', uint32_t, 172), ('reserved_44', uint32_t, 176), ('reserved_45', uint32_t, 180), ('reserved_46', uint32_t, 184), ('reserved_47', uint32_t, 188), ('reserved_48', uint32_t, 192), ('reserved_49', uint32_t, 196), ('reserved_50', uint32_t, 200), ('reserved_51', uint32_t, 204), ('reserved_52', uint32_t, 208), ('reserved_53', uint32_t, 212), ('reserved_54', uint32_t, 216), ('reserved_55', uint32_t, 220), ('reserved_56', uint32_t, 224), ('reserved_57', uint32_t, 228), ('reserved_58', uint32_t, 232), ('reserved_59', uint32_t, 236), ('reserved_60', uint32_t, 240), ('reserved_61', uint32_t, 244), ('reserved_62', uint32_t, 248), ('reserved_63', uint32_t, 252), ('reserved_64', uint32_t, 256), ('reserved_65', uint32_t, 260), ('reserved_66', uint32_t, 264), ('reserved_67', uint32_t, 268), ('reserved_68', uint32_t, 272), ('reserved_69', uint32_t, 276), ('reserved_70', uint32_t, 280), ('reserved_71', uint32_t, 284), ('reserved_72', uint32_t, 288), ('reserved_73', uint32_t, 292), ('reserved_74', uint32_t, 296), ('reserved_75', uint32_t, 300), ('reserved_76', uint32_t, 304), ('reserved_77', uint32_t, 308), ('reserved_78', uint32_t, 312), ('reserved_79', uint32_t, 316), ('reserved_80', uint32_t, 320), ('reserved_81', uint32_t, 324), ('reserved_82', uint32_t, 328), ('reserved_83', uint32_t, 332), ('checksum_lo', uint32_t, 336), ('checksum_hi', uint32_t, 340), ('cp_mqd_query_time_lo', uint32_t, 344), ('cp_mqd_query_time_hi', uint32_t, 348), ('reserved_88', uint32_t, 352), ('reserved_89', uint32_t, 356), ('reserved_90', uint32_t, 360), ('reserved_91', uint32_t, 364), ('cp_mqd_query_wave_count', uint32_t, 368), ('cp_mqd_query_gfx_hqd_rptr', uint32_t, 372), ('cp_mqd_query_gfx_hqd_wptr', uint32_t, 376), ('cp_mqd_query_gfx_hqd_offset', uint32_t, 380), ('reserved_96', uint32_t, 384), ('reserved_97', uint32_t, 388), ('reserved_98', uint32_t, 392), ('reserved_99', uint32_t, 396), ('reserved_100', uint32_t, 400), ('reserved_101', uint32_t, 404), ('reserved_102', uint32_t, 408), ('reserved_103', uint32_t, 412), ('task_shader_control_buf_addr_lo', uint32_t, 416), ('task_shader_control_buf_addr_hi', uint32_t, 420), ('task_shader_read_rptr_lo', uint32_t, 424), ('task_shader_read_rptr_hi', uint32_t, 428), ('task_shader_num_entries', uint32_t, 432), ('task_shader_num_entries_bits', uint32_t, 436), ('task_shader_ring_buffer_addr_lo', uint32_t, 440), ('task_shader_ring_buffer_addr_hi', uint32_t, 444), ('reserved_112', uint32_t, 448), ('reserved_113', uint32_t, 452), ('reserved_114', uint32_t, 456), ('reserved_115', uint32_t, 460), ('reserved_116', uint32_t, 464), ('reserved_117', uint32_t, 468), ('reserved_118', uint32_t, 472), ('reserved_119', uint32_t, 476), ('reserved_120', uint32_t, 480), ('reserved_121', uint32_t, 484), ('reserved_122', uint32_t, 488), ('reserved_123', uint32_t, 492), ('reserved_124', uint32_t, 496), ('reserved_125', uint32_t, 500), ('reserved_126', uint32_t, 504), ('reserved_127', uint32_t, 508), ('cp_mqd_base_addr', uint32_t, 512), ('cp_mqd_base_addr_hi', uint32_t, 516), ('cp_gfx_hqd_active', uint32_t, 520), ('cp_gfx_hqd_vmid', uint32_t, 524), ('reserved_132', uint32_t, 528), ('reserved_133', uint32_t, 532), ('cp_gfx_hqd_queue_priority', uint32_t, 536), ('cp_gfx_hqd_quantum', uint32_t, 540), ('cp_gfx_hqd_base', uint32_t, 544), ('cp_gfx_hqd_base_hi', uint32_t, 548), ('cp_gfx_hqd_rptr', uint32_t, 552), ('cp_gfx_hqd_rptr_addr', uint32_t, 556), ('cp_gfx_hqd_rptr_addr_hi', uint32_t, 560), ('cp_rb_wptr_poll_addr_lo', uint32_t, 564), ('cp_rb_wptr_poll_addr_hi', uint32_t, 568), ('cp_rb_doorbell_control', uint32_t, 572), ('cp_gfx_hqd_offset', uint32_t, 576), ('cp_gfx_hqd_cntl', uint32_t, 580), ('reserved_146', uint32_t, 584), ('reserved_147', uint32_t, 588), ('cp_gfx_hqd_csmd_rptr', uint32_t, 592), ('cp_gfx_hqd_wptr', uint32_t, 596), ('cp_gfx_hqd_wptr_hi', uint32_t, 600), ('reserved_151', uint32_t, 604), ('reserved_152', uint32_t, 608), ('reserved_153', uint32_t, 612), ('reserved_154', uint32_t, 616), ('reserved_155', uint32_t, 620), ('cp_gfx_hqd_mapped', uint32_t, 624), ('cp_gfx_hqd_que_mgr_control', uint32_t, 628), ('reserved_158', uint32_t, 632), ('reserved_159', uint32_t, 636), ('cp_gfx_hqd_hq_status0', uint32_t, 640), ('cp_gfx_hqd_hq_control0', uint32_t, 644), ('cp_gfx_mqd_control', uint32_t, 648), ('reserved_163', uint32_t, 652), ('reserved_164', uint32_t, 656), ('reserved_165', uint32_t, 660), ('reserved_166', uint32_t, 664), ('reserved_167', uint32_t, 668), ('reserved_168', uint32_t, 672), ('reserved_169', uint32_t, 676), ('reserved_170', uint32_t, 680), ('reserved_171', uint32_t, 684), ('reserved_172', uint32_t, 688), ('reserved_173', uint32_t, 692), ('reserved_174', uint32_t, 696), ('reserved_175', uint32_t, 700), ('reserved_176', uint32_t, 704), ('reserved_177', uint32_t, 708), ('reserved_178', uint32_t, 712), ('reserved_179', uint32_t, 716), ('reserved_180', uint32_t, 720), ('reserved_181', uint32_t, 724), ('reserved_182', uint32_t, 728), ('reserved_183', uint32_t, 732), ('reserved_184', uint32_t, 736), ('reserved_185', uint32_t, 740), ('reserved_186', uint32_t, 744), ('reserved_187', uint32_t, 748), ('reserved_188', uint32_t, 752), ('reserved_189', uint32_t, 756), ('reserved_190', uint32_t, 760), ('reserved_191', uint32_t, 764), ('reserved_192', uint32_t, 768), ('reserved_193', uint32_t, 772), ('reserved_194', uint32_t, 776), ('reserved_195', uint32_t, 780), ('reserved_196', uint32_t, 784), ('reserved_197', uint32_t, 788), ('reserved_198', uint32_t, 792), ('reserved_199', uint32_t, 796), ('reserved_200', uint32_t, 800), ('reserved_201', uint32_t, 804), ('reserved_202', uint32_t, 808), ('reserved_203', uint32_t, 812), ('reserved_204', uint32_t, 816), ('reserved_205', uint32_t, 820), ('reserved_206', uint32_t, 824), ('reserved_207', uint32_t, 828), ('reserved_208', uint32_t, 832), ('reserved_209', uint32_t, 836), ('reserved_210', uint32_t, 840), ('reserved_211', uint32_t, 844), ('reserved_212', uint32_t, 848), ('reserved_213', uint32_t, 852), ('reserved_214', uint32_t, 856), ('reserved_215', uint32_t, 860), ('reserved_216', uint32_t, 864), ('reserved_217', uint32_t, 868), ('reserved_218', uint32_t, 872), ('reserved_219', uint32_t, 876), ('reserved_220', uint32_t, 880), ('reserved_221', uint32_t, 884), ('reserved_222', uint32_t, 888), ('reserved_223', uint32_t, 892), ('reserved_224', uint32_t, 896), ('reserved_225', uint32_t, 900), ('reserved_226', uint32_t, 904), ('reserved_227', uint32_t, 908), ('reserved_228', uint32_t, 912), ('reserved_229', uint32_t, 916), ('reserved_230', uint32_t, 920), ('reserved_231', uint32_t, 924), ('reserved_232', uint32_t, 928), ('reserved_233', uint32_t, 932), ('reserved_234', uint32_t, 936), ('reserved_235', uint32_t, 940), ('reserved_236', uint32_t, 944), ('reserved_237', uint32_t, 948), ('reserved_238', uint32_t, 952), ('reserved_239', uint32_t, 956), ('reserved_240', uint32_t, 960), ('reserved_241', uint32_t, 964), ('reserved_242', uint32_t, 968), ('reserved_243', uint32_t, 972), ('reserved_244', uint32_t, 976), ('reserved_245', uint32_t, 980), ('reserved_246', uint32_t, 984), ('reserved_247', uint32_t, 988), ('reserved_248', uint32_t, 992), ('reserved_249', uint32_t, 996), ('reserved_250', uint32_t, 1000), ('reserved_251', uint32_t, 1004), ('reserved_252', uint32_t, 1008), ('reserved_253', uint32_t, 1012), ('reserved_254', uint32_t, 1016), ('reserved_255', uint32_t, 1020), ('reserved_256', uint32_t, 1024), ('reserved_257', uint32_t, 1028), ('reserved_258', uint32_t, 1032), ('reserved_259', uint32_t, 1036), ('reserved_260', uint32_t, 1040), ('reserved_261', uint32_t, 1044), ('reserved_262', uint32_t, 1048), ('reserved_263', uint32_t, 1052), ('reserved_264', uint32_t, 1056), ('reserved_265', uint32_t, 1060), ('reserved_266', uint32_t, 1064), ('reserved_267', uint32_t, 1068), ('reserved_268', uint32_t, 1072), ('reserved_269', uint32_t, 1076), ('reserved_270', uint32_t, 1080), ('reserved_271', uint32_t, 1084), ('dfwx_flags', uint32_t, 1088), ('dfwx_slot', uint32_t, 1092), ('dfwx_client_data_addr_lo', uint32_t, 1096), ('dfwx_client_data_addr_hi', uint32_t, 1100), ('reserved_276', uint32_t, 1104), ('reserved_277', uint32_t, 1108), ('reserved_278', uint32_t, 1112), ('reserved_279', uint32_t, 1116), ('reserved_280', uint32_t, 1120), ('reserved_281', uint32_t, 1124), ('reserved_282', uint32_t, 1128), ('reserved_283', uint32_t, 1132), ('reserved_284', uint32_t, 1136), ('reserved_285', uint32_t, 1140), ('reserved_286', uint32_t, 1144), ('reserved_287', uint32_t, 1148), ('reserved_288', uint32_t, 1152), ('reserved_289', uint32_t, 1156), ('reserved_290', uint32_t, 1160), ('reserved_291', uint32_t, 1164), ('reserved_292', uint32_t, 1168), ('reserved_293', uint32_t, 1172), ('reserved_294', uint32_t, 1176), ('reserved_295', uint32_t, 1180), ('reserved_296', uint32_t, 1184), ('reserved_297', uint32_t, 1188), ('reserved_298', uint32_t, 1192), ('reserved_299', uint32_t, 1196), ('reserved_300', uint32_t, 1200), ('reserved_301', uint32_t, 1204), ('reserved_302', uint32_t, 1208), ('reserved_303', uint32_t, 1212), ('reserved_304', uint32_t, 1216), ('reserved_305', uint32_t, 1220), ('reserved_306', uint32_t, 1224), ('reserved_307', uint32_t, 1228), ('reserved_308', uint32_t, 1232), ('reserved_309', uint32_t, 1236), ('reserved_310', uint32_t, 1240), ('reserved_311', uint32_t, 1244), ('reserved_312', uint32_t, 1248), ('reserved_313', uint32_t, 1252), ('reserved_314', uint32_t, 1256), ('reserved_315', uint32_t, 1260), ('reserved_316', uint32_t, 1264), ('reserved_317', uint32_t, 1268), ('reserved_318', uint32_t, 1272), ('reserved_319', uint32_t, 1276), ('reserved_320', uint32_t, 1280), ('reserved_321', uint32_t, 1284), ('reserved_322', uint32_t, 1288), ('reserved_323', uint32_t, 1292), ('reserved_324', uint32_t, 1296), ('reserved_325', uint32_t, 1300), ('reserved_326', uint32_t, 1304), ('reserved_327', uint32_t, 1308), ('reserved_328', uint32_t, 1312), ('reserved_329', uint32_t, 1316), ('reserved_330', uint32_t, 1320), ('reserved_331', uint32_t, 1324), ('reserved_332', uint32_t, 1328), ('reserved_333', uint32_t, 1332), ('reserved_334', uint32_t, 1336), ('reserved_335', uint32_t, 1340), ('reserved_336', uint32_t, 1344), ('reserved_337', uint32_t, 1348), ('reserved_338', uint32_t, 1352), ('reserved_339', uint32_t, 1356), ('reserved_340', uint32_t, 1360), ('reserved_341', uint32_t, 1364), ('reserved_342', uint32_t, 1368), ('reserved_343', uint32_t, 1372), ('reserved_344', uint32_t, 1376), ('reserved_345', uint32_t, 1380), ('reserved_346', uint32_t, 1384), ('reserved_347', uint32_t, 1388), ('reserved_348', uint32_t, 1392), ('reserved_349', uint32_t, 1396), ('reserved_350', uint32_t, 1400), ('reserved_351', uint32_t, 1404), ('reserved_352', uint32_t, 1408), ('reserved_353', uint32_t, 1412), ('reserved_354', uint32_t, 1416), ('reserved_355', uint32_t, 1420), ('reserved_356', uint32_t, 1424), ('reserved_357', uint32_t, 1428), ('reserved_358', uint32_t, 1432), ('reserved_359', uint32_t, 1436), ('reserved_360', uint32_t, 1440), ('reserved_361', uint32_t, 1444), ('reserved_362', uint32_t, 1448), ('reserved_363', uint32_t, 1452), ('reserved_364', uint32_t, 1456), ('reserved_365', uint32_t, 1460), ('reserved_366', uint32_t, 1464), ('reserved_367', uint32_t, 1468), ('reserved_368', uint32_t, 1472), ('reserved_369', uint32_t, 1476), ('reserved_370', uint32_t, 1480), ('reserved_371', uint32_t, 1484), ('reserved_372', uint32_t, 1488), ('reserved_373', uint32_t, 1492), ('reserved_374', uint32_t, 1496), ('reserved_375', uint32_t, 1500), ('reserved_376', uint32_t, 1504), ('reserved_377', uint32_t, 1508), ('reserved_378', uint32_t, 1512), ('reserved_379', uint32_t, 1516), ('reserved_380', uint32_t, 1520), ('reserved_381', uint32_t, 1524), ('reserved_382', uint32_t, 1528), ('reserved_383', uint32_t, 1532), ('reserved_384', uint32_t, 1536), ('reserved_385', uint32_t, 1540), ('reserved_386', uint32_t, 1544), ('reserved_387', uint32_t, 1548), ('reserved_388', uint32_t, 1552), ('reserved_389', uint32_t, 1556), ('reserved_390', uint32_t, 1560), ('reserved_391', uint32_t, 1564), ('reserved_392', uint32_t, 1568), ('reserved_393', uint32_t, 1572), ('reserved_394', uint32_t, 1576), ('reserved_395', uint32_t, 1580), ('reserved_396', uint32_t, 1584), ('reserved_397', uint32_t, 1588), ('reserved_398', uint32_t, 1592), ('reserved_399', uint32_t, 1596), ('reserved_400', uint32_t, 1600), ('reserved_401', uint32_t, 1604), ('reserved_402', uint32_t, 1608), ('reserved_403', uint32_t, 1612), ('reserved_404', uint32_t, 1616), ('reserved_405', uint32_t, 1620), ('reserved_406', uint32_t, 1624), ('reserved_407', uint32_t, 1628), ('reserved_408', uint32_t, 1632), ('reserved_409', uint32_t, 1636), ('reserved_410', uint32_t, 1640), ('reserved_411', uint32_t, 1644), ('reserved_412', uint32_t, 1648), ('reserved_413', uint32_t, 1652), ('reserved_414', uint32_t, 1656), ('reserved_415', uint32_t, 1660), ('reserved_416', uint32_t, 1664), ('reserved_417', uint32_t, 1668), ('reserved_418', uint32_t, 1672), ('reserved_419', uint32_t, 1676), ('reserved_420', uint32_t, 1680), ('reserved_421', uint32_t, 1684), ('reserved_422', uint32_t, 1688), ('reserved_423', uint32_t, 1692), ('reserved_424', uint32_t, 1696), ('reserved_425', uint32_t, 1700), ('reserved_426', uint32_t, 1704), ('reserved_427', uint32_t, 1708), ('reserved_428', uint32_t, 1712), ('reserved_429', uint32_t, 1716), ('reserved_430', uint32_t, 1720), ('reserved_431', uint32_t, 1724), ('reserved_432', uint32_t, 1728), ('reserved_433', uint32_t, 1732), ('reserved_434', uint32_t, 1736), ('reserved_435', uint32_t, 1740), ('reserved_436', uint32_t, 1744), ('reserved_437', uint32_t, 1748), ('reserved_438', uint32_t, 1752), ('reserved_439', uint32_t, 1756), ('reserved_440', uint32_t, 1760), ('reserved_441', uint32_t, 1764), ('reserved_442', uint32_t, 1768), ('reserved_443', uint32_t, 1772), ('reserved_444', uint32_t, 1776), ('reserved_445', uint32_t, 1780), ('reserved_446', uint32_t, 1784), ('reserved_447', uint32_t, 1788), ('reserved_448', uint32_t, 1792), ('reserved_449', uint32_t, 1796), ('reserved_450', uint32_t, 1800), ('reserved_451', uint32_t, 1804), ('reserved_452', uint32_t, 1808), ('reserved_453', uint32_t, 1812), ('reserved_454', uint32_t, 1816), ('reserved_455', uint32_t, 1820), ('reserved_456', uint32_t, 1824), ('reserved_457', uint32_t, 1828), ('reserved_458', uint32_t, 1832), ('reserved_459', uint32_t, 1836), ('reserved_460', uint32_t, 1840), ('reserved_461', uint32_t, 1844), ('reserved_462', uint32_t, 1848), ('reserved_463', uint32_t, 1852), ('reserved_464', uint32_t, 1856), ('reserved_465', uint32_t, 1860), ('reserved_466', uint32_t, 1864), ('reserved_467', uint32_t, 1868), ('reserved_468', uint32_t, 1872), ('reserved_469', uint32_t, 1876), ('reserved_470', uint32_t, 1880), ('reserved_471', uint32_t, 1884), ('reserved_472', uint32_t, 1888), ('reserved_473', uint32_t, 1892), ('reserved_474', uint32_t, 1896), ('reserved_475', uint32_t, 1900), ('reserved_476', uint32_t, 1904), ('reserved_477', uint32_t, 1908), ('reserved_478', uint32_t, 1912), ('reserved_479', uint32_t, 1916), ('reserved_480', uint32_t, 1920), ('reserved_481', uint32_t, 1924), ('reserved_482', uint32_t, 1928), ('reserved_483', uint32_t, 1932), ('reserved_484', uint32_t, 1936), ('reserved_485', uint32_t, 1940), ('reserved_486', uint32_t, 1944), ('reserved_487', uint32_t, 1948), ('reserved_488', uint32_t, 1952), ('reserved_489', uint32_t, 1956), ('reserved_490', uint32_t, 1960), ('reserved_491', uint32_t, 1964), ('reserved_492', uint32_t, 1968), ('reserved_493', uint32_t, 1972), ('reserved_494', uint32_t, 1976), ('reserved_495', uint32_t, 1980), ('reserved_496', uint32_t, 1984), ('reserved_497', uint32_t, 1988), ('reserved_498', uint32_t, 1992), ('reserved_499', uint32_t, 1996), ('reserved_500', uint32_t, 2000), ('reserved_501', uint32_t, 2004), ('reserved_502', uint32_t, 2008), ('reserved_503', uint32_t, 2012), ('reserved_504', uint32_t, 2016), ('reserved_505', uint32_t, 2020), ('reserved_506', uint32_t, 2024), ('reserved_507', uint32_t, 2028), ('reserved_508', uint32_t, 2032), ('reserved_509', uint32_t, 2036), ('reserved_510', uint32_t, 2040), ('reserved_511', uint32_t, 2044)])
@c.record
class struct_v12_sdma_mqd(c.Struct):
  SIZE = 512
  sdmax_rlcx_rb_cntl: int
  sdmax_rlcx_rb_base: int
  sdmax_rlcx_rb_base_hi: int
  sdmax_rlcx_rb_rptr: int
  sdmax_rlcx_rb_rptr_hi: int
  sdmax_rlcx_rb_wptr: int
  sdmax_rlcx_rb_wptr_hi: int
  sdmax_rlcx_rb_rptr_addr_lo: int
  sdmax_rlcx_rb_rptr_addr_hi: int
  sdmax_rlcx_ib_cntl: int
  sdmax_rlcx_ib_rptr: int
  sdmax_rlcx_ib_offset: int
  sdmax_rlcx_ib_base_lo: int
  sdmax_rlcx_ib_base_hi: int
  sdmax_rlcx_ib_size: int
  sdmax_rlcx_doorbell: int
  sdmax_rlcx_doorbell_log: int
  sdmax_rlcx_doorbell_offset: int
  sdmax_rlcx_csa_addr_lo: int
  sdmax_rlcx_csa_addr_hi: int
  sdmax_rlcx_sched_cntl: int
  sdmax_rlcx_ib_sub_remain: int
  sdmax_rlcx_preempt: int
  sdmax_rlcx_dummy_reg: int
  sdmax_rlcx_rb_wptr_poll_addr_lo: int
  sdmax_rlcx_rb_wptr_poll_addr_hi: int
  sdmax_rlcx_rb_aql_cntl: int
  sdmax_rlcx_minor_ptr_update: int
  sdmax_rlcx_mcu_dbg0: int
  sdmax_rlcx_mcu_dbg1: int
  sdmax_rlcx_context_switch_status: int
  sdmax_rlcx_midcmd_cntl: int
  sdmax_rlcx_midcmd_data0: int
  sdmax_rlcx_midcmd_data1: int
  sdmax_rlcx_midcmd_data2: int
  sdmax_rlcx_midcmd_data3: int
  sdmax_rlcx_midcmd_data4: int
  sdmax_rlcx_midcmd_data5: int
  sdmax_rlcx_midcmd_data6: int
  sdmax_rlcx_midcmd_data7: int
  sdmax_rlcx_midcmd_data8: int
  sdmax_rlcx_midcmd_data9: int
  sdmax_rlcx_midcmd_data10: int
  sdmax_rlcx_wait_unsatisfied_thd: int
  sdmax_rlcx_mqd_base_addr_lo: int
  sdmax_rlcx_mqd_base_addr_hi: int
  sdmax_rlcx_mqd_control: int
  reserved_47: int
  reserved_48: int
  reserved_49: int
  reserved_50: int
  reserved_51: int
  reserved_52: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  reserved_59: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  reserved_65: int
  reserved_66: int
  reserved_67: int
  reserved_68: int
  reserved_69: int
  reserved_70: int
  reserved_71: int
  reserved_72: int
  reserved_73: int
  reserved_74: int
  reserved_75: int
  reserved_76: int
  reserved_77: int
  reserved_78: int
  reserved_79: int
  reserved_80: int
  reserved_81: int
  reserved_82: int
  reserved_83: int
  reserved_84: int
  reserved_85: int
  reserved_86: int
  reserved_87: int
  reserved_88: int
  reserved_89: int
  reserved_90: int
  reserved_91: int
  reserved_92: int
  reserved_93: int
  reserved_94: int
  reserved_95: int
  reserved_96: int
  reserved_97: int
  reserved_98: int
  reserved_99: int
  reserved_100: int
  reserved_101: int
  reserved_102: int
  reserved_103: int
  reserved_104: int
  reserved_105: int
  reserved_106: int
  reserved_107: int
  reserved_108: int
  reserved_109: int
  reserved_110: int
  reserved_111: int
  reserved_112: int
  reserved_113: int
  reserved_114: int
  reserved_115: int
  reserved_116: int
  reserved_117: int
  reserved_118: int
  reserved_119: int
  reserved_120: int
  reserved_121: int
  reserved_122: int
  reserved_123: int
  reserved_124: int
  reserved_125: int
  sdma_engine_id: int
  sdma_queue_id: int
struct_v12_sdma_mqd.register_fields([('sdmax_rlcx_rb_cntl', uint32_t, 0), ('sdmax_rlcx_rb_base', uint32_t, 4), ('sdmax_rlcx_rb_base_hi', uint32_t, 8), ('sdmax_rlcx_rb_rptr', uint32_t, 12), ('sdmax_rlcx_rb_rptr_hi', uint32_t, 16), ('sdmax_rlcx_rb_wptr', uint32_t, 20), ('sdmax_rlcx_rb_wptr_hi', uint32_t, 24), ('sdmax_rlcx_rb_rptr_addr_lo', uint32_t, 28), ('sdmax_rlcx_rb_rptr_addr_hi', uint32_t, 32), ('sdmax_rlcx_ib_cntl', uint32_t, 36), ('sdmax_rlcx_ib_rptr', uint32_t, 40), ('sdmax_rlcx_ib_offset', uint32_t, 44), ('sdmax_rlcx_ib_base_lo', uint32_t, 48), ('sdmax_rlcx_ib_base_hi', uint32_t, 52), ('sdmax_rlcx_ib_size', uint32_t, 56), ('sdmax_rlcx_doorbell', uint32_t, 60), ('sdmax_rlcx_doorbell_log', uint32_t, 64), ('sdmax_rlcx_doorbell_offset', uint32_t, 68), ('sdmax_rlcx_csa_addr_lo', uint32_t, 72), ('sdmax_rlcx_csa_addr_hi', uint32_t, 76), ('sdmax_rlcx_sched_cntl', uint32_t, 80), ('sdmax_rlcx_ib_sub_remain', uint32_t, 84), ('sdmax_rlcx_preempt', uint32_t, 88), ('sdmax_rlcx_dummy_reg', uint32_t, 92), ('sdmax_rlcx_rb_wptr_poll_addr_lo', uint32_t, 96), ('sdmax_rlcx_rb_wptr_poll_addr_hi', uint32_t, 100), ('sdmax_rlcx_rb_aql_cntl', uint32_t, 104), ('sdmax_rlcx_minor_ptr_update', uint32_t, 108), ('sdmax_rlcx_mcu_dbg0', uint32_t, 112), ('sdmax_rlcx_mcu_dbg1', uint32_t, 116), ('sdmax_rlcx_context_switch_status', uint32_t, 120), ('sdmax_rlcx_midcmd_cntl', uint32_t, 124), ('sdmax_rlcx_midcmd_data0', uint32_t, 128), ('sdmax_rlcx_midcmd_data1', uint32_t, 132), ('sdmax_rlcx_midcmd_data2', uint32_t, 136), ('sdmax_rlcx_midcmd_data3', uint32_t, 140), ('sdmax_rlcx_midcmd_data4', uint32_t, 144), ('sdmax_rlcx_midcmd_data5', uint32_t, 148), ('sdmax_rlcx_midcmd_data6', uint32_t, 152), ('sdmax_rlcx_midcmd_data7', uint32_t, 156), ('sdmax_rlcx_midcmd_data8', uint32_t, 160), ('sdmax_rlcx_midcmd_data9', uint32_t, 164), ('sdmax_rlcx_midcmd_data10', uint32_t, 168), ('sdmax_rlcx_wait_unsatisfied_thd', uint32_t, 172), ('sdmax_rlcx_mqd_base_addr_lo', uint32_t, 176), ('sdmax_rlcx_mqd_base_addr_hi', uint32_t, 180), ('sdmax_rlcx_mqd_control', uint32_t, 184), ('reserved_47', uint32_t, 188), ('reserved_48', uint32_t, 192), ('reserved_49', uint32_t, 196), ('reserved_50', uint32_t, 200), ('reserved_51', uint32_t, 204), ('reserved_52', uint32_t, 208), ('reserved_53', uint32_t, 212), ('reserved_54', uint32_t, 216), ('reserved_55', uint32_t, 220), ('reserved_56', uint32_t, 224), ('reserved_57', uint32_t, 228), ('reserved_58', uint32_t, 232), ('reserved_59', uint32_t, 236), ('reserved_60', uint32_t, 240), ('reserved_61', uint32_t, 244), ('reserved_62', uint32_t, 248), ('reserved_63', uint32_t, 252), ('reserved_64', uint32_t, 256), ('reserved_65', uint32_t, 260), ('reserved_66', uint32_t, 264), ('reserved_67', uint32_t, 268), ('reserved_68', uint32_t, 272), ('reserved_69', uint32_t, 276), ('reserved_70', uint32_t, 280), ('reserved_71', uint32_t, 284), ('reserved_72', uint32_t, 288), ('reserved_73', uint32_t, 292), ('reserved_74', uint32_t, 296), ('reserved_75', uint32_t, 300), ('reserved_76', uint32_t, 304), ('reserved_77', uint32_t, 308), ('reserved_78', uint32_t, 312), ('reserved_79', uint32_t, 316), ('reserved_80', uint32_t, 320), ('reserved_81', uint32_t, 324), ('reserved_82', uint32_t, 328), ('reserved_83', uint32_t, 332), ('reserved_84', uint32_t, 336), ('reserved_85', uint32_t, 340), ('reserved_86', uint32_t, 344), ('reserved_87', uint32_t, 348), ('reserved_88', uint32_t, 352), ('reserved_89', uint32_t, 356), ('reserved_90', uint32_t, 360), ('reserved_91', uint32_t, 364), ('reserved_92', uint32_t, 368), ('reserved_93', uint32_t, 372), ('reserved_94', uint32_t, 376), ('reserved_95', uint32_t, 380), ('reserved_96', uint32_t, 384), ('reserved_97', uint32_t, 388), ('reserved_98', uint32_t, 392), ('reserved_99', uint32_t, 396), ('reserved_100', uint32_t, 400), ('reserved_101', uint32_t, 404), ('reserved_102', uint32_t, 408), ('reserved_103', uint32_t, 412), ('reserved_104', uint32_t, 416), ('reserved_105', uint32_t, 420), ('reserved_106', uint32_t, 424), ('reserved_107', uint32_t, 428), ('reserved_108', uint32_t, 432), ('reserved_109', uint32_t, 436), ('reserved_110', uint32_t, 440), ('reserved_111', uint32_t, 444), ('reserved_112', uint32_t, 448), ('reserved_113', uint32_t, 452), ('reserved_114', uint32_t, 456), ('reserved_115', uint32_t, 460), ('reserved_116', uint32_t, 464), ('reserved_117', uint32_t, 468), ('reserved_118', uint32_t, 472), ('reserved_119', uint32_t, 476), ('reserved_120', uint32_t, 480), ('reserved_121', uint32_t, 484), ('reserved_122', uint32_t, 488), ('reserved_123', uint32_t, 492), ('reserved_124', uint32_t, 496), ('reserved_125', uint32_t, 500), ('sdma_engine_id', uint32_t, 504), ('sdma_queue_id', uint32_t, 508)])
@c.record
class struct_v12_compute_mqd(c.Struct):
  SIZE = 2048
  header: int
  compute_dispatch_initiator: int
  compute_dim_x: int
  compute_dim_y: int
  compute_dim_z: int
  compute_start_x: int
  compute_start_y: int
  compute_start_z: int
  compute_num_thread_x: int
  compute_num_thread_y: int
  compute_num_thread_z: int
  compute_pipelinestat_enable: int
  compute_perfcount_enable: int
  compute_pgm_lo: int
  compute_pgm_hi: int
  compute_dispatch_pkt_addr_lo: int
  compute_dispatch_pkt_addr_hi: int
  compute_dispatch_scratch_base_lo: int
  compute_dispatch_scratch_base_hi: int
  compute_pgm_rsrc1: int
  compute_pgm_rsrc2: int
  compute_vmid: int
  compute_resource_limits: int
  compute_static_thread_mgmt_se0: int
  compute_static_thread_mgmt_se1: int
  compute_tmpring_size: int
  compute_static_thread_mgmt_se2: int
  compute_static_thread_mgmt_se3: int
  compute_restart_x: int
  compute_restart_y: int
  compute_restart_z: int
  compute_thread_trace_enable: int
  compute_misc_reserved: int
  compute_dispatch_id: int
  compute_threadgroup_id: int
  compute_req_ctrl: int
  reserved_36: int
  compute_user_accum_0: int
  compute_user_accum_1: int
  compute_user_accum_2: int
  compute_user_accum_3: int
  compute_pgm_rsrc3: int
  compute_ddid_index: int
  compute_shader_chksum: int
  compute_static_thread_mgmt_se4: int
  compute_static_thread_mgmt_se5: int
  compute_static_thread_mgmt_se6: int
  compute_static_thread_mgmt_se7: int
  compute_dispatch_interleave: int
  compute_relaunch: int
  compute_wave_restore_addr_lo: int
  compute_wave_restore_addr_hi: int
  compute_wave_restore_control: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  compute_static_thread_mgmt_se8: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  compute_user_data_0: int
  compute_user_data_1: int
  compute_user_data_2: int
  compute_user_data_3: int
  compute_user_data_4: int
  compute_user_data_5: int
  compute_user_data_6: int
  compute_user_data_7: int
  compute_user_data_8: int
  compute_user_data_9: int
  compute_user_data_10: int
  compute_user_data_11: int
  compute_user_data_12: int
  compute_user_data_13: int
  compute_user_data_14: int
  compute_user_data_15: int
  cp_compute_csinvoc_count_lo: int
  cp_compute_csinvoc_count_hi: int
  reserved_83: int
  reserved_84: int
  reserved_85: int
  cp_mqd_query_time_lo: int
  cp_mqd_query_time_hi: int
  cp_mqd_connect_start_time_lo: int
  cp_mqd_connect_start_time_hi: int
  cp_mqd_connect_end_time_lo: int
  cp_mqd_connect_end_time_hi: int
  cp_mqd_connect_end_wf_count: int
  cp_mqd_connect_end_pq_rptr: int
  cp_mqd_connect_end_pq_wptr: int
  cp_mqd_connect_end_ib_rptr: int
  cp_mqd_readindex_lo: int
  cp_mqd_readindex_hi: int
  cp_mqd_save_start_time_lo: int
  cp_mqd_save_start_time_hi: int
  cp_mqd_save_end_time_lo: int
  cp_mqd_save_end_time_hi: int
  cp_mqd_restore_start_time_lo: int
  cp_mqd_restore_start_time_hi: int
  cp_mqd_restore_end_time_lo: int
  cp_mqd_restore_end_time_hi: int
  disable_queue: int
  reserved_107: int
  reserved_108: int
  reserved_109: int
  reserved_110: int
  reserved_111: int
  reserved_112: int
  reserved_113: int
  cp_pq_exe_status_lo: int
  cp_pq_exe_status_hi: int
  cp_packet_id_lo: int
  cp_packet_id_hi: int
  cp_packet_exe_status_lo: int
  cp_packet_exe_status_hi: int
  reserved_120: int
  reserved_121: int
  reserved_122: int
  reserved_123: int
  ctx_save_base_addr_lo: int
  ctx_save_base_addr_hi: int
  reserved_126: int
  reserved_127: int
  cp_mqd_base_addr_lo: int
  cp_mqd_base_addr_hi: int
  cp_hqd_active: int
  cp_hqd_vmid: int
  cp_hqd_persistent_state: int
  cp_hqd_pipe_priority: int
  cp_hqd_queue_priority: int
  cp_hqd_quantum: int
  cp_hqd_pq_base_lo: int
  cp_hqd_pq_base_hi: int
  cp_hqd_pq_rptr: int
  cp_hqd_pq_rptr_report_addr_lo: int
  cp_hqd_pq_rptr_report_addr_hi: int
  cp_hqd_pq_wptr_poll_addr_lo: int
  cp_hqd_pq_wptr_poll_addr_hi: int
  cp_hqd_pq_doorbell_control: int
  reserved_144: int
  cp_hqd_pq_control: int
  cp_hqd_ib_base_addr_lo: int
  cp_hqd_ib_base_addr_hi: int
  cp_hqd_ib_rptr: int
  cp_hqd_ib_control: int
  cp_hqd_iq_timer: int
  cp_hqd_iq_rptr: int
  cp_hqd_dequeue_request: int
  cp_hqd_dma_offload: int
  cp_hqd_sema_cmd: int
  cp_hqd_msg_type: int
  cp_hqd_atomic0_preop_lo: int
  cp_hqd_atomic0_preop_hi: int
  cp_hqd_atomic1_preop_lo: int
  cp_hqd_atomic1_preop_hi: int
  cp_hqd_hq_status0: int
  cp_hqd_hq_control0: int
  cp_mqd_control: int
  cp_hqd_hq_status1: int
  cp_hqd_hq_control1: int
  cp_hqd_eop_base_addr_lo: int
  cp_hqd_eop_base_addr_hi: int
  cp_hqd_eop_control: int
  cp_hqd_eop_rptr: int
  cp_hqd_eop_wptr: int
  cp_hqd_eop_done_events: int
  cp_hqd_ctx_save_base_addr_lo: int
  cp_hqd_ctx_save_base_addr_hi: int
  cp_hqd_ctx_save_control: int
  cp_hqd_cntl_stack_offset: int
  cp_hqd_cntl_stack_size: int
  cp_hqd_wg_state_offset: int
  cp_hqd_ctx_save_size: int
  reserved_178: int
  cp_hqd_error: int
  cp_hqd_eop_wptr_mem: int
  cp_hqd_aql_control: int
  cp_hqd_pq_wptr_lo: int
  cp_hqd_pq_wptr_hi: int
  reserved_184: int
  reserved_185: int
  reserved_186: int
  reserved_187: int
  reserved_188: int
  reserved_189: int
  reserved_190: int
  reserved_191: int
  iqtimer_pkt_header: int
  iqtimer_pkt_dw0: int
  iqtimer_pkt_dw1: int
  iqtimer_pkt_dw2: int
  iqtimer_pkt_dw3: int
  iqtimer_pkt_dw4: int
  iqtimer_pkt_dw5: int
  iqtimer_pkt_dw6: int
  iqtimer_pkt_dw7: int
  iqtimer_pkt_dw8: int
  iqtimer_pkt_dw9: int
  iqtimer_pkt_dw10: int
  iqtimer_pkt_dw11: int
  iqtimer_pkt_dw12: int
  iqtimer_pkt_dw13: int
  iqtimer_pkt_dw14: int
  iqtimer_pkt_dw15: int
  iqtimer_pkt_dw16: int
  iqtimer_pkt_dw17: int
  iqtimer_pkt_dw18: int
  iqtimer_pkt_dw19: int
  iqtimer_pkt_dw20: int
  iqtimer_pkt_dw21: int
  iqtimer_pkt_dw22: int
  iqtimer_pkt_dw23: int
  iqtimer_pkt_dw24: int
  iqtimer_pkt_dw25: int
  iqtimer_pkt_dw26: int
  iqtimer_pkt_dw27: int
  iqtimer_pkt_dw28: int
  iqtimer_pkt_dw29: int
  iqtimer_pkt_dw30: int
  iqtimer_pkt_dw31: int
  reserved_225: int
  reserved_226: int
  reserved_227: int
  set_resources_header: int
  set_resources_dw1: int
  set_resources_dw2: int
  set_resources_dw3: int
  set_resources_dw4: int
  set_resources_dw5: int
  set_resources_dw6: int
  set_resources_dw7: int
  reserved_236: int
  reserved_237: int
  reserved_238: int
  reserved_239: int
  queue_doorbell_id0: int
  queue_doorbell_id1: int
  queue_doorbell_id2: int
  queue_doorbell_id3: int
  queue_doorbell_id4: int
  queue_doorbell_id5: int
  queue_doorbell_id6: int
  queue_doorbell_id7: int
  queue_doorbell_id8: int
  queue_doorbell_id9: int
  queue_doorbell_id10: int
  queue_doorbell_id11: int
  queue_doorbell_id12: int
  queue_doorbell_id13: int
  queue_doorbell_id14: int
  queue_doorbell_id15: int
  control_buf_addr_lo: int
  control_buf_addr_hi: int
  control_buf_wptr_lo: int
  control_buf_wptr_hi: int
  control_buf_dptr_lo: int
  control_buf_dptr_hi: int
  control_buf_num_entries: int
  draw_ring_addr_lo: int
  draw_ring_addr_hi: int
  reserved_265: int
  reserved_266: int
  reserved_267: int
  reserved_268: int
  reserved_269: int
  reserved_270: int
  reserved_271: int
  dfwx_flags: int
  dfwx_slot: int
  dfwx_client_data_addr_lo: int
  dfwx_client_data_addr_hi: int
  reserved_276: int
  reserved_277: int
  reserved_278: int
  reserved_279: int
  reserved_280: int
  reserved_281: int
  reserved_282: int
  reserved_283: int
  reserved_284: int
  reserved_285: int
  reserved_286: int
  reserved_287: int
  reserved_288: int
  reserved_289: int
  reserved_290: int
  reserved_291: int
  reserved_292: int
  reserved_293: int
  reserved_294: int
  reserved_295: int
  reserved_296: int
  reserved_297: int
  reserved_298: int
  reserved_299: int
  reserved_300: int
  reserved_301: int
  reserved_302: int
  reserved_303: int
  reserved_304: int
  reserved_305: int
  reserved_306: int
  reserved_307: int
  reserved_308: int
  reserved_309: int
  reserved_310: int
  reserved_311: int
  reserved_312: int
  reserved_313: int
  reserved_314: int
  reserved_315: int
  reserved_316: int
  reserved_317: int
  reserved_318: int
  reserved_319: int
  reserved_320: int
  reserved_321: int
  reserved_322: int
  reserved_323: int
  reserved_324: int
  reserved_325: int
  reserved_326: int
  reserved_327: int
  reserved_328: int
  reserved_329: int
  reserved_330: int
  reserved_331: int
  reserved_332: int
  reserved_333: int
  reserved_334: int
  reserved_335: int
  reserved_336: int
  reserved_337: int
  reserved_338: int
  reserved_339: int
  reserved_340: int
  reserved_341: int
  reserved_342: int
  reserved_343: int
  reserved_344: int
  reserved_345: int
  reserved_346: int
  reserved_347: int
  reserved_348: int
  reserved_349: int
  reserved_350: int
  reserved_351: int
  reserved_352: int
  reserved_353: int
  reserved_354: int
  reserved_355: int
  reserved_356: int
  reserved_357: int
  reserved_358: int
  reserved_359: int
  reserved_360: int
  reserved_361: int
  reserved_362: int
  reserved_363: int
  reserved_364: int
  reserved_365: int
  reserved_366: int
  reserved_367: int
  reserved_368: int
  reserved_369: int
  reserved_370: int
  reserved_371: int
  reserved_372: int
  reserved_373: int
  reserved_374: int
  reserved_375: int
  reserved_376: int
  reserved_377: int
  reserved_378: int
  reserved_379: int
  reserved_380: int
  reserved_381: int
  reserved_382: int
  reserved_383: int
  reserved_384: int
  reserved_385: int
  reserved_386: int
  reserved_387: int
  reserved_388: int
  reserved_389: int
  reserved_390: int
  reserved_391: int
  reserved_392: int
  reserved_393: int
  reserved_394: int
  reserved_395: int
  reserved_396: int
  reserved_397: int
  reserved_398: int
  reserved_399: int
  reserved_400: int
  reserved_401: int
  reserved_402: int
  reserved_403: int
  reserved_404: int
  reserved_405: int
  reserved_406: int
  reserved_407: int
  reserved_408: int
  reserved_409: int
  reserved_410: int
  reserved_411: int
  reserved_412: int
  reserved_413: int
  reserved_414: int
  reserved_415: int
  reserved_416: int
  reserved_417: int
  reserved_418: int
  reserved_419: int
  reserved_420: int
  reserved_421: int
  reserved_422: int
  reserved_423: int
  reserved_424: int
  reserved_425: int
  reserved_426: int
  reserved_427: int
  reserved_428: int
  reserved_429: int
  reserved_430: int
  reserved_431: int
  reserved_432: int
  reserved_433: int
  reserved_434: int
  reserved_435: int
  reserved_436: int
  reserved_437: int
  reserved_438: int
  reserved_439: int
  reserved_440: int
  reserved_441: int
  reserved_442: int
  reserved_443: int
  reserved_444: int
  reserved_445: int
  reserved_446: int
  reserved_447: int
  gws_0_val: int
  gws_1_val: int
  gws_2_val: int
  gws_3_val: int
  gws_4_val: int
  gws_5_val: int
  gws_6_val: int
  gws_7_val: int
  gws_8_val: int
  gws_9_val: int
  gws_10_val: int
  gws_11_val: int
  gws_12_val: int
  gws_13_val: int
  gws_14_val: int
  gws_15_val: int
  gws_16_val: int
  gws_17_val: int
  gws_18_val: int
  gws_19_val: int
  gws_20_val: int
  gws_21_val: int
  gws_22_val: int
  gws_23_val: int
  gws_24_val: int
  gws_25_val: int
  gws_26_val: int
  gws_27_val: int
  gws_28_val: int
  gws_29_val: int
  gws_30_val: int
  gws_31_val: int
  gws_32_val: int
  gws_33_val: int
  gws_34_val: int
  gws_35_val: int
  gws_36_val: int
  gws_37_val: int
  gws_38_val: int
  gws_39_val: int
  gws_40_val: int
  gws_41_val: int
  gws_42_val: int
  gws_43_val: int
  gws_44_val: int
  gws_45_val: int
  gws_46_val: int
  gws_47_val: int
  gws_48_val: int
  gws_49_val: int
  gws_50_val: int
  gws_51_val: int
  gws_52_val: int
  gws_53_val: int
  gws_54_val: int
  gws_55_val: int
  gws_56_val: int
  gws_57_val: int
  gws_58_val: int
  gws_59_val: int
  gws_60_val: int
  gws_61_val: int
  gws_62_val: int
  gws_63_val: int
struct_v12_compute_mqd.register_fields([('header', uint32_t, 0), ('compute_dispatch_initiator', uint32_t, 4), ('compute_dim_x', uint32_t, 8), ('compute_dim_y', uint32_t, 12), ('compute_dim_z', uint32_t, 16), ('compute_start_x', uint32_t, 20), ('compute_start_y', uint32_t, 24), ('compute_start_z', uint32_t, 28), ('compute_num_thread_x', uint32_t, 32), ('compute_num_thread_y', uint32_t, 36), ('compute_num_thread_z', uint32_t, 40), ('compute_pipelinestat_enable', uint32_t, 44), ('compute_perfcount_enable', uint32_t, 48), ('compute_pgm_lo', uint32_t, 52), ('compute_pgm_hi', uint32_t, 56), ('compute_dispatch_pkt_addr_lo', uint32_t, 60), ('compute_dispatch_pkt_addr_hi', uint32_t, 64), ('compute_dispatch_scratch_base_lo', uint32_t, 68), ('compute_dispatch_scratch_base_hi', uint32_t, 72), ('compute_pgm_rsrc1', uint32_t, 76), ('compute_pgm_rsrc2', uint32_t, 80), ('compute_vmid', uint32_t, 84), ('compute_resource_limits', uint32_t, 88), ('compute_static_thread_mgmt_se0', uint32_t, 92), ('compute_static_thread_mgmt_se1', uint32_t, 96), ('compute_tmpring_size', uint32_t, 100), ('compute_static_thread_mgmt_se2', uint32_t, 104), ('compute_static_thread_mgmt_se3', uint32_t, 108), ('compute_restart_x', uint32_t, 112), ('compute_restart_y', uint32_t, 116), ('compute_restart_z', uint32_t, 120), ('compute_thread_trace_enable', uint32_t, 124), ('compute_misc_reserved', uint32_t, 128), ('compute_dispatch_id', uint32_t, 132), ('compute_threadgroup_id', uint32_t, 136), ('compute_req_ctrl', uint32_t, 140), ('reserved_36', uint32_t, 144), ('compute_user_accum_0', uint32_t, 148), ('compute_user_accum_1', uint32_t, 152), ('compute_user_accum_2', uint32_t, 156), ('compute_user_accum_3', uint32_t, 160), ('compute_pgm_rsrc3', uint32_t, 164), ('compute_ddid_index', uint32_t, 168), ('compute_shader_chksum', uint32_t, 172), ('compute_static_thread_mgmt_se4', uint32_t, 176), ('compute_static_thread_mgmt_se5', uint32_t, 180), ('compute_static_thread_mgmt_se6', uint32_t, 184), ('compute_static_thread_mgmt_se7', uint32_t, 188), ('compute_dispatch_interleave', uint32_t, 192), ('compute_relaunch', uint32_t, 196), ('compute_wave_restore_addr_lo', uint32_t, 200), ('compute_wave_restore_addr_hi', uint32_t, 204), ('compute_wave_restore_control', uint32_t, 208), ('reserved_53', uint32_t, 212), ('reserved_54', uint32_t, 216), ('reserved_55', uint32_t, 220), ('reserved_56', uint32_t, 224), ('reserved_57', uint32_t, 228), ('reserved_58', uint32_t, 232), ('compute_static_thread_mgmt_se8', uint32_t, 236), ('reserved_60', uint32_t, 240), ('reserved_61', uint32_t, 244), ('reserved_62', uint32_t, 248), ('reserved_63', uint32_t, 252), ('reserved_64', uint32_t, 256), ('compute_user_data_0', uint32_t, 260), ('compute_user_data_1', uint32_t, 264), ('compute_user_data_2', uint32_t, 268), ('compute_user_data_3', uint32_t, 272), ('compute_user_data_4', uint32_t, 276), ('compute_user_data_5', uint32_t, 280), ('compute_user_data_6', uint32_t, 284), ('compute_user_data_7', uint32_t, 288), ('compute_user_data_8', uint32_t, 292), ('compute_user_data_9', uint32_t, 296), ('compute_user_data_10', uint32_t, 300), ('compute_user_data_11', uint32_t, 304), ('compute_user_data_12', uint32_t, 308), ('compute_user_data_13', uint32_t, 312), ('compute_user_data_14', uint32_t, 316), ('compute_user_data_15', uint32_t, 320), ('cp_compute_csinvoc_count_lo', uint32_t, 324), ('cp_compute_csinvoc_count_hi', uint32_t, 328), ('reserved_83', uint32_t, 332), ('reserved_84', uint32_t, 336), ('reserved_85', uint32_t, 340), ('cp_mqd_query_time_lo', uint32_t, 344), ('cp_mqd_query_time_hi', uint32_t, 348), ('cp_mqd_connect_start_time_lo', uint32_t, 352), ('cp_mqd_connect_start_time_hi', uint32_t, 356), ('cp_mqd_connect_end_time_lo', uint32_t, 360), ('cp_mqd_connect_end_time_hi', uint32_t, 364), ('cp_mqd_connect_end_wf_count', uint32_t, 368), ('cp_mqd_connect_end_pq_rptr', uint32_t, 372), ('cp_mqd_connect_end_pq_wptr', uint32_t, 376), ('cp_mqd_connect_end_ib_rptr', uint32_t, 380), ('cp_mqd_readindex_lo', uint32_t, 384), ('cp_mqd_readindex_hi', uint32_t, 388), ('cp_mqd_save_start_time_lo', uint32_t, 392), ('cp_mqd_save_start_time_hi', uint32_t, 396), ('cp_mqd_save_end_time_lo', uint32_t, 400), ('cp_mqd_save_end_time_hi', uint32_t, 404), ('cp_mqd_restore_start_time_lo', uint32_t, 408), ('cp_mqd_restore_start_time_hi', uint32_t, 412), ('cp_mqd_restore_end_time_lo', uint32_t, 416), ('cp_mqd_restore_end_time_hi', uint32_t, 420), ('disable_queue', uint32_t, 424), ('reserved_107', uint32_t, 428), ('reserved_108', uint32_t, 432), ('reserved_109', uint32_t, 436), ('reserved_110', uint32_t, 440), ('reserved_111', uint32_t, 444), ('reserved_112', uint32_t, 448), ('reserved_113', uint32_t, 452), ('cp_pq_exe_status_lo', uint32_t, 456), ('cp_pq_exe_status_hi', uint32_t, 460), ('cp_packet_id_lo', uint32_t, 464), ('cp_packet_id_hi', uint32_t, 468), ('cp_packet_exe_status_lo', uint32_t, 472), ('cp_packet_exe_status_hi', uint32_t, 476), ('reserved_120', uint32_t, 480), ('reserved_121', uint32_t, 484), ('reserved_122', uint32_t, 488), ('reserved_123', uint32_t, 492), ('ctx_save_base_addr_lo', uint32_t, 496), ('ctx_save_base_addr_hi', uint32_t, 500), ('reserved_126', uint32_t, 504), ('reserved_127', uint32_t, 508), ('cp_mqd_base_addr_lo', uint32_t, 512), ('cp_mqd_base_addr_hi', uint32_t, 516), ('cp_hqd_active', uint32_t, 520), ('cp_hqd_vmid', uint32_t, 524), ('cp_hqd_persistent_state', uint32_t, 528), ('cp_hqd_pipe_priority', uint32_t, 532), ('cp_hqd_queue_priority', uint32_t, 536), ('cp_hqd_quantum', uint32_t, 540), ('cp_hqd_pq_base_lo', uint32_t, 544), ('cp_hqd_pq_base_hi', uint32_t, 548), ('cp_hqd_pq_rptr', uint32_t, 552), ('cp_hqd_pq_rptr_report_addr_lo', uint32_t, 556), ('cp_hqd_pq_rptr_report_addr_hi', uint32_t, 560), ('cp_hqd_pq_wptr_poll_addr_lo', uint32_t, 564), ('cp_hqd_pq_wptr_poll_addr_hi', uint32_t, 568), ('cp_hqd_pq_doorbell_control', uint32_t, 572), ('reserved_144', uint32_t, 576), ('cp_hqd_pq_control', uint32_t, 580), ('cp_hqd_ib_base_addr_lo', uint32_t, 584), ('cp_hqd_ib_base_addr_hi', uint32_t, 588), ('cp_hqd_ib_rptr', uint32_t, 592), ('cp_hqd_ib_control', uint32_t, 596), ('cp_hqd_iq_timer', uint32_t, 600), ('cp_hqd_iq_rptr', uint32_t, 604), ('cp_hqd_dequeue_request', uint32_t, 608), ('cp_hqd_dma_offload', uint32_t, 612), ('cp_hqd_sema_cmd', uint32_t, 616), ('cp_hqd_msg_type', uint32_t, 620), ('cp_hqd_atomic0_preop_lo', uint32_t, 624), ('cp_hqd_atomic0_preop_hi', uint32_t, 628), ('cp_hqd_atomic1_preop_lo', uint32_t, 632), ('cp_hqd_atomic1_preop_hi', uint32_t, 636), ('cp_hqd_hq_status0', uint32_t, 640), ('cp_hqd_hq_control0', uint32_t, 644), ('cp_mqd_control', uint32_t, 648), ('cp_hqd_hq_status1', uint32_t, 652), ('cp_hqd_hq_control1', uint32_t, 656), ('cp_hqd_eop_base_addr_lo', uint32_t, 660), ('cp_hqd_eop_base_addr_hi', uint32_t, 664), ('cp_hqd_eop_control', uint32_t, 668), ('cp_hqd_eop_rptr', uint32_t, 672), ('cp_hqd_eop_wptr', uint32_t, 676), ('cp_hqd_eop_done_events', uint32_t, 680), ('cp_hqd_ctx_save_base_addr_lo', uint32_t, 684), ('cp_hqd_ctx_save_base_addr_hi', uint32_t, 688), ('cp_hqd_ctx_save_control', uint32_t, 692), ('cp_hqd_cntl_stack_offset', uint32_t, 696), ('cp_hqd_cntl_stack_size', uint32_t, 700), ('cp_hqd_wg_state_offset', uint32_t, 704), ('cp_hqd_ctx_save_size', uint32_t, 708), ('reserved_178', uint32_t, 712), ('cp_hqd_error', uint32_t, 716), ('cp_hqd_eop_wptr_mem', uint32_t, 720), ('cp_hqd_aql_control', uint32_t, 724), ('cp_hqd_pq_wptr_lo', uint32_t, 728), ('cp_hqd_pq_wptr_hi', uint32_t, 732), ('reserved_184', uint32_t, 736), ('reserved_185', uint32_t, 740), ('reserved_186', uint32_t, 744), ('reserved_187', uint32_t, 748), ('reserved_188', uint32_t, 752), ('reserved_189', uint32_t, 756), ('reserved_190', uint32_t, 760), ('reserved_191', uint32_t, 764), ('iqtimer_pkt_header', uint32_t, 768), ('iqtimer_pkt_dw0', uint32_t, 772), ('iqtimer_pkt_dw1', uint32_t, 776), ('iqtimer_pkt_dw2', uint32_t, 780), ('iqtimer_pkt_dw3', uint32_t, 784), ('iqtimer_pkt_dw4', uint32_t, 788), ('iqtimer_pkt_dw5', uint32_t, 792), ('iqtimer_pkt_dw6', uint32_t, 796), ('iqtimer_pkt_dw7', uint32_t, 800), ('iqtimer_pkt_dw8', uint32_t, 804), ('iqtimer_pkt_dw9', uint32_t, 808), ('iqtimer_pkt_dw10', uint32_t, 812), ('iqtimer_pkt_dw11', uint32_t, 816), ('iqtimer_pkt_dw12', uint32_t, 820), ('iqtimer_pkt_dw13', uint32_t, 824), ('iqtimer_pkt_dw14', uint32_t, 828), ('iqtimer_pkt_dw15', uint32_t, 832), ('iqtimer_pkt_dw16', uint32_t, 836), ('iqtimer_pkt_dw17', uint32_t, 840), ('iqtimer_pkt_dw18', uint32_t, 844), ('iqtimer_pkt_dw19', uint32_t, 848), ('iqtimer_pkt_dw20', uint32_t, 852), ('iqtimer_pkt_dw21', uint32_t, 856), ('iqtimer_pkt_dw22', uint32_t, 860), ('iqtimer_pkt_dw23', uint32_t, 864), ('iqtimer_pkt_dw24', uint32_t, 868), ('iqtimer_pkt_dw25', uint32_t, 872), ('iqtimer_pkt_dw26', uint32_t, 876), ('iqtimer_pkt_dw27', uint32_t, 880), ('iqtimer_pkt_dw28', uint32_t, 884), ('iqtimer_pkt_dw29', uint32_t, 888), ('iqtimer_pkt_dw30', uint32_t, 892), ('iqtimer_pkt_dw31', uint32_t, 896), ('reserved_225', uint32_t, 900), ('reserved_226', uint32_t, 904), ('reserved_227', uint32_t, 908), ('set_resources_header', uint32_t, 912), ('set_resources_dw1', uint32_t, 916), ('set_resources_dw2', uint32_t, 920), ('set_resources_dw3', uint32_t, 924), ('set_resources_dw4', uint32_t, 928), ('set_resources_dw5', uint32_t, 932), ('set_resources_dw6', uint32_t, 936), ('set_resources_dw7', uint32_t, 940), ('reserved_236', uint32_t, 944), ('reserved_237', uint32_t, 948), ('reserved_238', uint32_t, 952), ('reserved_239', uint32_t, 956), ('queue_doorbell_id0', uint32_t, 960), ('queue_doorbell_id1', uint32_t, 964), ('queue_doorbell_id2', uint32_t, 968), ('queue_doorbell_id3', uint32_t, 972), ('queue_doorbell_id4', uint32_t, 976), ('queue_doorbell_id5', uint32_t, 980), ('queue_doorbell_id6', uint32_t, 984), ('queue_doorbell_id7', uint32_t, 988), ('queue_doorbell_id8', uint32_t, 992), ('queue_doorbell_id9', uint32_t, 996), ('queue_doorbell_id10', uint32_t, 1000), ('queue_doorbell_id11', uint32_t, 1004), ('queue_doorbell_id12', uint32_t, 1008), ('queue_doorbell_id13', uint32_t, 1012), ('queue_doorbell_id14', uint32_t, 1016), ('queue_doorbell_id15', uint32_t, 1020), ('control_buf_addr_lo', uint32_t, 1024), ('control_buf_addr_hi', uint32_t, 1028), ('control_buf_wptr_lo', uint32_t, 1032), ('control_buf_wptr_hi', uint32_t, 1036), ('control_buf_dptr_lo', uint32_t, 1040), ('control_buf_dptr_hi', uint32_t, 1044), ('control_buf_num_entries', uint32_t, 1048), ('draw_ring_addr_lo', uint32_t, 1052), ('draw_ring_addr_hi', uint32_t, 1056), ('reserved_265', uint32_t, 1060), ('reserved_266', uint32_t, 1064), ('reserved_267', uint32_t, 1068), ('reserved_268', uint32_t, 1072), ('reserved_269', uint32_t, 1076), ('reserved_270', uint32_t, 1080), ('reserved_271', uint32_t, 1084), ('dfwx_flags', uint32_t, 1088), ('dfwx_slot', uint32_t, 1092), ('dfwx_client_data_addr_lo', uint32_t, 1096), ('dfwx_client_data_addr_hi', uint32_t, 1100), ('reserved_276', uint32_t, 1104), ('reserved_277', uint32_t, 1108), ('reserved_278', uint32_t, 1112), ('reserved_279', uint32_t, 1116), ('reserved_280', uint32_t, 1120), ('reserved_281', uint32_t, 1124), ('reserved_282', uint32_t, 1128), ('reserved_283', uint32_t, 1132), ('reserved_284', uint32_t, 1136), ('reserved_285', uint32_t, 1140), ('reserved_286', uint32_t, 1144), ('reserved_287', uint32_t, 1148), ('reserved_288', uint32_t, 1152), ('reserved_289', uint32_t, 1156), ('reserved_290', uint32_t, 1160), ('reserved_291', uint32_t, 1164), ('reserved_292', uint32_t, 1168), ('reserved_293', uint32_t, 1172), ('reserved_294', uint32_t, 1176), ('reserved_295', uint32_t, 1180), ('reserved_296', uint32_t, 1184), ('reserved_297', uint32_t, 1188), ('reserved_298', uint32_t, 1192), ('reserved_299', uint32_t, 1196), ('reserved_300', uint32_t, 1200), ('reserved_301', uint32_t, 1204), ('reserved_302', uint32_t, 1208), ('reserved_303', uint32_t, 1212), ('reserved_304', uint32_t, 1216), ('reserved_305', uint32_t, 1220), ('reserved_306', uint32_t, 1224), ('reserved_307', uint32_t, 1228), ('reserved_308', uint32_t, 1232), ('reserved_309', uint32_t, 1236), ('reserved_310', uint32_t, 1240), ('reserved_311', uint32_t, 1244), ('reserved_312', uint32_t, 1248), ('reserved_313', uint32_t, 1252), ('reserved_314', uint32_t, 1256), ('reserved_315', uint32_t, 1260), ('reserved_316', uint32_t, 1264), ('reserved_317', uint32_t, 1268), ('reserved_318', uint32_t, 1272), ('reserved_319', uint32_t, 1276), ('reserved_320', uint32_t, 1280), ('reserved_321', uint32_t, 1284), ('reserved_322', uint32_t, 1288), ('reserved_323', uint32_t, 1292), ('reserved_324', uint32_t, 1296), ('reserved_325', uint32_t, 1300), ('reserved_326', uint32_t, 1304), ('reserved_327', uint32_t, 1308), ('reserved_328', uint32_t, 1312), ('reserved_329', uint32_t, 1316), ('reserved_330', uint32_t, 1320), ('reserved_331', uint32_t, 1324), ('reserved_332', uint32_t, 1328), ('reserved_333', uint32_t, 1332), ('reserved_334', uint32_t, 1336), ('reserved_335', uint32_t, 1340), ('reserved_336', uint32_t, 1344), ('reserved_337', uint32_t, 1348), ('reserved_338', uint32_t, 1352), ('reserved_339', uint32_t, 1356), ('reserved_340', uint32_t, 1360), ('reserved_341', uint32_t, 1364), ('reserved_342', uint32_t, 1368), ('reserved_343', uint32_t, 1372), ('reserved_344', uint32_t, 1376), ('reserved_345', uint32_t, 1380), ('reserved_346', uint32_t, 1384), ('reserved_347', uint32_t, 1388), ('reserved_348', uint32_t, 1392), ('reserved_349', uint32_t, 1396), ('reserved_350', uint32_t, 1400), ('reserved_351', uint32_t, 1404), ('reserved_352', uint32_t, 1408), ('reserved_353', uint32_t, 1412), ('reserved_354', uint32_t, 1416), ('reserved_355', uint32_t, 1420), ('reserved_356', uint32_t, 1424), ('reserved_357', uint32_t, 1428), ('reserved_358', uint32_t, 1432), ('reserved_359', uint32_t, 1436), ('reserved_360', uint32_t, 1440), ('reserved_361', uint32_t, 1444), ('reserved_362', uint32_t, 1448), ('reserved_363', uint32_t, 1452), ('reserved_364', uint32_t, 1456), ('reserved_365', uint32_t, 1460), ('reserved_366', uint32_t, 1464), ('reserved_367', uint32_t, 1468), ('reserved_368', uint32_t, 1472), ('reserved_369', uint32_t, 1476), ('reserved_370', uint32_t, 1480), ('reserved_371', uint32_t, 1484), ('reserved_372', uint32_t, 1488), ('reserved_373', uint32_t, 1492), ('reserved_374', uint32_t, 1496), ('reserved_375', uint32_t, 1500), ('reserved_376', uint32_t, 1504), ('reserved_377', uint32_t, 1508), ('reserved_378', uint32_t, 1512), ('reserved_379', uint32_t, 1516), ('reserved_380', uint32_t, 1520), ('reserved_381', uint32_t, 1524), ('reserved_382', uint32_t, 1528), ('reserved_383', uint32_t, 1532), ('reserved_384', uint32_t, 1536), ('reserved_385', uint32_t, 1540), ('reserved_386', uint32_t, 1544), ('reserved_387', uint32_t, 1548), ('reserved_388', uint32_t, 1552), ('reserved_389', uint32_t, 1556), ('reserved_390', uint32_t, 1560), ('reserved_391', uint32_t, 1564), ('reserved_392', uint32_t, 1568), ('reserved_393', uint32_t, 1572), ('reserved_394', uint32_t, 1576), ('reserved_395', uint32_t, 1580), ('reserved_396', uint32_t, 1584), ('reserved_397', uint32_t, 1588), ('reserved_398', uint32_t, 1592), ('reserved_399', uint32_t, 1596), ('reserved_400', uint32_t, 1600), ('reserved_401', uint32_t, 1604), ('reserved_402', uint32_t, 1608), ('reserved_403', uint32_t, 1612), ('reserved_404', uint32_t, 1616), ('reserved_405', uint32_t, 1620), ('reserved_406', uint32_t, 1624), ('reserved_407', uint32_t, 1628), ('reserved_408', uint32_t, 1632), ('reserved_409', uint32_t, 1636), ('reserved_410', uint32_t, 1640), ('reserved_411', uint32_t, 1644), ('reserved_412', uint32_t, 1648), ('reserved_413', uint32_t, 1652), ('reserved_414', uint32_t, 1656), ('reserved_415', uint32_t, 1660), ('reserved_416', uint32_t, 1664), ('reserved_417', uint32_t, 1668), ('reserved_418', uint32_t, 1672), ('reserved_419', uint32_t, 1676), ('reserved_420', uint32_t, 1680), ('reserved_421', uint32_t, 1684), ('reserved_422', uint32_t, 1688), ('reserved_423', uint32_t, 1692), ('reserved_424', uint32_t, 1696), ('reserved_425', uint32_t, 1700), ('reserved_426', uint32_t, 1704), ('reserved_427', uint32_t, 1708), ('reserved_428', uint32_t, 1712), ('reserved_429', uint32_t, 1716), ('reserved_430', uint32_t, 1720), ('reserved_431', uint32_t, 1724), ('reserved_432', uint32_t, 1728), ('reserved_433', uint32_t, 1732), ('reserved_434', uint32_t, 1736), ('reserved_435', uint32_t, 1740), ('reserved_436', uint32_t, 1744), ('reserved_437', uint32_t, 1748), ('reserved_438', uint32_t, 1752), ('reserved_439', uint32_t, 1756), ('reserved_440', uint32_t, 1760), ('reserved_441', uint32_t, 1764), ('reserved_442', uint32_t, 1768), ('reserved_443', uint32_t, 1772), ('reserved_444', uint32_t, 1776), ('reserved_445', uint32_t, 1780), ('reserved_446', uint32_t, 1784), ('reserved_447', uint32_t, 1788), ('gws_0_val', uint32_t, 1792), ('gws_1_val', uint32_t, 1796), ('gws_2_val', uint32_t, 1800), ('gws_3_val', uint32_t, 1804), ('gws_4_val', uint32_t, 1808), ('gws_5_val', uint32_t, 1812), ('gws_6_val', uint32_t, 1816), ('gws_7_val', uint32_t, 1820), ('gws_8_val', uint32_t, 1824), ('gws_9_val', uint32_t, 1828), ('gws_10_val', uint32_t, 1832), ('gws_11_val', uint32_t, 1836), ('gws_12_val', uint32_t, 1840), ('gws_13_val', uint32_t, 1844), ('gws_14_val', uint32_t, 1848), ('gws_15_val', uint32_t, 1852), ('gws_16_val', uint32_t, 1856), ('gws_17_val', uint32_t, 1860), ('gws_18_val', uint32_t, 1864), ('gws_19_val', uint32_t, 1868), ('gws_20_val', uint32_t, 1872), ('gws_21_val', uint32_t, 1876), ('gws_22_val', uint32_t, 1880), ('gws_23_val', uint32_t, 1884), ('gws_24_val', uint32_t, 1888), ('gws_25_val', uint32_t, 1892), ('gws_26_val', uint32_t, 1896), ('gws_27_val', uint32_t, 1900), ('gws_28_val', uint32_t, 1904), ('gws_29_val', uint32_t, 1908), ('gws_30_val', uint32_t, 1912), ('gws_31_val', uint32_t, 1916), ('gws_32_val', uint32_t, 1920), ('gws_33_val', uint32_t, 1924), ('gws_34_val', uint32_t, 1928), ('gws_35_val', uint32_t, 1932), ('gws_36_val', uint32_t, 1936), ('gws_37_val', uint32_t, 1940), ('gws_38_val', uint32_t, 1944), ('gws_39_val', uint32_t, 1948), ('gws_40_val', uint32_t, 1952), ('gws_41_val', uint32_t, 1956), ('gws_42_val', uint32_t, 1960), ('gws_43_val', uint32_t, 1964), ('gws_44_val', uint32_t, 1968), ('gws_45_val', uint32_t, 1972), ('gws_46_val', uint32_t, 1976), ('gws_47_val', uint32_t, 1980), ('gws_48_val', uint32_t, 1984), ('gws_49_val', uint32_t, 1988), ('gws_50_val', uint32_t, 1992), ('gws_51_val', uint32_t, 1996), ('gws_52_val', uint32_t, 2000), ('gws_53_val', uint32_t, 2004), ('gws_54_val', uint32_t, 2008), ('gws_55_val', uint32_t, 2012), ('gws_56_val', uint32_t, 2016), ('gws_57_val', uint32_t, 2020), ('gws_58_val', uint32_t, 2024), ('gws_59_val', uint32_t, 2028), ('gws_60_val', uint32_t, 2032), ('gws_61_val', uint32_t, 2036), ('gws_62_val', uint32_t, 2040), ('gws_63_val', uint32_t, 2044)])
enum_amdgpu_vm_level: dict[int, str] = {(AMDGPU_VM_PDB2:=0): 'AMDGPU_VM_PDB2', (AMDGPU_VM_PDB1:=1): 'AMDGPU_VM_PDB1', (AMDGPU_VM_PDB0:=2): 'AMDGPU_VM_PDB0', (AMDGPU_VM_PTB:=3): 'AMDGPU_VM_PTB'}
table: dict[int, str] = {(IP_DISCOVERY:=0): 'IP_DISCOVERY', (GC:=1): 'GC', (HARVEST_INFO:=2): 'HARVEST_INFO', (VCN_INFO:=3): 'VCN_INFO', (MALL_INFO:=4): 'MALL_INFO', (NPS_INFO:=5): 'NPS_INFO', (TOTAL_TABLES:=6): 'TOTAL_TABLES'}
@c.record
class struct_table_info(c.Struct):
  SIZE = 8
  offset: int
  checksum: int
  size: int
  padding: int
uint16_t: TypeAlias = ctypes.c_uint16
struct_table_info.register_fields([('offset', uint16_t, 0), ('checksum', uint16_t, 2), ('size', uint16_t, 4), ('padding', uint16_t, 6)])
table_info: TypeAlias = struct_table_info
@c.record
class struct_binary_header(c.Struct):
  SIZE = 60
  binary_signature: int
  version_major: int
  version_minor: int
  binary_checksum: int
  binary_size: int
  table_list: c.Array[struct_table_info, Literal[6]]
struct_binary_header.register_fields([('binary_signature', uint32_t, 0), ('version_major', uint16_t, 4), ('version_minor', uint16_t, 6), ('binary_checksum', uint16_t, 8), ('binary_size', uint16_t, 10), ('table_list', c.Array[table_info, Literal[6]], 12)])
binary_header: TypeAlias = struct_binary_header
@c.record
class struct_die_info(c.Struct):
  SIZE = 4
  die_id: int
  die_offset: int
struct_die_info.register_fields([('die_id', uint16_t, 0), ('die_offset', uint16_t, 2)])
die_info: TypeAlias = struct_die_info
@c.record
class struct_ip_discovery_header(c.Struct):
  SIZE = 80
  signature: int
  version: int
  size: int
  id: int
  num_dies: int
  die_info: c.Array[struct_die_info, Literal[16]]
  padding: c.Array[ctypes.c_uint16, Literal[1]]
  base_addr_64_bit: int
  reserved: int
  reserved2: int
uint8_t: TypeAlias = ctypes.c_ubyte
struct_ip_discovery_header.register_fields([('signature', uint32_t, 0), ('version', uint16_t, 4), ('size', uint16_t, 6), ('id', uint32_t, 8), ('num_dies', uint16_t, 12), ('die_info', c.Array[die_info, Literal[16]], 14), ('padding', c.Array[uint16_t, Literal[1]], 78), ('base_addr_64_bit', uint8_t, 78, 1, 0), ('reserved', uint8_t, 78, 7, 1), ('reserved2', uint8_t, 79)])
ip_discovery_header: TypeAlias = struct_ip_discovery_header
@c.record
class struct_ip(c.Struct):
  SIZE = 8
  hw_id: int
  number_instance: int
  num_base_address: int
  major: int
  minor: int
  revision: int
  harvest: int
  reserved: int
  base_address: c.Array[ctypes.c_uint32, Literal[0]]
struct_ip.register_fields([('hw_id', uint16_t, 0), ('number_instance', uint8_t, 2), ('num_base_address', uint8_t, 3), ('major', uint8_t, 4), ('minor', uint8_t, 5), ('revision', uint8_t, 6), ('harvest', uint8_t, 7, 4, 0), ('reserved', uint8_t, 7, 4, 4), ('base_address', c.Array[uint32_t, Literal[0]], 8)])
ip: TypeAlias = struct_ip
@c.record
class struct_ip_v3(c.Struct):
  SIZE = 8
  hw_id: int
  instance_number: int
  num_base_address: int
  major: int
  minor: int
  revision: int
  sub_revision: int
  variant: int
  base_address: c.Array[ctypes.c_uint32, Literal[0]]
struct_ip_v3.register_fields([('hw_id', uint16_t, 0), ('instance_number', uint8_t, 2), ('num_base_address', uint8_t, 3), ('major', uint8_t, 4), ('minor', uint8_t, 5), ('revision', uint8_t, 6), ('sub_revision', uint8_t, 7, 4, 0), ('variant', uint8_t, 7, 4, 4), ('base_address', c.Array[uint32_t, Literal[0]], 8)])
ip_v3: TypeAlias = struct_ip_v3
@c.record
class struct_ip_v4(c.Struct):
  SIZE = 7
  hw_id: int
  instance_number: int
  num_base_address: int
  major: int
  minor: int
  revision: int
struct_ip_v4.register_fields([('hw_id', uint16_t, 0), ('instance_number', uint8_t, 2), ('num_base_address', uint8_t, 3), ('major', uint8_t, 4), ('minor', uint8_t, 5), ('revision', uint8_t, 6)])
ip_v4: TypeAlias = struct_ip_v4
@c.record
class struct_die_header(c.Struct):
  SIZE = 4
  die_id: int
  num_ips: int
struct_die_header.register_fields([('die_id', uint16_t, 0), ('num_ips', uint16_t, 2)])
die_header: TypeAlias = struct_die_header
@c.record
class struct_ip_structure(c.Struct):
  SIZE = 24
  header: c.POINTER[struct_ip_discovery_header]
  die: struct_die
@c.record
class struct_die(c.Struct):
  SIZE = 16
  die_header: c.POINTER[struct_die_header]
  ip_list: c.POINTER[struct_ip]
  ip_v3_list: c.POINTER[struct_ip_v3]
  ip_v4_list: c.POINTER[struct_ip_v4]
struct_die.register_fields([('die_header', c.POINTER[die_header], 0), ('ip_list', c.POINTER[ip], 8), ('ip_v3_list', c.POINTER[ip_v3], 8), ('ip_v4_list', c.POINTER[ip_v4], 8)])
struct_ip_structure.register_fields([('header', c.POINTER[ip_discovery_header], 0), ('die', struct_die, 8)])
ip_structure: TypeAlias = struct_ip_structure
@c.record
class struct_gpu_info_header(c.Struct):
  SIZE = 12
  table_id: int
  version_major: int
  version_minor: int
  size: int
struct_gpu_info_header.register_fields([('table_id', uint32_t, 0), ('version_major', uint16_t, 4), ('version_minor', uint16_t, 6), ('size', uint32_t, 8)])
@c.record
class struct_gc_info_v1_0(c.Struct):
  SIZE = 88
  header: struct_gpu_info_header
  gc_num_se: int
  gc_num_wgp0_per_sa: int
  gc_num_wgp1_per_sa: int
  gc_num_rb_per_se: int
  gc_num_gl2c: int
  gc_num_gprs: int
  gc_num_max_gs_thds: int
  gc_gs_table_depth: int
  gc_gsprim_buff_depth: int
  gc_parameter_cache_depth: int
  gc_double_offchip_lds_buffer: int
  gc_wave_size: int
  gc_max_waves_per_simd: int
  gc_max_scratch_slots_per_cu: int
  gc_lds_size: int
  gc_num_sc_per_se: int
  gc_num_sa_per_se: int
  gc_num_packer_per_sc: int
  gc_num_gl2a: int
struct_gc_info_v1_0.register_fields([('header', struct_gpu_info_header, 0), ('gc_num_se', uint32_t, 12), ('gc_num_wgp0_per_sa', uint32_t, 16), ('gc_num_wgp1_per_sa', uint32_t, 20), ('gc_num_rb_per_se', uint32_t, 24), ('gc_num_gl2c', uint32_t, 28), ('gc_num_gprs', uint32_t, 32), ('gc_num_max_gs_thds', uint32_t, 36), ('gc_gs_table_depth', uint32_t, 40), ('gc_gsprim_buff_depth', uint32_t, 44), ('gc_parameter_cache_depth', uint32_t, 48), ('gc_double_offchip_lds_buffer', uint32_t, 52), ('gc_wave_size', uint32_t, 56), ('gc_max_waves_per_simd', uint32_t, 60), ('gc_max_scratch_slots_per_cu', uint32_t, 64), ('gc_lds_size', uint32_t, 68), ('gc_num_sc_per_se', uint32_t, 72), ('gc_num_sa_per_se', uint32_t, 76), ('gc_num_packer_per_sc', uint32_t, 80), ('gc_num_gl2a', uint32_t, 84)])
@c.record
class struct_gc_info_v1_1(c.Struct):
  SIZE = 100
  header: struct_gpu_info_header
  gc_num_se: int
  gc_num_wgp0_per_sa: int
  gc_num_wgp1_per_sa: int
  gc_num_rb_per_se: int
  gc_num_gl2c: int
  gc_num_gprs: int
  gc_num_max_gs_thds: int
  gc_gs_table_depth: int
  gc_gsprim_buff_depth: int
  gc_parameter_cache_depth: int
  gc_double_offchip_lds_buffer: int
  gc_wave_size: int
  gc_max_waves_per_simd: int
  gc_max_scratch_slots_per_cu: int
  gc_lds_size: int
  gc_num_sc_per_se: int
  gc_num_sa_per_se: int
  gc_num_packer_per_sc: int
  gc_num_gl2a: int
  gc_num_tcp_per_sa: int
  gc_num_sdp_interface: int
  gc_num_tcps: int
struct_gc_info_v1_1.register_fields([('header', struct_gpu_info_header, 0), ('gc_num_se', uint32_t, 12), ('gc_num_wgp0_per_sa', uint32_t, 16), ('gc_num_wgp1_per_sa', uint32_t, 20), ('gc_num_rb_per_se', uint32_t, 24), ('gc_num_gl2c', uint32_t, 28), ('gc_num_gprs', uint32_t, 32), ('gc_num_max_gs_thds', uint32_t, 36), ('gc_gs_table_depth', uint32_t, 40), ('gc_gsprim_buff_depth', uint32_t, 44), ('gc_parameter_cache_depth', uint32_t, 48), ('gc_double_offchip_lds_buffer', uint32_t, 52), ('gc_wave_size', uint32_t, 56), ('gc_max_waves_per_simd', uint32_t, 60), ('gc_max_scratch_slots_per_cu', uint32_t, 64), ('gc_lds_size', uint32_t, 68), ('gc_num_sc_per_se', uint32_t, 72), ('gc_num_sa_per_se', uint32_t, 76), ('gc_num_packer_per_sc', uint32_t, 80), ('gc_num_gl2a', uint32_t, 84), ('gc_num_tcp_per_sa', uint32_t, 88), ('gc_num_sdp_interface', uint32_t, 92), ('gc_num_tcps', uint32_t, 96)])
@c.record
class struct_gc_info_v1_2(c.Struct):
  SIZE = 132
  header: struct_gpu_info_header
  gc_num_se: int
  gc_num_wgp0_per_sa: int
  gc_num_wgp1_per_sa: int
  gc_num_rb_per_se: int
  gc_num_gl2c: int
  gc_num_gprs: int
  gc_num_max_gs_thds: int
  gc_gs_table_depth: int
  gc_gsprim_buff_depth: int
  gc_parameter_cache_depth: int
  gc_double_offchip_lds_buffer: int
  gc_wave_size: int
  gc_max_waves_per_simd: int
  gc_max_scratch_slots_per_cu: int
  gc_lds_size: int
  gc_num_sc_per_se: int
  gc_num_sa_per_se: int
  gc_num_packer_per_sc: int
  gc_num_gl2a: int
  gc_num_tcp_per_sa: int
  gc_num_sdp_interface: int
  gc_num_tcps: int
  gc_num_tcp_per_wpg: int
  gc_tcp_l1_size: int
  gc_num_sqc_per_wgp: int
  gc_l1_instruction_cache_size_per_sqc: int
  gc_l1_data_cache_size_per_sqc: int
  gc_gl1c_per_sa: int
  gc_gl1c_size_per_instance: int
  gc_gl2c_per_gpu: int
struct_gc_info_v1_2.register_fields([('header', struct_gpu_info_header, 0), ('gc_num_se', uint32_t, 12), ('gc_num_wgp0_per_sa', uint32_t, 16), ('gc_num_wgp1_per_sa', uint32_t, 20), ('gc_num_rb_per_se', uint32_t, 24), ('gc_num_gl2c', uint32_t, 28), ('gc_num_gprs', uint32_t, 32), ('gc_num_max_gs_thds', uint32_t, 36), ('gc_gs_table_depth', uint32_t, 40), ('gc_gsprim_buff_depth', uint32_t, 44), ('gc_parameter_cache_depth', uint32_t, 48), ('gc_double_offchip_lds_buffer', uint32_t, 52), ('gc_wave_size', uint32_t, 56), ('gc_max_waves_per_simd', uint32_t, 60), ('gc_max_scratch_slots_per_cu', uint32_t, 64), ('gc_lds_size', uint32_t, 68), ('gc_num_sc_per_se', uint32_t, 72), ('gc_num_sa_per_se', uint32_t, 76), ('gc_num_packer_per_sc', uint32_t, 80), ('gc_num_gl2a', uint32_t, 84), ('gc_num_tcp_per_sa', uint32_t, 88), ('gc_num_sdp_interface', uint32_t, 92), ('gc_num_tcps', uint32_t, 96), ('gc_num_tcp_per_wpg', uint32_t, 100), ('gc_tcp_l1_size', uint32_t, 104), ('gc_num_sqc_per_wgp', uint32_t, 108), ('gc_l1_instruction_cache_size_per_sqc', uint32_t, 112), ('gc_l1_data_cache_size_per_sqc', uint32_t, 116), ('gc_gl1c_per_sa', uint32_t, 120), ('gc_gl1c_size_per_instance', uint32_t, 124), ('gc_gl2c_per_gpu', uint32_t, 128)])
@c.record
class struct_gc_info_v1_3(c.Struct):
  SIZE = 164
  header: struct_gpu_info_header
  gc_num_se: int
  gc_num_wgp0_per_sa: int
  gc_num_wgp1_per_sa: int
  gc_num_rb_per_se: int
  gc_num_gl2c: int
  gc_num_gprs: int
  gc_num_max_gs_thds: int
  gc_gs_table_depth: int
  gc_gsprim_buff_depth: int
  gc_parameter_cache_depth: int
  gc_double_offchip_lds_buffer: int
  gc_wave_size: int
  gc_max_waves_per_simd: int
  gc_max_scratch_slots_per_cu: int
  gc_lds_size: int
  gc_num_sc_per_se: int
  gc_num_sa_per_se: int
  gc_num_packer_per_sc: int
  gc_num_gl2a: int
  gc_num_tcp_per_sa: int
  gc_num_sdp_interface: int
  gc_num_tcps: int
  gc_num_tcp_per_wpg: int
  gc_tcp_l1_size: int
  gc_num_sqc_per_wgp: int
  gc_l1_instruction_cache_size_per_sqc: int
  gc_l1_data_cache_size_per_sqc: int
  gc_gl1c_per_sa: int
  gc_gl1c_size_per_instance: int
  gc_gl2c_per_gpu: int
  gc_tcp_size_per_cu: int
  gc_tcp_cache_line_size: int
  gc_instruction_cache_size_per_sqc: int
  gc_instruction_cache_line_size: int
  gc_scalar_data_cache_size_per_sqc: int
  gc_scalar_data_cache_line_size: int
  gc_tcc_size: int
  gc_tcc_cache_line_size: int
struct_gc_info_v1_3.register_fields([('header', struct_gpu_info_header, 0), ('gc_num_se', uint32_t, 12), ('gc_num_wgp0_per_sa', uint32_t, 16), ('gc_num_wgp1_per_sa', uint32_t, 20), ('gc_num_rb_per_se', uint32_t, 24), ('gc_num_gl2c', uint32_t, 28), ('gc_num_gprs', uint32_t, 32), ('gc_num_max_gs_thds', uint32_t, 36), ('gc_gs_table_depth', uint32_t, 40), ('gc_gsprim_buff_depth', uint32_t, 44), ('gc_parameter_cache_depth', uint32_t, 48), ('gc_double_offchip_lds_buffer', uint32_t, 52), ('gc_wave_size', uint32_t, 56), ('gc_max_waves_per_simd', uint32_t, 60), ('gc_max_scratch_slots_per_cu', uint32_t, 64), ('gc_lds_size', uint32_t, 68), ('gc_num_sc_per_se', uint32_t, 72), ('gc_num_sa_per_se', uint32_t, 76), ('gc_num_packer_per_sc', uint32_t, 80), ('gc_num_gl2a', uint32_t, 84), ('gc_num_tcp_per_sa', uint32_t, 88), ('gc_num_sdp_interface', uint32_t, 92), ('gc_num_tcps', uint32_t, 96), ('gc_num_tcp_per_wpg', uint32_t, 100), ('gc_tcp_l1_size', uint32_t, 104), ('gc_num_sqc_per_wgp', uint32_t, 108), ('gc_l1_instruction_cache_size_per_sqc', uint32_t, 112), ('gc_l1_data_cache_size_per_sqc', uint32_t, 116), ('gc_gl1c_per_sa', uint32_t, 120), ('gc_gl1c_size_per_instance', uint32_t, 124), ('gc_gl2c_per_gpu', uint32_t, 128), ('gc_tcp_size_per_cu', uint32_t, 132), ('gc_tcp_cache_line_size', uint32_t, 136), ('gc_instruction_cache_size_per_sqc', uint32_t, 140), ('gc_instruction_cache_line_size', uint32_t, 144), ('gc_scalar_data_cache_size_per_sqc', uint32_t, 148), ('gc_scalar_data_cache_line_size', uint32_t, 152), ('gc_tcc_size', uint32_t, 156), ('gc_tcc_cache_line_size', uint32_t, 160)])
@c.record
class struct_gc_info_v2_0(c.Struct):
  SIZE = 80
  header: struct_gpu_info_header
  gc_num_se: int
  gc_num_cu_per_sh: int
  gc_num_sh_per_se: int
  gc_num_rb_per_se: int
  gc_num_tccs: int
  gc_num_gprs: int
  gc_num_max_gs_thds: int
  gc_gs_table_depth: int
  gc_gsprim_buff_depth: int
  gc_parameter_cache_depth: int
  gc_double_offchip_lds_buffer: int
  gc_wave_size: int
  gc_max_waves_per_simd: int
  gc_max_scratch_slots_per_cu: int
  gc_lds_size: int
  gc_num_sc_per_se: int
  gc_num_packer_per_sc: int
struct_gc_info_v2_0.register_fields([('header', struct_gpu_info_header, 0), ('gc_num_se', uint32_t, 12), ('gc_num_cu_per_sh', uint32_t, 16), ('gc_num_sh_per_se', uint32_t, 20), ('gc_num_rb_per_se', uint32_t, 24), ('gc_num_tccs', uint32_t, 28), ('gc_num_gprs', uint32_t, 32), ('gc_num_max_gs_thds', uint32_t, 36), ('gc_gs_table_depth', uint32_t, 40), ('gc_gsprim_buff_depth', uint32_t, 44), ('gc_parameter_cache_depth', uint32_t, 48), ('gc_double_offchip_lds_buffer', uint32_t, 52), ('gc_wave_size', uint32_t, 56), ('gc_max_waves_per_simd', uint32_t, 60), ('gc_max_scratch_slots_per_cu', uint32_t, 64), ('gc_lds_size', uint32_t, 68), ('gc_num_sc_per_se', uint32_t, 72), ('gc_num_packer_per_sc', uint32_t, 76)])
@c.record
class struct_gc_info_v2_1(c.Struct):
  SIZE = 108
  header: struct_gpu_info_header
  gc_num_se: int
  gc_num_cu_per_sh: int
  gc_num_sh_per_se: int
  gc_num_rb_per_se: int
  gc_num_tccs: int
  gc_num_gprs: int
  gc_num_max_gs_thds: int
  gc_gs_table_depth: int
  gc_gsprim_buff_depth: int
  gc_parameter_cache_depth: int
  gc_double_offchip_lds_buffer: int
  gc_wave_size: int
  gc_max_waves_per_simd: int
  gc_max_scratch_slots_per_cu: int
  gc_lds_size: int
  gc_num_sc_per_se: int
  gc_num_packer_per_sc: int
  gc_num_tcp_per_sh: int
  gc_tcp_size_per_cu: int
  gc_num_sdp_interface: int
  gc_num_cu_per_sqc: int
  gc_instruction_cache_size_per_sqc: int
  gc_scalar_data_cache_size_per_sqc: int
  gc_tcc_size: int
struct_gc_info_v2_1.register_fields([('header', struct_gpu_info_header, 0), ('gc_num_se', uint32_t, 12), ('gc_num_cu_per_sh', uint32_t, 16), ('gc_num_sh_per_se', uint32_t, 20), ('gc_num_rb_per_se', uint32_t, 24), ('gc_num_tccs', uint32_t, 28), ('gc_num_gprs', uint32_t, 32), ('gc_num_max_gs_thds', uint32_t, 36), ('gc_gs_table_depth', uint32_t, 40), ('gc_gsprim_buff_depth', uint32_t, 44), ('gc_parameter_cache_depth', uint32_t, 48), ('gc_double_offchip_lds_buffer', uint32_t, 52), ('gc_wave_size', uint32_t, 56), ('gc_max_waves_per_simd', uint32_t, 60), ('gc_max_scratch_slots_per_cu', uint32_t, 64), ('gc_lds_size', uint32_t, 68), ('gc_num_sc_per_se', uint32_t, 72), ('gc_num_packer_per_sc', uint32_t, 76), ('gc_num_tcp_per_sh', uint32_t, 80), ('gc_tcp_size_per_cu', uint32_t, 84), ('gc_num_sdp_interface', uint32_t, 88), ('gc_num_cu_per_sqc', uint32_t, 92), ('gc_instruction_cache_size_per_sqc', uint32_t, 96), ('gc_scalar_data_cache_size_per_sqc', uint32_t, 100), ('gc_tcc_size', uint32_t, 104)])
@c.record
class struct_harvest_info_header(c.Struct):
  SIZE = 8
  signature: int
  version: int
struct_harvest_info_header.register_fields([('signature', uint32_t, 0), ('version', uint32_t, 4)])
harvest_info_header: TypeAlias = struct_harvest_info_header
@c.record
class struct_harvest_info(c.Struct):
  SIZE = 4
  hw_id: int
  number_instance: int
  reserved: int
struct_harvest_info.register_fields([('hw_id', uint16_t, 0), ('number_instance', uint8_t, 2), ('reserved', uint8_t, 3)])
harvest_info: TypeAlias = struct_harvest_info
@c.record
class struct_harvest_table(c.Struct):
  SIZE = 136
  header: struct_harvest_info_header
  list: c.Array[struct_harvest_info, Literal[32]]
struct_harvest_table.register_fields([('header', harvest_info_header, 0), ('list', c.Array[harvest_info, Literal[32]], 8)])
harvest_table: TypeAlias = struct_harvest_table
@c.record
class struct_mall_info_header(c.Struct):
  SIZE = 12
  table_id: int
  version_major: int
  version_minor: int
  size_bytes: int
struct_mall_info_header.register_fields([('table_id', uint32_t, 0), ('version_major', uint16_t, 4), ('version_minor', uint16_t, 6), ('size_bytes', uint32_t, 8)])
@c.record
class struct_mall_info_v1_0(c.Struct):
  SIZE = 48
  header: struct_mall_info_header
  mall_size_per_m: int
  m_s_present: int
  m_half_use: int
  m_mall_config: int
  reserved: c.Array[ctypes.c_uint32, Literal[5]]
struct_mall_info_v1_0.register_fields([('header', struct_mall_info_header, 0), ('mall_size_per_m', uint32_t, 12), ('m_s_present', uint32_t, 16), ('m_half_use', uint32_t, 20), ('m_mall_config', uint32_t, 24), ('reserved', c.Array[uint32_t, Literal[5]], 28)])
@c.record
class struct_mall_info_v2_0(c.Struct):
  SIZE = 48
  header: struct_mall_info_header
  mall_size_per_umc: int
  reserved: c.Array[ctypes.c_uint32, Literal[8]]
struct_mall_info_v2_0.register_fields([('header', struct_mall_info_header, 0), ('mall_size_per_umc', uint32_t, 12), ('reserved', c.Array[uint32_t, Literal[8]], 16)])
@c.record
class struct_vcn_info_header(c.Struct):
  SIZE = 12
  table_id: int
  version_major: int
  version_minor: int
  size_bytes: int
struct_vcn_info_header.register_fields([('table_id', uint32_t, 0), ('version_major', uint16_t, 4), ('version_minor', uint16_t, 6), ('size_bytes', uint32_t, 8)])
@c.record
class struct_vcn_instance_info_v1_0(c.Struct):
  SIZE = 16
  instance_num: int
  fuse_data: union__fuse_data
  reserved: c.Array[ctypes.c_uint32, Literal[2]]
@c.record
class union__fuse_data(c.Struct):
  SIZE = 4
  bits: union__fuse_data_bits
  all_bits: int
@c.record
class union__fuse_data_bits(c.Struct):
  SIZE = 4
  av1_disabled: int
  vp9_disabled: int
  hevc_disabled: int
  h264_disabled: int
  reserved: int
union__fuse_data_bits.register_fields([('av1_disabled', uint32_t, 0, 1, 0), ('vp9_disabled', uint32_t, 0, 1, 1), ('hevc_disabled', uint32_t, 0, 1, 2), ('h264_disabled', uint32_t, 0, 1, 3), ('reserved', uint32_t, 0, 28, 4)])
union__fuse_data.register_fields([('bits', union__fuse_data_bits, 0), ('all_bits', uint32_t, 0)])
struct_vcn_instance_info_v1_0.register_fields([('instance_num', uint32_t, 0), ('fuse_data', union__fuse_data, 4), ('reserved', c.Array[uint32_t, Literal[2]], 8)])
@c.record
class struct_vcn_info_v1_0(c.Struct):
  SIZE = 96
  header: struct_vcn_info_header
  num_of_instances: int
  instance_info: c.Array[struct_vcn_instance_info_v1_0, Literal[4]]
  reserved: c.Array[ctypes.c_uint32, Literal[4]]
struct_vcn_info_v1_0.register_fields([('header', struct_vcn_info_header, 0), ('num_of_instances', uint32_t, 12), ('instance_info', c.Array[struct_vcn_instance_info_v1_0, Literal[4]], 16), ('reserved', c.Array[uint32_t, Literal[4]], 80)])
@c.record
class struct_nps_info_header(c.Struct):
  SIZE = 12
  table_id: int
  version_major: int
  version_minor: int
  size_bytes: int
struct_nps_info_header.register_fields([('table_id', uint32_t, 0), ('version_major', uint16_t, 4), ('version_minor', uint16_t, 6), ('size_bytes', uint32_t, 8)])
@c.record
class struct_nps_instance_info_v1_0(c.Struct):
  SIZE = 16
  base_address: int
  limit_address: int
uint64_t: TypeAlias = ctypes.c_uint64
struct_nps_instance_info_v1_0.register_fields([('base_address', uint64_t, 0), ('limit_address', uint64_t, 8)])
@c.record
class struct_nps_info_v1_0(c.Struct):
  SIZE = 212
  header: struct_nps_info_header
  nps_type: int
  count: int
  instance_info: c.Array[struct_nps_instance_info_v1_0, Literal[12]]
struct_nps_info_v1_0.register_fields([('header', struct_nps_info_header, 0), ('nps_type', uint32_t, 12), ('count', uint32_t, 16), ('instance_info', c.Array[struct_nps_instance_info_v1_0, Literal[12]], 20)])
enum_amd_hw_ip_block_type: dict[int, str] = {(GC_HWIP:=1): 'GC_HWIP', (HDP_HWIP:=2): 'HDP_HWIP', (SDMA0_HWIP:=3): 'SDMA0_HWIP', (SDMA1_HWIP:=4): 'SDMA1_HWIP', (SDMA2_HWIP:=5): 'SDMA2_HWIP', (SDMA3_HWIP:=6): 'SDMA3_HWIP', (SDMA4_HWIP:=7): 'SDMA4_HWIP', (SDMA5_HWIP:=8): 'SDMA5_HWIP', (SDMA6_HWIP:=9): 'SDMA6_HWIP', (SDMA7_HWIP:=10): 'SDMA7_HWIP', (LSDMA_HWIP:=11): 'LSDMA_HWIP', (MMHUB_HWIP:=12): 'MMHUB_HWIP', (ATHUB_HWIP:=13): 'ATHUB_HWIP', (NBIO_HWIP:=14): 'NBIO_HWIP', (MP0_HWIP:=15): 'MP0_HWIP', (MP1_HWIP:=16): 'MP1_HWIP', (UVD_HWIP:=17): 'UVD_HWIP', (VCN_HWIP:=17): 'VCN_HWIP', (JPEG_HWIP:=17): 'JPEG_HWIP', (VCN1_HWIP:=18): 'VCN1_HWIP', (VCE_HWIP:=19): 'VCE_HWIP', (VPE_HWIP:=20): 'VPE_HWIP', (DF_HWIP:=21): 'DF_HWIP', (DCE_HWIP:=22): 'DCE_HWIP', (OSSSYS_HWIP:=23): 'OSSSYS_HWIP', (SMUIO_HWIP:=24): 'SMUIO_HWIP', (PWR_HWIP:=25): 'PWR_HWIP', (NBIF_HWIP:=26): 'NBIF_HWIP', (THM_HWIP:=27): 'THM_HWIP', (CLK_HWIP:=28): 'CLK_HWIP', (UMC_HWIP:=29): 'UMC_HWIP', (RSMU_HWIP:=30): 'RSMU_HWIP', (XGMI_HWIP:=31): 'XGMI_HWIP', (DCI_HWIP:=32): 'DCI_HWIP', (PCIE_HWIP:=33): 'PCIE_HWIP', (ISP_HWIP:=34): 'ISP_HWIP', (MAX_HWIP:=35): 'MAX_HWIP'}
@c.record
class struct_common_firmware_header(c.Struct):
  SIZE = 32
  size_bytes: int
  header_size_bytes: int
  header_version_major: int
  header_version_minor: int
  ip_version_major: int
  ip_version_minor: int
  ucode_version: int
  ucode_size_bytes: int
  ucode_array_offset_bytes: int
  crc32: int
struct_common_firmware_header.register_fields([('size_bytes', uint32_t, 0), ('header_size_bytes', uint32_t, 4), ('header_version_major', uint16_t, 8), ('header_version_minor', uint16_t, 10), ('ip_version_major', uint16_t, 12), ('ip_version_minor', uint16_t, 14), ('ucode_version', uint32_t, 16), ('ucode_size_bytes', uint32_t, 20), ('ucode_array_offset_bytes', uint32_t, 24), ('crc32', uint32_t, 28)])
@c.record
class struct_mc_firmware_header_v1_0(c.Struct):
  SIZE = 40
  header: struct_common_firmware_header
  io_debug_size_bytes: int
  io_debug_array_offset_bytes: int
struct_mc_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('io_debug_size_bytes', uint32_t, 32), ('io_debug_array_offset_bytes', uint32_t, 36)])
@c.record
class struct_smc_firmware_header_v1_0(c.Struct):
  SIZE = 36
  header: struct_common_firmware_header
  ucode_start_addr: int
struct_smc_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_start_addr', uint32_t, 32)])
@c.record
class struct_smc_firmware_header_v2_0(c.Struct):
  SIZE = 44
  v1_0: struct_smc_firmware_header_v1_0
  ppt_offset_bytes: int
  ppt_size_bytes: int
struct_smc_firmware_header_v2_0.register_fields([('v1_0', struct_smc_firmware_header_v1_0, 0), ('ppt_offset_bytes', uint32_t, 36), ('ppt_size_bytes', uint32_t, 40)])
@c.record
class struct_smc_soft_pptable_entry(c.Struct):
  SIZE = 12
  id: int
  ppt_offset_bytes: int
  ppt_size_bytes: int
struct_smc_soft_pptable_entry.register_fields([('id', uint32_t, 0), ('ppt_offset_bytes', uint32_t, 4), ('ppt_size_bytes', uint32_t, 8)])
@c.record
class struct_smc_firmware_header_v2_1(c.Struct):
  SIZE = 44
  v1_0: struct_smc_firmware_header_v1_0
  pptable_count: int
  pptable_entry_offset: int
struct_smc_firmware_header_v2_1.register_fields([('v1_0', struct_smc_firmware_header_v1_0, 0), ('pptable_count', uint32_t, 36), ('pptable_entry_offset', uint32_t, 40)])
@c.record
class struct_psp_fw_legacy_bin_desc(c.Struct):
  SIZE = 12
  fw_version: int
  offset_bytes: int
  size_bytes: int
struct_psp_fw_legacy_bin_desc.register_fields([('fw_version', uint32_t, 0), ('offset_bytes', uint32_t, 4), ('size_bytes', uint32_t, 8)])
@c.record
class struct_psp_firmware_header_v1_0(c.Struct):
  SIZE = 44
  header: struct_common_firmware_header
  sos: struct_psp_fw_legacy_bin_desc
struct_psp_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('sos', struct_psp_fw_legacy_bin_desc, 32)])
@c.record
class struct_psp_firmware_header_v1_1(c.Struct):
  SIZE = 68
  v1_0: struct_psp_firmware_header_v1_0
  toc: struct_psp_fw_legacy_bin_desc
  kdb: struct_psp_fw_legacy_bin_desc
struct_psp_firmware_header_v1_1.register_fields([('v1_0', struct_psp_firmware_header_v1_0, 0), ('toc', struct_psp_fw_legacy_bin_desc, 44), ('kdb', struct_psp_fw_legacy_bin_desc, 56)])
@c.record
class struct_psp_firmware_header_v1_2(c.Struct):
  SIZE = 68
  v1_0: struct_psp_firmware_header_v1_0
  res: struct_psp_fw_legacy_bin_desc
  kdb: struct_psp_fw_legacy_bin_desc
struct_psp_firmware_header_v1_2.register_fields([('v1_0', struct_psp_firmware_header_v1_0, 0), ('res', struct_psp_fw_legacy_bin_desc, 44), ('kdb', struct_psp_fw_legacy_bin_desc, 56)])
@c.record
class struct_psp_firmware_header_v1_3(c.Struct):
  SIZE = 116
  v1_1: struct_psp_firmware_header_v1_1
  spl: struct_psp_fw_legacy_bin_desc
  rl: struct_psp_fw_legacy_bin_desc
  sys_drv_aux: struct_psp_fw_legacy_bin_desc
  sos_aux: struct_psp_fw_legacy_bin_desc
struct_psp_firmware_header_v1_3.register_fields([('v1_1', struct_psp_firmware_header_v1_1, 0), ('spl', struct_psp_fw_legacy_bin_desc, 68), ('rl', struct_psp_fw_legacy_bin_desc, 80), ('sys_drv_aux', struct_psp_fw_legacy_bin_desc, 92), ('sos_aux', struct_psp_fw_legacy_bin_desc, 104)])
@c.record
class struct_psp_fw_bin_desc(c.Struct):
  SIZE = 16
  fw_type: int
  fw_version: int
  offset_bytes: int
  size_bytes: int
struct_psp_fw_bin_desc.register_fields([('fw_type', uint32_t, 0), ('fw_version', uint32_t, 4), ('offset_bytes', uint32_t, 8), ('size_bytes', uint32_t, 12)])
enum_psp_fw_type: dict[int, str] = {(PSP_FW_TYPE_UNKOWN:=0): 'PSP_FW_TYPE_UNKOWN', (PSP_FW_TYPE_PSP_SOS:=1): 'PSP_FW_TYPE_PSP_SOS', (PSP_FW_TYPE_PSP_SYS_DRV:=2): 'PSP_FW_TYPE_PSP_SYS_DRV', (PSP_FW_TYPE_PSP_KDB:=3): 'PSP_FW_TYPE_PSP_KDB', (PSP_FW_TYPE_PSP_TOC:=4): 'PSP_FW_TYPE_PSP_TOC', (PSP_FW_TYPE_PSP_SPL:=5): 'PSP_FW_TYPE_PSP_SPL', (PSP_FW_TYPE_PSP_RL:=6): 'PSP_FW_TYPE_PSP_RL', (PSP_FW_TYPE_PSP_SOC_DRV:=7): 'PSP_FW_TYPE_PSP_SOC_DRV', (PSP_FW_TYPE_PSP_INTF_DRV:=8): 'PSP_FW_TYPE_PSP_INTF_DRV', (PSP_FW_TYPE_PSP_DBG_DRV:=9): 'PSP_FW_TYPE_PSP_DBG_DRV', (PSP_FW_TYPE_PSP_RAS_DRV:=10): 'PSP_FW_TYPE_PSP_RAS_DRV', (PSP_FW_TYPE_PSP_IPKEYMGR_DRV:=11): 'PSP_FW_TYPE_PSP_IPKEYMGR_DRV', (PSP_FW_TYPE_MAX_INDEX:=12): 'PSP_FW_TYPE_MAX_INDEX'}
@c.record
class struct_psp_firmware_header_v2_0(c.Struct):
  SIZE = 52
  header: struct_common_firmware_header
  psp_fw_bin_count: int
  psp_fw_bin: c.Array[struct_psp_fw_bin_desc, Literal[1]]
struct_psp_firmware_header_v2_0.register_fields([('header', struct_common_firmware_header, 0), ('psp_fw_bin_count', uint32_t, 32), ('psp_fw_bin', c.Array[struct_psp_fw_bin_desc, Literal[1]], 36)])
@c.record
class struct_psp_firmware_header_v2_1(c.Struct):
  SIZE = 56
  header: struct_common_firmware_header
  psp_fw_bin_count: int
  psp_aux_fw_bin_index: int
  psp_fw_bin: c.Array[struct_psp_fw_bin_desc, Literal[1]]
struct_psp_firmware_header_v2_1.register_fields([('header', struct_common_firmware_header, 0), ('psp_fw_bin_count', uint32_t, 32), ('psp_aux_fw_bin_index', uint32_t, 36), ('psp_fw_bin', c.Array[struct_psp_fw_bin_desc, Literal[1]], 40)])
@c.record
class struct_ta_firmware_header_v1_0(c.Struct):
  SIZE = 92
  header: struct_common_firmware_header
  xgmi: struct_psp_fw_legacy_bin_desc
  ras: struct_psp_fw_legacy_bin_desc
  hdcp: struct_psp_fw_legacy_bin_desc
  dtm: struct_psp_fw_legacy_bin_desc
  securedisplay: struct_psp_fw_legacy_bin_desc
struct_ta_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('xgmi', struct_psp_fw_legacy_bin_desc, 32), ('ras', struct_psp_fw_legacy_bin_desc, 44), ('hdcp', struct_psp_fw_legacy_bin_desc, 56), ('dtm', struct_psp_fw_legacy_bin_desc, 68), ('securedisplay', struct_psp_fw_legacy_bin_desc, 80)])
enum_ta_fw_type: dict[int, str] = {(TA_FW_TYPE_UNKOWN:=0): 'TA_FW_TYPE_UNKOWN', (TA_FW_TYPE_PSP_ASD:=1): 'TA_FW_TYPE_PSP_ASD', (TA_FW_TYPE_PSP_XGMI:=2): 'TA_FW_TYPE_PSP_XGMI', (TA_FW_TYPE_PSP_RAS:=3): 'TA_FW_TYPE_PSP_RAS', (TA_FW_TYPE_PSP_HDCP:=4): 'TA_FW_TYPE_PSP_HDCP', (TA_FW_TYPE_PSP_DTM:=5): 'TA_FW_TYPE_PSP_DTM', (TA_FW_TYPE_PSP_RAP:=6): 'TA_FW_TYPE_PSP_RAP', (TA_FW_TYPE_PSP_SECUREDISPLAY:=7): 'TA_FW_TYPE_PSP_SECUREDISPLAY', (TA_FW_TYPE_MAX_INDEX:=8): 'TA_FW_TYPE_MAX_INDEX'}
@c.record
class struct_ta_firmware_header_v2_0(c.Struct):
  SIZE = 52
  header: struct_common_firmware_header
  ta_fw_bin_count: int
  ta_fw_bin: c.Array[struct_psp_fw_bin_desc, Literal[1]]
struct_ta_firmware_header_v2_0.register_fields([('header', struct_common_firmware_header, 0), ('ta_fw_bin_count', uint32_t, 32), ('ta_fw_bin', c.Array[struct_psp_fw_bin_desc, Literal[1]], 36)])
@c.record
class struct_gfx_firmware_header_v1_0(c.Struct):
  SIZE = 44
  header: struct_common_firmware_header
  ucode_feature_version: int
  jt_offset: int
  jt_size: int
struct_gfx_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('jt_offset', uint32_t, 36), ('jt_size', uint32_t, 40)])
@c.record
class struct_gfx_firmware_header_v2_0(c.Struct):
  SIZE = 60
  header: struct_common_firmware_header
  ucode_feature_version: int
  ucode_size_bytes: int
  ucode_offset_bytes: int
  data_size_bytes: int
  data_offset_bytes: int
  ucode_start_addr_lo: int
  ucode_start_addr_hi: int
struct_gfx_firmware_header_v2_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('ucode_size_bytes', uint32_t, 36), ('ucode_offset_bytes', uint32_t, 40), ('data_size_bytes', uint32_t, 44), ('data_offset_bytes', uint32_t, 48), ('ucode_start_addr_lo', uint32_t, 52), ('ucode_start_addr_hi', uint32_t, 56)])
@c.record
class struct_mes_firmware_header_v1_0(c.Struct):
  SIZE = 72
  header: struct_common_firmware_header
  mes_ucode_version: int
  mes_ucode_size_bytes: int
  mes_ucode_offset_bytes: int
  mes_ucode_data_version: int
  mes_ucode_data_size_bytes: int
  mes_ucode_data_offset_bytes: int
  mes_uc_start_addr_lo: int
  mes_uc_start_addr_hi: int
  mes_data_start_addr_lo: int
  mes_data_start_addr_hi: int
struct_mes_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('mes_ucode_version', uint32_t, 32), ('mes_ucode_size_bytes', uint32_t, 36), ('mes_ucode_offset_bytes', uint32_t, 40), ('mes_ucode_data_version', uint32_t, 44), ('mes_ucode_data_size_bytes', uint32_t, 48), ('mes_ucode_data_offset_bytes', uint32_t, 52), ('mes_uc_start_addr_lo', uint32_t, 56), ('mes_uc_start_addr_hi', uint32_t, 60), ('mes_data_start_addr_lo', uint32_t, 64), ('mes_data_start_addr_hi', uint32_t, 68)])
@c.record
class struct_rlc_firmware_header_v1_0(c.Struct):
  SIZE = 52
  header: struct_common_firmware_header
  ucode_feature_version: int
  save_and_restore_offset: int
  clear_state_descriptor_offset: int
  avail_scratch_ram_locations: int
  master_pkt_description_offset: int
struct_rlc_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('save_and_restore_offset', uint32_t, 36), ('clear_state_descriptor_offset', uint32_t, 40), ('avail_scratch_ram_locations', uint32_t, 44), ('master_pkt_description_offset', uint32_t, 48)])
@c.record
class struct_rlc_firmware_header_v2_0(c.Struct):
  SIZE = 104
  header: struct_common_firmware_header
  ucode_feature_version: int
  jt_offset: int
  jt_size: int
  save_and_restore_offset: int
  clear_state_descriptor_offset: int
  avail_scratch_ram_locations: int
  reg_restore_list_size: int
  reg_list_format_start: int
  reg_list_format_separate_start: int
  starting_offsets_start: int
  reg_list_format_size_bytes: int
  reg_list_format_array_offset_bytes: int
  reg_list_size_bytes: int
  reg_list_array_offset_bytes: int
  reg_list_format_separate_size_bytes: int
  reg_list_format_separate_array_offset_bytes: int
  reg_list_separate_size_bytes: int
  reg_list_separate_array_offset_bytes: int
struct_rlc_firmware_header_v2_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('jt_offset', uint32_t, 36), ('jt_size', uint32_t, 40), ('save_and_restore_offset', uint32_t, 44), ('clear_state_descriptor_offset', uint32_t, 48), ('avail_scratch_ram_locations', uint32_t, 52), ('reg_restore_list_size', uint32_t, 56), ('reg_list_format_start', uint32_t, 60), ('reg_list_format_separate_start', uint32_t, 64), ('starting_offsets_start', uint32_t, 68), ('reg_list_format_size_bytes', uint32_t, 72), ('reg_list_format_array_offset_bytes', uint32_t, 76), ('reg_list_size_bytes', uint32_t, 80), ('reg_list_array_offset_bytes', uint32_t, 84), ('reg_list_format_separate_size_bytes', uint32_t, 88), ('reg_list_format_separate_array_offset_bytes', uint32_t, 92), ('reg_list_separate_size_bytes', uint32_t, 96), ('reg_list_separate_array_offset_bytes', uint32_t, 100)])
@c.record
class struct_rlc_firmware_header_v2_1(c.Struct):
  SIZE = 156
  v2_0: struct_rlc_firmware_header_v2_0
  reg_list_format_direct_reg_list_length: int
  save_restore_list_cntl_ucode_ver: int
  save_restore_list_cntl_feature_ver: int
  save_restore_list_cntl_size_bytes: int
  save_restore_list_cntl_offset_bytes: int
  save_restore_list_gpm_ucode_ver: int
  save_restore_list_gpm_feature_ver: int
  save_restore_list_gpm_size_bytes: int
  save_restore_list_gpm_offset_bytes: int
  save_restore_list_srm_ucode_ver: int
  save_restore_list_srm_feature_ver: int
  save_restore_list_srm_size_bytes: int
  save_restore_list_srm_offset_bytes: int
struct_rlc_firmware_header_v2_1.register_fields([('v2_0', struct_rlc_firmware_header_v2_0, 0), ('reg_list_format_direct_reg_list_length', uint32_t, 104), ('save_restore_list_cntl_ucode_ver', uint32_t, 108), ('save_restore_list_cntl_feature_ver', uint32_t, 112), ('save_restore_list_cntl_size_bytes', uint32_t, 116), ('save_restore_list_cntl_offset_bytes', uint32_t, 120), ('save_restore_list_gpm_ucode_ver', uint32_t, 124), ('save_restore_list_gpm_feature_ver', uint32_t, 128), ('save_restore_list_gpm_size_bytes', uint32_t, 132), ('save_restore_list_gpm_offset_bytes', uint32_t, 136), ('save_restore_list_srm_ucode_ver', uint32_t, 140), ('save_restore_list_srm_feature_ver', uint32_t, 144), ('save_restore_list_srm_size_bytes', uint32_t, 148), ('save_restore_list_srm_offset_bytes', uint32_t, 152)])
@c.record
class struct_rlc_firmware_header_v2_2(c.Struct):
  SIZE = 172
  v2_1: struct_rlc_firmware_header_v2_1
  rlc_iram_ucode_size_bytes: int
  rlc_iram_ucode_offset_bytes: int
  rlc_dram_ucode_size_bytes: int
  rlc_dram_ucode_offset_bytes: int
struct_rlc_firmware_header_v2_2.register_fields([('v2_1', struct_rlc_firmware_header_v2_1, 0), ('rlc_iram_ucode_size_bytes', uint32_t, 156), ('rlc_iram_ucode_offset_bytes', uint32_t, 160), ('rlc_dram_ucode_size_bytes', uint32_t, 164), ('rlc_dram_ucode_offset_bytes', uint32_t, 168)])
@c.record
class struct_rlc_firmware_header_v2_3(c.Struct):
  SIZE = 204
  v2_2: struct_rlc_firmware_header_v2_2
  rlcp_ucode_version: int
  rlcp_ucode_feature_version: int
  rlcp_ucode_size_bytes: int
  rlcp_ucode_offset_bytes: int
  rlcv_ucode_version: int
  rlcv_ucode_feature_version: int
  rlcv_ucode_size_bytes: int
  rlcv_ucode_offset_bytes: int
struct_rlc_firmware_header_v2_3.register_fields([('v2_2', struct_rlc_firmware_header_v2_2, 0), ('rlcp_ucode_version', uint32_t, 172), ('rlcp_ucode_feature_version', uint32_t, 176), ('rlcp_ucode_size_bytes', uint32_t, 180), ('rlcp_ucode_offset_bytes', uint32_t, 184), ('rlcv_ucode_version', uint32_t, 188), ('rlcv_ucode_feature_version', uint32_t, 192), ('rlcv_ucode_size_bytes', uint32_t, 196), ('rlcv_ucode_offset_bytes', uint32_t, 200)])
@c.record
class struct_rlc_firmware_header_v2_4(c.Struct):
  SIZE = 244
  v2_3: struct_rlc_firmware_header_v2_3
  global_tap_delays_ucode_size_bytes: int
  global_tap_delays_ucode_offset_bytes: int
  se0_tap_delays_ucode_size_bytes: int
  se0_tap_delays_ucode_offset_bytes: int
  se1_tap_delays_ucode_size_bytes: int
  se1_tap_delays_ucode_offset_bytes: int
  se2_tap_delays_ucode_size_bytes: int
  se2_tap_delays_ucode_offset_bytes: int
  se3_tap_delays_ucode_size_bytes: int
  se3_tap_delays_ucode_offset_bytes: int
struct_rlc_firmware_header_v2_4.register_fields([('v2_3', struct_rlc_firmware_header_v2_3, 0), ('global_tap_delays_ucode_size_bytes', uint32_t, 204), ('global_tap_delays_ucode_offset_bytes', uint32_t, 208), ('se0_tap_delays_ucode_size_bytes', uint32_t, 212), ('se0_tap_delays_ucode_offset_bytes', uint32_t, 216), ('se1_tap_delays_ucode_size_bytes', uint32_t, 220), ('se1_tap_delays_ucode_offset_bytes', uint32_t, 224), ('se2_tap_delays_ucode_size_bytes', uint32_t, 228), ('se2_tap_delays_ucode_offset_bytes', uint32_t, 232), ('se3_tap_delays_ucode_size_bytes', uint32_t, 236), ('se3_tap_delays_ucode_offset_bytes', uint32_t, 240)])
@c.record
class struct_sdma_firmware_header_v1_0(c.Struct):
  SIZE = 48
  header: struct_common_firmware_header
  ucode_feature_version: int
  ucode_change_version: int
  jt_offset: int
  jt_size: int
struct_sdma_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('ucode_change_version', uint32_t, 36), ('jt_offset', uint32_t, 40), ('jt_size', uint32_t, 44)])
@c.record
class struct_sdma_firmware_header_v1_1(c.Struct):
  SIZE = 52
  v1_0: struct_sdma_firmware_header_v1_0
  digest_size: int
struct_sdma_firmware_header_v1_1.register_fields([('v1_0', struct_sdma_firmware_header_v1_0, 0), ('digest_size', uint32_t, 48)])
@c.record
class struct_sdma_firmware_header_v2_0(c.Struct):
  SIZE = 64
  header: struct_common_firmware_header
  ucode_feature_version: int
  ctx_ucode_size_bytes: int
  ctx_jt_offset: int
  ctx_jt_size: int
  ctl_ucode_offset: int
  ctl_ucode_size_bytes: int
  ctl_jt_offset: int
  ctl_jt_size: int
struct_sdma_firmware_header_v2_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('ctx_ucode_size_bytes', uint32_t, 36), ('ctx_jt_offset', uint32_t, 40), ('ctx_jt_size', uint32_t, 44), ('ctl_ucode_offset', uint32_t, 48), ('ctl_ucode_size_bytes', uint32_t, 52), ('ctl_jt_offset', uint32_t, 56), ('ctl_jt_size', uint32_t, 60)])
@c.record
class struct_vpe_firmware_header_v1_0(c.Struct):
  SIZE = 64
  header: struct_common_firmware_header
  ucode_feature_version: int
  ctx_ucode_size_bytes: int
  ctx_jt_offset: int
  ctx_jt_size: int
  ctl_ucode_offset: int
  ctl_ucode_size_bytes: int
  ctl_jt_offset: int
  ctl_jt_size: int
struct_vpe_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('ctx_ucode_size_bytes', uint32_t, 36), ('ctx_jt_offset', uint32_t, 40), ('ctx_jt_size', uint32_t, 44), ('ctl_ucode_offset', uint32_t, 48), ('ctl_ucode_size_bytes', uint32_t, 52), ('ctl_jt_offset', uint32_t, 56), ('ctl_jt_size', uint32_t, 60)])
@c.record
class struct_umsch_mm_firmware_header_v1_0(c.Struct):
  SIZE = 80
  header: struct_common_firmware_header
  umsch_mm_ucode_version: int
  umsch_mm_ucode_size_bytes: int
  umsch_mm_ucode_offset_bytes: int
  umsch_mm_ucode_data_version: int
  umsch_mm_ucode_data_size_bytes: int
  umsch_mm_ucode_data_offset_bytes: int
  umsch_mm_irq_start_addr_lo: int
  umsch_mm_irq_start_addr_hi: int
  umsch_mm_uc_start_addr_lo: int
  umsch_mm_uc_start_addr_hi: int
  umsch_mm_data_start_addr_lo: int
  umsch_mm_data_start_addr_hi: int
struct_umsch_mm_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('umsch_mm_ucode_version', uint32_t, 32), ('umsch_mm_ucode_size_bytes', uint32_t, 36), ('umsch_mm_ucode_offset_bytes', uint32_t, 40), ('umsch_mm_ucode_data_version', uint32_t, 44), ('umsch_mm_ucode_data_size_bytes', uint32_t, 48), ('umsch_mm_ucode_data_offset_bytes', uint32_t, 52), ('umsch_mm_irq_start_addr_lo', uint32_t, 56), ('umsch_mm_irq_start_addr_hi', uint32_t, 60), ('umsch_mm_uc_start_addr_lo', uint32_t, 64), ('umsch_mm_uc_start_addr_hi', uint32_t, 68), ('umsch_mm_data_start_addr_lo', uint32_t, 72), ('umsch_mm_data_start_addr_hi', uint32_t, 76)])
@c.record
class struct_sdma_firmware_header_v3_0(c.Struct):
  SIZE = 44
  header: struct_common_firmware_header
  ucode_feature_version: int
  ucode_offset_bytes: int
  ucode_size_bytes: int
struct_sdma_firmware_header_v3_0.register_fields([('header', struct_common_firmware_header, 0), ('ucode_feature_version', uint32_t, 32), ('ucode_offset_bytes', uint32_t, 36), ('ucode_size_bytes', uint32_t, 40)])
@c.record
class struct_gpu_info_firmware_v1_0(c.Struct):
  SIZE = 60
  gc_num_se: int
  gc_num_cu_per_sh: int
  gc_num_sh_per_se: int
  gc_num_rb_per_se: int
  gc_num_tccs: int
  gc_num_gprs: int
  gc_num_max_gs_thds: int
  gc_gs_table_depth: int
  gc_gsprim_buff_depth: int
  gc_parameter_cache_depth: int
  gc_double_offchip_lds_buffer: int
  gc_wave_size: int
  gc_max_waves_per_simd: int
  gc_max_scratch_slots_per_cu: int
  gc_lds_size: int
struct_gpu_info_firmware_v1_0.register_fields([('gc_num_se', uint32_t, 0), ('gc_num_cu_per_sh', uint32_t, 4), ('gc_num_sh_per_se', uint32_t, 8), ('gc_num_rb_per_se', uint32_t, 12), ('gc_num_tccs', uint32_t, 16), ('gc_num_gprs', uint32_t, 20), ('gc_num_max_gs_thds', uint32_t, 24), ('gc_gs_table_depth', uint32_t, 28), ('gc_gsprim_buff_depth', uint32_t, 32), ('gc_parameter_cache_depth', uint32_t, 36), ('gc_double_offchip_lds_buffer', uint32_t, 40), ('gc_wave_size', uint32_t, 44), ('gc_max_waves_per_simd', uint32_t, 48), ('gc_max_scratch_slots_per_cu', uint32_t, 52), ('gc_lds_size', uint32_t, 56)])
@c.record
class struct_gpu_info_firmware_v1_1(c.Struct):
  SIZE = 68
  v1_0: struct_gpu_info_firmware_v1_0
  num_sc_per_sh: int
  num_packer_per_sc: int
struct_gpu_info_firmware_v1_1.register_fields([('v1_0', struct_gpu_info_firmware_v1_0, 0), ('num_sc_per_sh', uint32_t, 60), ('num_packer_per_sc', uint32_t, 64)])
@c.record
class struct_gpu_info_firmware_header_v1_0(c.Struct):
  SIZE = 36
  header: struct_common_firmware_header
  version_major: int
  version_minor: int
struct_gpu_info_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('version_major', uint16_t, 32), ('version_minor', uint16_t, 34)])
@c.record
class struct_dmcu_firmware_header_v1_0(c.Struct):
  SIZE = 40
  header: struct_common_firmware_header
  intv_offset_bytes: int
  intv_size_bytes: int
struct_dmcu_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('intv_offset_bytes', uint32_t, 32), ('intv_size_bytes', uint32_t, 36)])
@c.record
class struct_dmcub_firmware_header_v1_0(c.Struct):
  SIZE = 40
  header: struct_common_firmware_header
  inst_const_bytes: int
  bss_data_bytes: int
struct_dmcub_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('inst_const_bytes', uint32_t, 32), ('bss_data_bytes', uint32_t, 36)])
@c.record
class struct_imu_firmware_header_v1_0(c.Struct):
  SIZE = 48
  header: struct_common_firmware_header
  imu_iram_ucode_size_bytes: int
  imu_iram_ucode_offset_bytes: int
  imu_dram_ucode_size_bytes: int
  imu_dram_ucode_offset_bytes: int
struct_imu_firmware_header_v1_0.register_fields([('header', struct_common_firmware_header, 0), ('imu_iram_ucode_size_bytes', uint32_t, 32), ('imu_iram_ucode_offset_bytes', uint32_t, 36), ('imu_dram_ucode_size_bytes', uint32_t, 40), ('imu_dram_ucode_offset_bytes', uint32_t, 44)])
@c.record
class union_amdgpu_firmware_header(c.Struct):
  SIZE = 256
  common: struct_common_firmware_header
  mc: struct_mc_firmware_header_v1_0
  smc: struct_smc_firmware_header_v1_0
  smc_v2_0: struct_smc_firmware_header_v2_0
  psp: struct_psp_firmware_header_v1_0
  psp_v1_1: struct_psp_firmware_header_v1_1
  psp_v1_3: struct_psp_firmware_header_v1_3
  psp_v2_0: struct_psp_firmware_header_v2_0
  psp_v2_1: struct_psp_firmware_header_v2_0
  ta: struct_ta_firmware_header_v1_0
  ta_v2_0: struct_ta_firmware_header_v2_0
  gfx: struct_gfx_firmware_header_v1_0
  gfx_v2_0: struct_gfx_firmware_header_v2_0
  rlc: struct_rlc_firmware_header_v1_0
  rlc_v2_0: struct_rlc_firmware_header_v2_0
  rlc_v2_1: struct_rlc_firmware_header_v2_1
  rlc_v2_2: struct_rlc_firmware_header_v2_2
  rlc_v2_3: struct_rlc_firmware_header_v2_3
  rlc_v2_4: struct_rlc_firmware_header_v2_4
  sdma: struct_sdma_firmware_header_v1_0
  sdma_v1_1: struct_sdma_firmware_header_v1_1
  sdma_v2_0: struct_sdma_firmware_header_v2_0
  sdma_v3_0: struct_sdma_firmware_header_v3_0
  gpu_info: struct_gpu_info_firmware_header_v1_0
  dmcu: struct_dmcu_firmware_header_v1_0
  dmcub: struct_dmcub_firmware_header_v1_0
  imu: struct_imu_firmware_header_v1_0
  raw: c.Array[ctypes.c_ubyte, Literal[256]]
union_amdgpu_firmware_header.register_fields([('common', struct_common_firmware_header, 0), ('mc', struct_mc_firmware_header_v1_0, 0), ('smc', struct_smc_firmware_header_v1_0, 0), ('smc_v2_0', struct_smc_firmware_header_v2_0, 0), ('psp', struct_psp_firmware_header_v1_0, 0), ('psp_v1_1', struct_psp_firmware_header_v1_1, 0), ('psp_v1_3', struct_psp_firmware_header_v1_3, 0), ('psp_v2_0', struct_psp_firmware_header_v2_0, 0), ('psp_v2_1', struct_psp_firmware_header_v2_0, 0), ('ta', struct_ta_firmware_header_v1_0, 0), ('ta_v2_0', struct_ta_firmware_header_v2_0, 0), ('gfx', struct_gfx_firmware_header_v1_0, 0), ('gfx_v2_0', struct_gfx_firmware_header_v2_0, 0), ('rlc', struct_rlc_firmware_header_v1_0, 0), ('rlc_v2_0', struct_rlc_firmware_header_v2_0, 0), ('rlc_v2_1', struct_rlc_firmware_header_v2_1, 0), ('rlc_v2_2', struct_rlc_firmware_header_v2_2, 0), ('rlc_v2_3', struct_rlc_firmware_header_v2_3, 0), ('rlc_v2_4', struct_rlc_firmware_header_v2_4, 0), ('sdma', struct_sdma_firmware_header_v1_0, 0), ('sdma_v1_1', struct_sdma_firmware_header_v1_1, 0), ('sdma_v2_0', struct_sdma_firmware_header_v2_0, 0), ('sdma_v3_0', struct_sdma_firmware_header_v3_0, 0), ('gpu_info', struct_gpu_info_firmware_header_v1_0, 0), ('dmcu', struct_dmcu_firmware_header_v1_0, 0), ('dmcub', struct_dmcub_firmware_header_v1_0, 0), ('imu', struct_imu_firmware_header_v1_0, 0), ('raw', c.Array[uint8_t, Literal[256]], 0)])
enum_AMDGPU_UCODE_ID: dict[int, str] = {(AMDGPU_UCODE_ID_CAP:=0): 'AMDGPU_UCODE_ID_CAP', (AMDGPU_UCODE_ID_SDMA0:=1): 'AMDGPU_UCODE_ID_SDMA0', (AMDGPU_UCODE_ID_SDMA1:=2): 'AMDGPU_UCODE_ID_SDMA1', (AMDGPU_UCODE_ID_SDMA2:=3): 'AMDGPU_UCODE_ID_SDMA2', (AMDGPU_UCODE_ID_SDMA3:=4): 'AMDGPU_UCODE_ID_SDMA3', (AMDGPU_UCODE_ID_SDMA4:=5): 'AMDGPU_UCODE_ID_SDMA4', (AMDGPU_UCODE_ID_SDMA5:=6): 'AMDGPU_UCODE_ID_SDMA5', (AMDGPU_UCODE_ID_SDMA6:=7): 'AMDGPU_UCODE_ID_SDMA6', (AMDGPU_UCODE_ID_SDMA7:=8): 'AMDGPU_UCODE_ID_SDMA7', (AMDGPU_UCODE_ID_SDMA_UCODE_TH0:=9): 'AMDGPU_UCODE_ID_SDMA_UCODE_TH0', (AMDGPU_UCODE_ID_SDMA_UCODE_TH1:=10): 'AMDGPU_UCODE_ID_SDMA_UCODE_TH1', (AMDGPU_UCODE_ID_SDMA_RS64:=11): 'AMDGPU_UCODE_ID_SDMA_RS64', (AMDGPU_UCODE_ID_CP_CE:=12): 'AMDGPU_UCODE_ID_CP_CE', (AMDGPU_UCODE_ID_CP_PFP:=13): 'AMDGPU_UCODE_ID_CP_PFP', (AMDGPU_UCODE_ID_CP_ME:=14): 'AMDGPU_UCODE_ID_CP_ME', (AMDGPU_UCODE_ID_CP_RS64_PFP:=15): 'AMDGPU_UCODE_ID_CP_RS64_PFP', (AMDGPU_UCODE_ID_CP_RS64_ME:=16): 'AMDGPU_UCODE_ID_CP_RS64_ME', (AMDGPU_UCODE_ID_CP_RS64_MEC:=17): 'AMDGPU_UCODE_ID_CP_RS64_MEC', (AMDGPU_UCODE_ID_CP_RS64_PFP_P0_STACK:=18): 'AMDGPU_UCODE_ID_CP_RS64_PFP_P0_STACK', (AMDGPU_UCODE_ID_CP_RS64_PFP_P1_STACK:=19): 'AMDGPU_UCODE_ID_CP_RS64_PFP_P1_STACK', (AMDGPU_UCODE_ID_CP_RS64_ME_P0_STACK:=20): 'AMDGPU_UCODE_ID_CP_RS64_ME_P0_STACK', (AMDGPU_UCODE_ID_CP_RS64_ME_P1_STACK:=21): 'AMDGPU_UCODE_ID_CP_RS64_ME_P1_STACK', (AMDGPU_UCODE_ID_CP_RS64_MEC_P0_STACK:=22): 'AMDGPU_UCODE_ID_CP_RS64_MEC_P0_STACK', (AMDGPU_UCODE_ID_CP_RS64_MEC_P1_STACK:=23): 'AMDGPU_UCODE_ID_CP_RS64_MEC_P1_STACK', (AMDGPU_UCODE_ID_CP_RS64_MEC_P2_STACK:=24): 'AMDGPU_UCODE_ID_CP_RS64_MEC_P2_STACK', (AMDGPU_UCODE_ID_CP_RS64_MEC_P3_STACK:=25): 'AMDGPU_UCODE_ID_CP_RS64_MEC_P3_STACK', (AMDGPU_UCODE_ID_CP_MEC1:=26): 'AMDGPU_UCODE_ID_CP_MEC1', (AMDGPU_UCODE_ID_CP_MEC1_JT:=27): 'AMDGPU_UCODE_ID_CP_MEC1_JT', (AMDGPU_UCODE_ID_CP_MEC2:=28): 'AMDGPU_UCODE_ID_CP_MEC2', (AMDGPU_UCODE_ID_CP_MEC2_JT:=29): 'AMDGPU_UCODE_ID_CP_MEC2_JT', (AMDGPU_UCODE_ID_CP_MES:=30): 'AMDGPU_UCODE_ID_CP_MES', (AMDGPU_UCODE_ID_CP_MES_DATA:=31): 'AMDGPU_UCODE_ID_CP_MES_DATA', (AMDGPU_UCODE_ID_CP_MES1:=32): 'AMDGPU_UCODE_ID_CP_MES1', (AMDGPU_UCODE_ID_CP_MES1_DATA:=33): 'AMDGPU_UCODE_ID_CP_MES1_DATA', (AMDGPU_UCODE_ID_IMU_I:=34): 'AMDGPU_UCODE_ID_IMU_I', (AMDGPU_UCODE_ID_IMU_D:=35): 'AMDGPU_UCODE_ID_IMU_D', (AMDGPU_UCODE_ID_GLOBAL_TAP_DELAYS:=36): 'AMDGPU_UCODE_ID_GLOBAL_TAP_DELAYS', (AMDGPU_UCODE_ID_SE0_TAP_DELAYS:=37): 'AMDGPU_UCODE_ID_SE0_TAP_DELAYS', (AMDGPU_UCODE_ID_SE1_TAP_DELAYS:=38): 'AMDGPU_UCODE_ID_SE1_TAP_DELAYS', (AMDGPU_UCODE_ID_SE2_TAP_DELAYS:=39): 'AMDGPU_UCODE_ID_SE2_TAP_DELAYS', (AMDGPU_UCODE_ID_SE3_TAP_DELAYS:=40): 'AMDGPU_UCODE_ID_SE3_TAP_DELAYS', (AMDGPU_UCODE_ID_RLC_RESTORE_LIST_CNTL:=41): 'AMDGPU_UCODE_ID_RLC_RESTORE_LIST_CNTL', (AMDGPU_UCODE_ID_RLC_RESTORE_LIST_GPM_MEM:=42): 'AMDGPU_UCODE_ID_RLC_RESTORE_LIST_GPM_MEM', (AMDGPU_UCODE_ID_RLC_RESTORE_LIST_SRM_MEM:=43): 'AMDGPU_UCODE_ID_RLC_RESTORE_LIST_SRM_MEM', (AMDGPU_UCODE_ID_RLC_IRAM:=44): 'AMDGPU_UCODE_ID_RLC_IRAM', (AMDGPU_UCODE_ID_RLC_DRAM:=45): 'AMDGPU_UCODE_ID_RLC_DRAM', (AMDGPU_UCODE_ID_RLC_P:=46): 'AMDGPU_UCODE_ID_RLC_P', (AMDGPU_UCODE_ID_RLC_V:=47): 'AMDGPU_UCODE_ID_RLC_V', (AMDGPU_UCODE_ID_RLC_G:=48): 'AMDGPU_UCODE_ID_RLC_G', (AMDGPU_UCODE_ID_STORAGE:=49): 'AMDGPU_UCODE_ID_STORAGE', (AMDGPU_UCODE_ID_SMC:=50): 'AMDGPU_UCODE_ID_SMC', (AMDGPU_UCODE_ID_PPTABLE:=51): 'AMDGPU_UCODE_ID_PPTABLE', (AMDGPU_UCODE_ID_UVD:=52): 'AMDGPU_UCODE_ID_UVD', (AMDGPU_UCODE_ID_UVD1:=53): 'AMDGPU_UCODE_ID_UVD1', (AMDGPU_UCODE_ID_VCE:=54): 'AMDGPU_UCODE_ID_VCE', (AMDGPU_UCODE_ID_VCN:=55): 'AMDGPU_UCODE_ID_VCN', (AMDGPU_UCODE_ID_VCN1:=56): 'AMDGPU_UCODE_ID_VCN1', (AMDGPU_UCODE_ID_DMCU_ERAM:=57): 'AMDGPU_UCODE_ID_DMCU_ERAM', (AMDGPU_UCODE_ID_DMCU_INTV:=58): 'AMDGPU_UCODE_ID_DMCU_INTV', (AMDGPU_UCODE_ID_VCN0_RAM:=59): 'AMDGPU_UCODE_ID_VCN0_RAM', (AMDGPU_UCODE_ID_VCN1_RAM:=60): 'AMDGPU_UCODE_ID_VCN1_RAM', (AMDGPU_UCODE_ID_DMCUB:=61): 'AMDGPU_UCODE_ID_DMCUB', (AMDGPU_UCODE_ID_VPE_CTX:=62): 'AMDGPU_UCODE_ID_VPE_CTX', (AMDGPU_UCODE_ID_VPE_CTL:=63): 'AMDGPU_UCODE_ID_VPE_CTL', (AMDGPU_UCODE_ID_VPE:=64): 'AMDGPU_UCODE_ID_VPE', (AMDGPU_UCODE_ID_UMSCH_MM_UCODE:=65): 'AMDGPU_UCODE_ID_UMSCH_MM_UCODE', (AMDGPU_UCODE_ID_UMSCH_MM_DATA:=66): 'AMDGPU_UCODE_ID_UMSCH_MM_DATA', (AMDGPU_UCODE_ID_UMSCH_MM_CMD_BUFFER:=67): 'AMDGPU_UCODE_ID_UMSCH_MM_CMD_BUFFER', (AMDGPU_UCODE_ID_P2S_TABLE:=68): 'AMDGPU_UCODE_ID_P2S_TABLE', (AMDGPU_UCODE_ID_JPEG_RAM:=69): 'AMDGPU_UCODE_ID_JPEG_RAM', (AMDGPU_UCODE_ID_ISP:=70): 'AMDGPU_UCODE_ID_ISP', (AMDGPU_UCODE_ID_MAXIMUM:=71): 'AMDGPU_UCODE_ID_MAXIMUM'}
enum_AMDGPU_UCODE_STATUS: dict[int, str] = {(AMDGPU_UCODE_STATUS_INVALID:=0): 'AMDGPU_UCODE_STATUS_INVALID', (AMDGPU_UCODE_STATUS_NOT_LOADED:=1): 'AMDGPU_UCODE_STATUS_NOT_LOADED', (AMDGPU_UCODE_STATUS_LOADED:=2): 'AMDGPU_UCODE_STATUS_LOADED'}
enum_amdgpu_firmware_load_type: dict[int, str] = {(AMDGPU_FW_LOAD_DIRECT:=0): 'AMDGPU_FW_LOAD_DIRECT', (AMDGPU_FW_LOAD_PSP:=1): 'AMDGPU_FW_LOAD_PSP', (AMDGPU_FW_LOAD_SMU:=2): 'AMDGPU_FW_LOAD_SMU', (AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO:=3): 'AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO'}
@c.record
class struct_amdgpu_firmware_info(c.Struct):
  SIZE = 48
  ucode_id: int
  fw: c.POINTER[struct_firmware]
  mc_addr: int
  kaddr: ctypes.c_void_p
  ucode_size: int
  tmr_mc_addr_lo: int
  tmr_mc_addr_hi: int
class struct_firmware(c.Struct): pass
struct_amdgpu_firmware_info.register_fields([('ucode_id', ctypes.c_uint32, 0), ('fw', c.POINTER[struct_firmware], 8), ('mc_addr', uint64_t, 16), ('kaddr', ctypes.c_void_p, 24), ('ucode_size', uint32_t, 32), ('tmr_mc_addr_lo', uint32_t, 36), ('tmr_mc_addr_hi', uint32_t, 40)])
enum_psp_gfx_crtl_cmd_id: dict[int, str] = {(GFX_CTRL_CMD_ID_INIT_RBI_RING:=65536): 'GFX_CTRL_CMD_ID_INIT_RBI_RING', (GFX_CTRL_CMD_ID_INIT_GPCOM_RING:=131072): 'GFX_CTRL_CMD_ID_INIT_GPCOM_RING', (GFX_CTRL_CMD_ID_DESTROY_RINGS:=196608): 'GFX_CTRL_CMD_ID_DESTROY_RINGS', (GFX_CTRL_CMD_ID_CAN_INIT_RINGS:=262144): 'GFX_CTRL_CMD_ID_CAN_INIT_RINGS', (GFX_CTRL_CMD_ID_ENABLE_INT:=327680): 'GFX_CTRL_CMD_ID_ENABLE_INT', (GFX_CTRL_CMD_ID_DISABLE_INT:=393216): 'GFX_CTRL_CMD_ID_DISABLE_INT', (GFX_CTRL_CMD_ID_MODE1_RST:=458752): 'GFX_CTRL_CMD_ID_MODE1_RST', (GFX_CTRL_CMD_ID_GBR_IH_SET:=524288): 'GFX_CTRL_CMD_ID_GBR_IH_SET', (GFX_CTRL_CMD_ID_CONSUME_CMD:=589824): 'GFX_CTRL_CMD_ID_CONSUME_CMD', (GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING:=786432): 'GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING', (GFX_CTRL_CMD_ID_MAX:=983040): 'GFX_CTRL_CMD_ID_MAX'}
@c.record
class struct_psp_gfx_ctrl(c.Struct):
  SIZE = 32
  cmd_resp: int
  rbi_wptr: int
  rbi_rptr: int
  gpcom_wptr: int
  gpcom_rptr: int
  ring_addr_lo: int
  ring_addr_hi: int
  ring_buf_size: int
struct_psp_gfx_ctrl.register_fields([('cmd_resp', ctypes.c_uint32, 0), ('rbi_wptr', ctypes.c_uint32, 4), ('rbi_rptr', ctypes.c_uint32, 8), ('gpcom_wptr', ctypes.c_uint32, 12), ('gpcom_rptr', ctypes.c_uint32, 16), ('ring_addr_lo', ctypes.c_uint32, 20), ('ring_addr_hi', ctypes.c_uint32, 24), ('ring_buf_size', ctypes.c_uint32, 28)])
enum_psp_gfx_cmd_id: dict[int, str] = {(GFX_CMD_ID_LOAD_TA:=1): 'GFX_CMD_ID_LOAD_TA', (GFX_CMD_ID_UNLOAD_TA:=2): 'GFX_CMD_ID_UNLOAD_TA', (GFX_CMD_ID_INVOKE_CMD:=3): 'GFX_CMD_ID_INVOKE_CMD', (GFX_CMD_ID_LOAD_ASD:=4): 'GFX_CMD_ID_LOAD_ASD', (GFX_CMD_ID_SETUP_TMR:=5): 'GFX_CMD_ID_SETUP_TMR', (GFX_CMD_ID_LOAD_IP_FW:=6): 'GFX_CMD_ID_LOAD_IP_FW', (GFX_CMD_ID_DESTROY_TMR:=7): 'GFX_CMD_ID_DESTROY_TMR', (GFX_CMD_ID_SAVE_RESTORE:=8): 'GFX_CMD_ID_SAVE_RESTORE', (GFX_CMD_ID_SETUP_VMR:=9): 'GFX_CMD_ID_SETUP_VMR', (GFX_CMD_ID_DESTROY_VMR:=10): 'GFX_CMD_ID_DESTROY_VMR', (GFX_CMD_ID_PROG_REG:=11): 'GFX_CMD_ID_PROG_REG', (GFX_CMD_ID_GET_FW_ATTESTATION:=15): 'GFX_CMD_ID_GET_FW_ATTESTATION', (GFX_CMD_ID_LOAD_TOC:=32): 'GFX_CMD_ID_LOAD_TOC', (GFX_CMD_ID_AUTOLOAD_RLC:=33): 'GFX_CMD_ID_AUTOLOAD_RLC', (GFX_CMD_ID_BOOT_CFG:=34): 'GFX_CMD_ID_BOOT_CFG', (GFX_CMD_ID_SRIOV_SPATIAL_PART:=39): 'GFX_CMD_ID_SRIOV_SPATIAL_PART'}
enum_psp_gfx_boot_config_cmd: dict[int, str] = {(BOOTCFG_CMD_SET:=1): 'BOOTCFG_CMD_SET', (BOOTCFG_CMD_GET:=2): 'BOOTCFG_CMD_GET', (BOOTCFG_CMD_INVALIDATE:=3): 'BOOTCFG_CMD_INVALIDATE'}
enum_psp_gfx_boot_config: dict[int, str] = {(BOOT_CONFIG_GECC:=1): 'BOOT_CONFIG_GECC'}
@c.record
class struct_psp_gfx_cmd_load_ta(c.Struct):
  SIZE = 24
  app_phy_addr_lo: int
  app_phy_addr_hi: int
  app_len: int
  cmd_buf_phy_addr_lo: int
  cmd_buf_phy_addr_hi: int
  cmd_buf_len: int
struct_psp_gfx_cmd_load_ta.register_fields([('app_phy_addr_lo', ctypes.c_uint32, 0), ('app_phy_addr_hi', ctypes.c_uint32, 4), ('app_len', ctypes.c_uint32, 8), ('cmd_buf_phy_addr_lo', ctypes.c_uint32, 12), ('cmd_buf_phy_addr_hi', ctypes.c_uint32, 16), ('cmd_buf_len', ctypes.c_uint32, 20)])
@c.record
class struct_psp_gfx_cmd_unload_ta(c.Struct):
  SIZE = 4
  session_id: int
struct_psp_gfx_cmd_unload_ta.register_fields([('session_id', ctypes.c_uint32, 0)])
@c.record
class struct_psp_gfx_buf_desc(c.Struct):
  SIZE = 12
  buf_phy_addr_lo: int
  buf_phy_addr_hi: int
  buf_size: int
struct_psp_gfx_buf_desc.register_fields([('buf_phy_addr_lo', ctypes.c_uint32, 0), ('buf_phy_addr_hi', ctypes.c_uint32, 4), ('buf_size', ctypes.c_uint32, 8)])
@c.record
class struct_psp_gfx_buf_list(c.Struct):
  SIZE = 776
  num_desc: int
  total_size: int
  buf_desc: c.Array[struct_psp_gfx_buf_desc, Literal[64]]
struct_psp_gfx_buf_list.register_fields([('num_desc', ctypes.c_uint32, 0), ('total_size', ctypes.c_uint32, 4), ('buf_desc', c.Array[struct_psp_gfx_buf_desc, Literal[64]], 8)])
@c.record
class struct_psp_gfx_cmd_invoke_cmd(c.Struct):
  SIZE = 784
  session_id: int
  ta_cmd_id: int
  buf: struct_psp_gfx_buf_list
struct_psp_gfx_cmd_invoke_cmd.register_fields([('session_id', ctypes.c_uint32, 0), ('ta_cmd_id', ctypes.c_uint32, 4), ('buf', struct_psp_gfx_buf_list, 8)])
@c.record
class struct_psp_gfx_cmd_setup_tmr(c.Struct):
  SIZE = 24
  buf_phy_addr_lo: int
  buf_phy_addr_hi: int
  buf_size: int
  bitfield: struct_psp_gfx_cmd_setup_tmr_bitfield
  tmr_flags: int
  system_phy_addr_lo: int
  system_phy_addr_hi: int
@c.record
class struct_psp_gfx_cmd_setup_tmr_bitfield(c.Struct):
  SIZE = 4
  sriov_enabled: int
  virt_phy_addr: int
  reserved: int
struct_psp_gfx_cmd_setup_tmr_bitfield.register_fields([('sriov_enabled', ctypes.c_uint32, 0, 1, 0), ('virt_phy_addr', ctypes.c_uint32, 0, 1, 1), ('reserved', ctypes.c_uint32, 0, 30, 2)])
struct_psp_gfx_cmd_setup_tmr.register_fields([('buf_phy_addr_lo', ctypes.c_uint32, 0), ('buf_phy_addr_hi', ctypes.c_uint32, 4), ('buf_size', ctypes.c_uint32, 8), ('bitfield', struct_psp_gfx_cmd_setup_tmr_bitfield, 12), ('tmr_flags', ctypes.c_uint32, 12), ('system_phy_addr_lo', ctypes.c_uint32, 16), ('system_phy_addr_hi', ctypes.c_uint32, 20)])
enum_psp_gfx_fw_type: dict[int, str] = {(GFX_FW_TYPE_NONE:=0): 'GFX_FW_TYPE_NONE', (GFX_FW_TYPE_CP_ME:=1): 'GFX_FW_TYPE_CP_ME', (GFX_FW_TYPE_CP_PFP:=2): 'GFX_FW_TYPE_CP_PFP', (GFX_FW_TYPE_CP_CE:=3): 'GFX_FW_TYPE_CP_CE', (GFX_FW_TYPE_CP_MEC:=4): 'GFX_FW_TYPE_CP_MEC', (GFX_FW_TYPE_CP_MEC_ME1:=5): 'GFX_FW_TYPE_CP_MEC_ME1', (GFX_FW_TYPE_CP_MEC_ME2:=6): 'GFX_FW_TYPE_CP_MEC_ME2', (GFX_FW_TYPE_RLC_V:=7): 'GFX_FW_TYPE_RLC_V', (GFX_FW_TYPE_RLC_G:=8): 'GFX_FW_TYPE_RLC_G', (GFX_FW_TYPE_SDMA0:=9): 'GFX_FW_TYPE_SDMA0', (GFX_FW_TYPE_SDMA1:=10): 'GFX_FW_TYPE_SDMA1', (GFX_FW_TYPE_DMCU_ERAM:=11): 'GFX_FW_TYPE_DMCU_ERAM', (GFX_FW_TYPE_DMCU_ISR:=12): 'GFX_FW_TYPE_DMCU_ISR', (GFX_FW_TYPE_VCN:=13): 'GFX_FW_TYPE_VCN', (GFX_FW_TYPE_UVD:=14): 'GFX_FW_TYPE_UVD', (GFX_FW_TYPE_VCE:=15): 'GFX_FW_TYPE_VCE', (GFX_FW_TYPE_ISP:=16): 'GFX_FW_TYPE_ISP', (GFX_FW_TYPE_ACP:=17): 'GFX_FW_TYPE_ACP', (GFX_FW_TYPE_SMU:=18): 'GFX_FW_TYPE_SMU', (GFX_FW_TYPE_MMSCH:=19): 'GFX_FW_TYPE_MMSCH', (GFX_FW_TYPE_RLC_RESTORE_LIST_GPM_MEM:=20): 'GFX_FW_TYPE_RLC_RESTORE_LIST_GPM_MEM', (GFX_FW_TYPE_RLC_RESTORE_LIST_SRM_MEM:=21): 'GFX_FW_TYPE_RLC_RESTORE_LIST_SRM_MEM', (GFX_FW_TYPE_RLC_RESTORE_LIST_SRM_CNTL:=22): 'GFX_FW_TYPE_RLC_RESTORE_LIST_SRM_CNTL', (GFX_FW_TYPE_UVD1:=23): 'GFX_FW_TYPE_UVD1', (GFX_FW_TYPE_TOC:=24): 'GFX_FW_TYPE_TOC', (GFX_FW_TYPE_RLC_P:=25): 'GFX_FW_TYPE_RLC_P', (GFX_FW_TYPE_RLC_IRAM:=26): 'GFX_FW_TYPE_RLC_IRAM', (GFX_FW_TYPE_GLOBAL_TAP_DELAYS:=27): 'GFX_FW_TYPE_GLOBAL_TAP_DELAYS', (GFX_FW_TYPE_SE0_TAP_DELAYS:=28): 'GFX_FW_TYPE_SE0_TAP_DELAYS', (GFX_FW_TYPE_SE1_TAP_DELAYS:=29): 'GFX_FW_TYPE_SE1_TAP_DELAYS', (GFX_FW_TYPE_GLOBAL_SE0_SE1_SKEW_DELAYS:=30): 'GFX_FW_TYPE_GLOBAL_SE0_SE1_SKEW_DELAYS', (GFX_FW_TYPE_SDMA0_JT:=31): 'GFX_FW_TYPE_SDMA0_JT', (GFX_FW_TYPE_SDMA1_JT:=32): 'GFX_FW_TYPE_SDMA1_JT', (GFX_FW_TYPE_CP_MES:=33): 'GFX_FW_TYPE_CP_MES', (GFX_FW_TYPE_MES_STACK:=34): 'GFX_FW_TYPE_MES_STACK', (GFX_FW_TYPE_RLC_SRM_DRAM_SR:=35): 'GFX_FW_TYPE_RLC_SRM_DRAM_SR', (GFX_FW_TYPE_RLCG_SCRATCH_SR:=36): 'GFX_FW_TYPE_RLCG_SCRATCH_SR', (GFX_FW_TYPE_RLCP_SCRATCH_SR:=37): 'GFX_FW_TYPE_RLCP_SCRATCH_SR', (GFX_FW_TYPE_RLCV_SCRATCH_SR:=38): 'GFX_FW_TYPE_RLCV_SCRATCH_SR', (GFX_FW_TYPE_RLX6_DRAM_SR:=39): 'GFX_FW_TYPE_RLX6_DRAM_SR', (GFX_FW_TYPE_SDMA0_PG_CONTEXT:=40): 'GFX_FW_TYPE_SDMA0_PG_CONTEXT', (GFX_FW_TYPE_SDMA1_PG_CONTEXT:=41): 'GFX_FW_TYPE_SDMA1_PG_CONTEXT', (GFX_FW_TYPE_GLOBAL_MUX_SELECT_RAM:=42): 'GFX_FW_TYPE_GLOBAL_MUX_SELECT_RAM', (GFX_FW_TYPE_SE0_MUX_SELECT_RAM:=43): 'GFX_FW_TYPE_SE0_MUX_SELECT_RAM', (GFX_FW_TYPE_SE1_MUX_SELECT_RAM:=44): 'GFX_FW_TYPE_SE1_MUX_SELECT_RAM', (GFX_FW_TYPE_ACCUM_CTRL_RAM:=45): 'GFX_FW_TYPE_ACCUM_CTRL_RAM', (GFX_FW_TYPE_RLCP_CAM:=46): 'GFX_FW_TYPE_RLCP_CAM', (GFX_FW_TYPE_RLC_SPP_CAM_EXT:=47): 'GFX_FW_TYPE_RLC_SPP_CAM_EXT', (GFX_FW_TYPE_RLC_DRAM_BOOT:=48): 'GFX_FW_TYPE_RLC_DRAM_BOOT', (GFX_FW_TYPE_VCN0_RAM:=49): 'GFX_FW_TYPE_VCN0_RAM', (GFX_FW_TYPE_VCN1_RAM:=50): 'GFX_FW_TYPE_VCN1_RAM', (GFX_FW_TYPE_DMUB:=51): 'GFX_FW_TYPE_DMUB', (GFX_FW_TYPE_SDMA2:=52): 'GFX_FW_TYPE_SDMA2', (GFX_FW_TYPE_SDMA3:=53): 'GFX_FW_TYPE_SDMA3', (GFX_FW_TYPE_SDMA4:=54): 'GFX_FW_TYPE_SDMA4', (GFX_FW_TYPE_SDMA5:=55): 'GFX_FW_TYPE_SDMA5', (GFX_FW_TYPE_SDMA6:=56): 'GFX_FW_TYPE_SDMA6', (GFX_FW_TYPE_SDMA7:=57): 'GFX_FW_TYPE_SDMA7', (GFX_FW_TYPE_VCN1:=58): 'GFX_FW_TYPE_VCN1', (GFX_FW_TYPE_CAP:=62): 'GFX_FW_TYPE_CAP', (GFX_FW_TYPE_SE2_TAP_DELAYS:=65): 'GFX_FW_TYPE_SE2_TAP_DELAYS', (GFX_FW_TYPE_SE3_TAP_DELAYS:=66): 'GFX_FW_TYPE_SE3_TAP_DELAYS', (GFX_FW_TYPE_REG_LIST:=67): 'GFX_FW_TYPE_REG_LIST', (GFX_FW_TYPE_IMU_I:=68): 'GFX_FW_TYPE_IMU_I', (GFX_FW_TYPE_IMU_D:=69): 'GFX_FW_TYPE_IMU_D', (GFX_FW_TYPE_LSDMA:=70): 'GFX_FW_TYPE_LSDMA', (GFX_FW_TYPE_SDMA_UCODE_TH0:=71): 'GFX_FW_TYPE_SDMA_UCODE_TH0', (GFX_FW_TYPE_SDMA_UCODE_TH1:=72): 'GFX_FW_TYPE_SDMA_UCODE_TH1', (GFX_FW_TYPE_PPTABLE:=73): 'GFX_FW_TYPE_PPTABLE', (GFX_FW_TYPE_DISCRETE_USB4:=74): 'GFX_FW_TYPE_DISCRETE_USB4', (GFX_FW_TYPE_TA:=75): 'GFX_FW_TYPE_TA', (GFX_FW_TYPE_RS64_MES:=76): 'GFX_FW_TYPE_RS64_MES', (GFX_FW_TYPE_RS64_MES_STACK:=77): 'GFX_FW_TYPE_RS64_MES_STACK', (GFX_FW_TYPE_RS64_KIQ:=78): 'GFX_FW_TYPE_RS64_KIQ', (GFX_FW_TYPE_RS64_KIQ_STACK:=79): 'GFX_FW_TYPE_RS64_KIQ_STACK', (GFX_FW_TYPE_ISP_DATA:=80): 'GFX_FW_TYPE_ISP_DATA', (GFX_FW_TYPE_CP_MES_KIQ:=81): 'GFX_FW_TYPE_CP_MES_KIQ', (GFX_FW_TYPE_MES_KIQ_STACK:=82): 'GFX_FW_TYPE_MES_KIQ_STACK', (GFX_FW_TYPE_UMSCH_DATA:=83): 'GFX_FW_TYPE_UMSCH_DATA', (GFX_FW_TYPE_UMSCH_UCODE:=84): 'GFX_FW_TYPE_UMSCH_UCODE', (GFX_FW_TYPE_UMSCH_CMD_BUFFER:=85): 'GFX_FW_TYPE_UMSCH_CMD_BUFFER', (GFX_FW_TYPE_USB_DP_COMBO_PHY:=86): 'GFX_FW_TYPE_USB_DP_COMBO_PHY', (GFX_FW_TYPE_RS64_PFP:=87): 'GFX_FW_TYPE_RS64_PFP', (GFX_FW_TYPE_RS64_ME:=88): 'GFX_FW_TYPE_RS64_ME', (GFX_FW_TYPE_RS64_MEC:=89): 'GFX_FW_TYPE_RS64_MEC', (GFX_FW_TYPE_RS64_PFP_P0_STACK:=90): 'GFX_FW_TYPE_RS64_PFP_P0_STACK', (GFX_FW_TYPE_RS64_PFP_P1_STACK:=91): 'GFX_FW_TYPE_RS64_PFP_P1_STACK', (GFX_FW_TYPE_RS64_ME_P0_STACK:=92): 'GFX_FW_TYPE_RS64_ME_P0_STACK', (GFX_FW_TYPE_RS64_ME_P1_STACK:=93): 'GFX_FW_TYPE_RS64_ME_P1_STACK', (GFX_FW_TYPE_RS64_MEC_P0_STACK:=94): 'GFX_FW_TYPE_RS64_MEC_P0_STACK', (GFX_FW_TYPE_RS64_MEC_P1_STACK:=95): 'GFX_FW_TYPE_RS64_MEC_P1_STACK', (GFX_FW_TYPE_RS64_MEC_P2_STACK:=96): 'GFX_FW_TYPE_RS64_MEC_P2_STACK', (GFX_FW_TYPE_RS64_MEC_P3_STACK:=97): 'GFX_FW_TYPE_RS64_MEC_P3_STACK', (GFX_FW_TYPE_VPEC_FW1:=100): 'GFX_FW_TYPE_VPEC_FW1', (GFX_FW_TYPE_VPEC_FW2:=101): 'GFX_FW_TYPE_VPEC_FW2', (GFX_FW_TYPE_VPE:=102): 'GFX_FW_TYPE_VPE', (GFX_FW_TYPE_JPEG_RAM:=128): 'GFX_FW_TYPE_JPEG_RAM', (GFX_FW_TYPE_P2S_TABLE:=129): 'GFX_FW_TYPE_P2S_TABLE', (GFX_FW_TYPE_MAX:=130): 'GFX_FW_TYPE_MAX'}
@c.record
class struct_psp_gfx_cmd_load_ip_fw(c.Struct):
  SIZE = 16
  fw_phy_addr_lo: int
  fw_phy_addr_hi: int
  fw_size: int
  fw_type: int
struct_psp_gfx_cmd_load_ip_fw.register_fields([('fw_phy_addr_lo', ctypes.c_uint32, 0), ('fw_phy_addr_hi', ctypes.c_uint32, 4), ('fw_size', ctypes.c_uint32, 8), ('fw_type', ctypes.c_uint32, 12)])
@c.record
class struct_psp_gfx_cmd_save_restore_ip_fw(c.Struct):
  SIZE = 20
  save_fw: int
  save_restore_addr_lo: int
  save_restore_addr_hi: int
  buf_size: int
  fw_type: int
struct_psp_gfx_cmd_save_restore_ip_fw.register_fields([('save_fw', ctypes.c_uint32, 0), ('save_restore_addr_lo', ctypes.c_uint32, 4), ('save_restore_addr_hi', ctypes.c_uint32, 8), ('buf_size', ctypes.c_uint32, 12), ('fw_type', ctypes.c_uint32, 16)])
@c.record
class struct_psp_gfx_cmd_reg_prog(c.Struct):
  SIZE = 8
  reg_value: int
  reg_id: int
struct_psp_gfx_cmd_reg_prog.register_fields([('reg_value', ctypes.c_uint32, 0), ('reg_id', ctypes.c_uint32, 4)])
@c.record
class struct_psp_gfx_cmd_load_toc(c.Struct):
  SIZE = 12
  toc_phy_addr_lo: int
  toc_phy_addr_hi: int
  toc_size: int
struct_psp_gfx_cmd_load_toc.register_fields([('toc_phy_addr_lo', ctypes.c_uint32, 0), ('toc_phy_addr_hi', ctypes.c_uint32, 4), ('toc_size', ctypes.c_uint32, 8)])
@c.record
class struct_psp_gfx_cmd_boot_cfg(c.Struct):
  SIZE = 16
  timestamp: int
  sub_cmd: int
  boot_config: int
  boot_config_valid: int
struct_psp_gfx_cmd_boot_cfg.register_fields([('timestamp', ctypes.c_uint32, 0), ('sub_cmd', ctypes.c_uint32, 4), ('boot_config', ctypes.c_uint32, 8), ('boot_config_valid', ctypes.c_uint32, 12)])
@c.record
class struct_psp_gfx_cmd_sriov_spatial_part(c.Struct):
  SIZE = 16
  mode: int
  override_ips: int
  override_xcds_avail: int
  override_this_aid: int
struct_psp_gfx_cmd_sriov_spatial_part.register_fields([('mode', ctypes.c_uint32, 0), ('override_ips', ctypes.c_uint32, 4), ('override_xcds_avail', ctypes.c_uint32, 8), ('override_this_aid', ctypes.c_uint32, 12)])
@c.record
class union_psp_gfx_commands(c.Struct):
  SIZE = 784
  cmd_load_ta: struct_psp_gfx_cmd_load_ta
  cmd_unload_ta: struct_psp_gfx_cmd_unload_ta
  cmd_invoke_cmd: struct_psp_gfx_cmd_invoke_cmd
  cmd_setup_tmr: struct_psp_gfx_cmd_setup_tmr
  cmd_load_ip_fw: struct_psp_gfx_cmd_load_ip_fw
  cmd_save_restore_ip_fw: struct_psp_gfx_cmd_save_restore_ip_fw
  cmd_setup_reg_prog: struct_psp_gfx_cmd_reg_prog
  cmd_setup_vmr: struct_psp_gfx_cmd_setup_tmr
  cmd_load_toc: struct_psp_gfx_cmd_load_toc
  boot_cfg: struct_psp_gfx_cmd_boot_cfg
  cmd_spatial_part: struct_psp_gfx_cmd_sriov_spatial_part
union_psp_gfx_commands.register_fields([('cmd_load_ta', struct_psp_gfx_cmd_load_ta, 0), ('cmd_unload_ta', struct_psp_gfx_cmd_unload_ta, 0), ('cmd_invoke_cmd', struct_psp_gfx_cmd_invoke_cmd, 0), ('cmd_setup_tmr', struct_psp_gfx_cmd_setup_tmr, 0), ('cmd_load_ip_fw', struct_psp_gfx_cmd_load_ip_fw, 0), ('cmd_save_restore_ip_fw', struct_psp_gfx_cmd_save_restore_ip_fw, 0), ('cmd_setup_reg_prog', struct_psp_gfx_cmd_reg_prog, 0), ('cmd_setup_vmr', struct_psp_gfx_cmd_setup_tmr, 0), ('cmd_load_toc', struct_psp_gfx_cmd_load_toc, 0), ('boot_cfg', struct_psp_gfx_cmd_boot_cfg, 0), ('cmd_spatial_part', struct_psp_gfx_cmd_sriov_spatial_part, 0)])
@c.record
class struct_psp_gfx_uresp_reserved(c.Struct):
  SIZE = 32
  reserved: c.Array[ctypes.c_uint32, Literal[8]]
struct_psp_gfx_uresp_reserved.register_fields([('reserved', c.Array[ctypes.c_uint32, Literal[8]], 0)])
@c.record
class struct_psp_gfx_uresp_fwar_db_info(c.Struct):
  SIZE = 8
  fwar_db_addr_lo: int
  fwar_db_addr_hi: int
struct_psp_gfx_uresp_fwar_db_info.register_fields([('fwar_db_addr_lo', ctypes.c_uint32, 0), ('fwar_db_addr_hi', ctypes.c_uint32, 4)])
@c.record
class struct_psp_gfx_uresp_bootcfg(c.Struct):
  SIZE = 4
  boot_cfg: int
struct_psp_gfx_uresp_bootcfg.register_fields([('boot_cfg', ctypes.c_uint32, 0)])
@c.record
class union_psp_gfx_uresp(c.Struct):
  SIZE = 32
  reserved: struct_psp_gfx_uresp_reserved
  boot_cfg: struct_psp_gfx_uresp_bootcfg
  fwar_db_info: struct_psp_gfx_uresp_fwar_db_info
union_psp_gfx_uresp.register_fields([('reserved', struct_psp_gfx_uresp_reserved, 0), ('boot_cfg', struct_psp_gfx_uresp_bootcfg, 0), ('fwar_db_info', struct_psp_gfx_uresp_fwar_db_info, 0)])
@c.record
class struct_psp_gfx_resp(c.Struct):
  SIZE = 96
  status: int
  session_id: int
  fw_addr_lo: int
  fw_addr_hi: int
  tmr_size: int
  reserved: c.Array[ctypes.c_uint32, Literal[11]]
  uresp: union_psp_gfx_uresp
struct_psp_gfx_resp.register_fields([('status', ctypes.c_uint32, 0), ('session_id', ctypes.c_uint32, 4), ('fw_addr_lo', ctypes.c_uint32, 8), ('fw_addr_hi', ctypes.c_uint32, 12), ('tmr_size', ctypes.c_uint32, 16), ('reserved', c.Array[ctypes.c_uint32, Literal[11]], 20), ('uresp', union_psp_gfx_uresp, 64)])
@c.record
class struct_psp_gfx_cmd_resp(c.Struct):
  SIZE = 1024
  buf_size: int
  buf_version: int
  cmd_id: int
  resp_buf_addr_lo: int
  resp_buf_addr_hi: int
  resp_offset: int
  resp_buf_size: int
  cmd: union_psp_gfx_commands
  reserved_1: c.Array[ctypes.c_ubyte, Literal[52]]
  resp: struct_psp_gfx_resp
  reserved_2: c.Array[ctypes.c_ubyte, Literal[64]]
struct_psp_gfx_cmd_resp.register_fields([('buf_size', ctypes.c_uint32, 0), ('buf_version', ctypes.c_uint32, 4), ('cmd_id', ctypes.c_uint32, 8), ('resp_buf_addr_lo', ctypes.c_uint32, 12), ('resp_buf_addr_hi', ctypes.c_uint32, 16), ('resp_offset', ctypes.c_uint32, 20), ('resp_buf_size', ctypes.c_uint32, 24), ('cmd', union_psp_gfx_commands, 28), ('reserved_1', c.Array[ctypes.c_ubyte, Literal[52]], 812), ('resp', struct_psp_gfx_resp, 864), ('reserved_2', c.Array[ctypes.c_ubyte, Literal[64]], 960)])
@c.record
class struct_psp_gfx_rb_frame(c.Struct):
  SIZE = 64
  cmd_buf_addr_lo: int
  cmd_buf_addr_hi: int
  cmd_buf_size: int
  fence_addr_lo: int
  fence_addr_hi: int
  fence_value: int
  sid_lo: int
  sid_hi: int
  vmid: int
  frame_type: int
  reserved1: c.Array[ctypes.c_ubyte, Literal[2]]
  reserved2: c.Array[ctypes.c_uint32, Literal[7]]
struct_psp_gfx_rb_frame.register_fields([('cmd_buf_addr_lo', ctypes.c_uint32, 0), ('cmd_buf_addr_hi', ctypes.c_uint32, 4), ('cmd_buf_size', ctypes.c_uint32, 8), ('fence_addr_lo', ctypes.c_uint32, 12), ('fence_addr_hi', ctypes.c_uint32, 16), ('fence_value', ctypes.c_uint32, 20), ('sid_lo', ctypes.c_uint32, 24), ('sid_hi', ctypes.c_uint32, 28), ('vmid', ctypes.c_ubyte, 32), ('frame_type', ctypes.c_ubyte, 33), ('reserved1', c.Array[ctypes.c_ubyte, Literal[2]], 34), ('reserved2', c.Array[ctypes.c_uint32, Literal[7]], 36)])
enum_tee_error_code: dict[int, str] = {(TEE_SUCCESS:=0): 'TEE_SUCCESS', (TEE_ERROR_NOT_SUPPORTED:=4294901770): 'TEE_ERROR_NOT_SUPPORTED'}
enum_psp_shared_mem_size: dict[int, str] = {(PSP_ASD_SHARED_MEM_SIZE:=0): 'PSP_ASD_SHARED_MEM_SIZE', (PSP_XGMI_SHARED_MEM_SIZE:=16384): 'PSP_XGMI_SHARED_MEM_SIZE', (PSP_RAS_SHARED_MEM_SIZE:=16384): 'PSP_RAS_SHARED_MEM_SIZE', (PSP_HDCP_SHARED_MEM_SIZE:=16384): 'PSP_HDCP_SHARED_MEM_SIZE', (PSP_DTM_SHARED_MEM_SIZE:=16384): 'PSP_DTM_SHARED_MEM_SIZE', (PSP_RAP_SHARED_MEM_SIZE:=16384): 'PSP_RAP_SHARED_MEM_SIZE', (PSP_SECUREDISPLAY_SHARED_MEM_SIZE:=16384): 'PSP_SECUREDISPLAY_SHARED_MEM_SIZE'}
enum_ta_type_id: dict[int, str] = {(TA_TYPE_XGMI:=1): 'TA_TYPE_XGMI', (TA_TYPE_RAS:=2): 'TA_TYPE_RAS', (TA_TYPE_HDCP:=3): 'TA_TYPE_HDCP', (TA_TYPE_DTM:=4): 'TA_TYPE_DTM', (TA_TYPE_RAP:=5): 'TA_TYPE_RAP', (TA_TYPE_SECUREDISPLAY:=6): 'TA_TYPE_SECUREDISPLAY', (TA_TYPE_MAX_INDEX:=7): 'TA_TYPE_MAX_INDEX'}
class struct_psp_context(c.Struct): pass
class struct_psp_xgmi_node_info(c.Struct): pass
class struct_psp_xgmi_topology_info(c.Struct): pass
class struct_psp_bin_desc(c.Struct): pass
enum_psp_bootloader_cmd: dict[int, str] = {(PSP_BL__LOAD_SYSDRV:=65536): 'PSP_BL__LOAD_SYSDRV', (PSP_BL__LOAD_SOSDRV:=131072): 'PSP_BL__LOAD_SOSDRV', (PSP_BL__LOAD_KEY_DATABASE:=524288): 'PSP_BL__LOAD_KEY_DATABASE', (PSP_BL__LOAD_SOCDRV:=720896): 'PSP_BL__LOAD_SOCDRV', (PSP_BL__LOAD_DBGDRV:=786432): 'PSP_BL__LOAD_DBGDRV', (PSP_BL__LOAD_HADDRV:=786432): 'PSP_BL__LOAD_HADDRV', (PSP_BL__LOAD_INTFDRV:=851968): 'PSP_BL__LOAD_INTFDRV', (PSP_BL__LOAD_RASDRV:=917504): 'PSP_BL__LOAD_RASDRV', (PSP_BL__LOAD_IPKEYMGRDRV:=983040): 'PSP_BL__LOAD_IPKEYMGRDRV', (PSP_BL__DRAM_LONG_TRAIN:=1048576): 'PSP_BL__DRAM_LONG_TRAIN', (PSP_BL__DRAM_SHORT_TRAIN:=2097152): 'PSP_BL__DRAM_SHORT_TRAIN', (PSP_BL__LOAD_TOS_SPL_TABLE:=268435456): 'PSP_BL__LOAD_TOS_SPL_TABLE'}
enum_psp_ring_type: dict[int, str] = {(PSP_RING_TYPE__INVALID:=0): 'PSP_RING_TYPE__INVALID', (PSP_RING_TYPE__UM:=1): 'PSP_RING_TYPE__UM', (PSP_RING_TYPE__KM:=2): 'PSP_RING_TYPE__KM'}
enum_psp_reg_prog_id: dict[int, str] = {(PSP_REG_IH_RB_CNTL:=0): 'PSP_REG_IH_RB_CNTL', (PSP_REG_IH_RB_CNTL_RING1:=1): 'PSP_REG_IH_RB_CNTL_RING1', (PSP_REG_IH_RB_CNTL_RING2:=2): 'PSP_REG_IH_RB_CNTL_RING2', (PSP_REG_LAST:=3): 'PSP_REG_LAST'}
enum_psp_memory_training_init_flag: dict[int, str] = {(PSP_MEM_TRAIN_NOT_SUPPORT:=0): 'PSP_MEM_TRAIN_NOT_SUPPORT', (PSP_MEM_TRAIN_SUPPORT:=1): 'PSP_MEM_TRAIN_SUPPORT', (PSP_MEM_TRAIN_INIT_FAILED:=2): 'PSP_MEM_TRAIN_INIT_FAILED', (PSP_MEM_TRAIN_RESERVE_SUCCESS:=4): 'PSP_MEM_TRAIN_RESERVE_SUCCESS', (PSP_MEM_TRAIN_INIT_SUCCESS:=8): 'PSP_MEM_TRAIN_INIT_SUCCESS'}
enum_psp_memory_training_ops: dict[int, str] = {(PSP_MEM_TRAIN_SEND_LONG_MSG:=1): 'PSP_MEM_TRAIN_SEND_LONG_MSG', (PSP_MEM_TRAIN_SAVE:=2): 'PSP_MEM_TRAIN_SAVE', (PSP_MEM_TRAIN_RESTORE:=4): 'PSP_MEM_TRAIN_RESTORE', (PSP_MEM_TRAIN_SEND_SHORT_MSG:=8): 'PSP_MEM_TRAIN_SEND_SHORT_MSG', (PSP_MEM_TRAIN_COLD_BOOT:=1): 'PSP_MEM_TRAIN_COLD_BOOT', (PSP_MEM_TRAIN_RESUME:=8): 'PSP_MEM_TRAIN_RESUME'}
enum_psp_runtime_entry_type: dict[int, str] = {(PSP_RUNTIME_ENTRY_TYPE_INVALID:=0): 'PSP_RUNTIME_ENTRY_TYPE_INVALID', (PSP_RUNTIME_ENTRY_TYPE_TEST:=1): 'PSP_RUNTIME_ENTRY_TYPE_TEST', (PSP_RUNTIME_ENTRY_TYPE_MGPU_COMMON:=2): 'PSP_RUNTIME_ENTRY_TYPE_MGPU_COMMON', (PSP_RUNTIME_ENTRY_TYPE_MGPU_WAFL:=3): 'PSP_RUNTIME_ENTRY_TYPE_MGPU_WAFL', (PSP_RUNTIME_ENTRY_TYPE_MGPU_XGMI:=4): 'PSP_RUNTIME_ENTRY_TYPE_MGPU_XGMI', (PSP_RUNTIME_ENTRY_TYPE_BOOT_CONFIG:=5): 'PSP_RUNTIME_ENTRY_TYPE_BOOT_CONFIG', (PSP_RUNTIME_ENTRY_TYPE_PPTABLE_ERR_STATUS:=6): 'PSP_RUNTIME_ENTRY_TYPE_PPTABLE_ERR_STATUS'}
enum_psp_runtime_boot_cfg_feature: dict[int, str] = {(BOOT_CFG_FEATURE_GECC:=1): 'BOOT_CFG_FEATURE_GECC', (BOOT_CFG_FEATURE_TWO_STAGE_DRAM_TRAINING:=2): 'BOOT_CFG_FEATURE_TWO_STAGE_DRAM_TRAINING'}
enum_psp_runtime_scpm_authentication: dict[int, str] = {(SCPM_DISABLE:=0): 'SCPM_DISABLE', (SCPM_ENABLE:=1): 'SCPM_ENABLE', (SCPM_ENABLE_WITH_SCPM_ERR:=2): 'SCPM_ENABLE_WITH_SCPM_ERR'}
class struct_amdgpu_device(c.Struct): pass
enum_amdgpu_interrupt_state: dict[int, str] = {(AMDGPU_IRQ_STATE_DISABLE:=0): 'AMDGPU_IRQ_STATE_DISABLE', (AMDGPU_IRQ_STATE_ENABLE:=1): 'AMDGPU_IRQ_STATE_ENABLE'}
@c.record
class struct_amdgpu_iv_entry(c.Struct):
  SIZE = 72
  client_id: int
  src_id: int
  ring_id: int
  vmid: int
  vmid_src: int
  timestamp: int
  timestamp_src: int
  pasid: int
  node_id: int
  src_data: c.Array[ctypes.c_uint32, Literal[4]]
  iv_entry: c.POINTER[ctypes.c_uint32]
struct_amdgpu_iv_entry.register_fields([('client_id', ctypes.c_uint32, 0), ('src_id', ctypes.c_uint32, 4), ('ring_id', ctypes.c_uint32, 8), ('vmid', ctypes.c_uint32, 12), ('vmid_src', ctypes.c_uint32, 16), ('timestamp', uint64_t, 24), ('timestamp_src', ctypes.c_uint32, 32), ('pasid', ctypes.c_uint32, 36), ('node_id', ctypes.c_uint32, 40), ('src_data', c.Array[ctypes.c_uint32, Literal[4]], 44), ('iv_entry', c.POINTER[uint32_t], 64)])
enum_interrupt_node_id_per_aid: dict[int, str] = {(AID0_NODEID:=0): 'AID0_NODEID', (XCD0_NODEID:=1): 'XCD0_NODEID', (XCD1_NODEID:=2): 'XCD1_NODEID', (AID1_NODEID:=4): 'AID1_NODEID', (XCD2_NODEID:=5): 'XCD2_NODEID', (XCD3_NODEID:=6): 'XCD3_NODEID', (AID2_NODEID:=8): 'AID2_NODEID', (XCD4_NODEID:=9): 'XCD4_NODEID', (XCD5_NODEID:=10): 'XCD5_NODEID', (AID3_NODEID:=12): 'AID3_NODEID', (XCD6_NODEID:=13): 'XCD6_NODEID', (XCD7_NODEID:=14): 'XCD7_NODEID', (NODEID_MAX:=15): 'NODEID_MAX'}
enum_AMDGPU_DOORBELL_ASSIGNMENT: dict[int, str] = {(AMDGPU_DOORBELL_KIQ:=0): 'AMDGPU_DOORBELL_KIQ', (AMDGPU_DOORBELL_HIQ:=1): 'AMDGPU_DOORBELL_HIQ', (AMDGPU_DOORBELL_DIQ:=2): 'AMDGPU_DOORBELL_DIQ', (AMDGPU_DOORBELL_MEC_RING0:=16): 'AMDGPU_DOORBELL_MEC_RING0', (AMDGPU_DOORBELL_MEC_RING1:=17): 'AMDGPU_DOORBELL_MEC_RING1', (AMDGPU_DOORBELL_MEC_RING2:=18): 'AMDGPU_DOORBELL_MEC_RING2', (AMDGPU_DOORBELL_MEC_RING3:=19): 'AMDGPU_DOORBELL_MEC_RING3', (AMDGPU_DOORBELL_MEC_RING4:=20): 'AMDGPU_DOORBELL_MEC_RING4', (AMDGPU_DOORBELL_MEC_RING5:=21): 'AMDGPU_DOORBELL_MEC_RING5', (AMDGPU_DOORBELL_MEC_RING6:=22): 'AMDGPU_DOORBELL_MEC_RING6', (AMDGPU_DOORBELL_MEC_RING7:=23): 'AMDGPU_DOORBELL_MEC_RING7', (AMDGPU_DOORBELL_GFX_RING0:=32): 'AMDGPU_DOORBELL_GFX_RING0', (AMDGPU_DOORBELL_sDMA_ENGINE0:=480): 'AMDGPU_DOORBELL_sDMA_ENGINE0', (AMDGPU_DOORBELL_sDMA_ENGINE1:=481): 'AMDGPU_DOORBELL_sDMA_ENGINE1', (AMDGPU_DOORBELL_IH:=488): 'AMDGPU_DOORBELL_IH', (AMDGPU_DOORBELL_MAX_ASSIGNMENT:=1023): 'AMDGPU_DOORBELL_MAX_ASSIGNMENT', (AMDGPU_DOORBELL_INVALID:=65535): 'AMDGPU_DOORBELL_INVALID'}
enum_AMDGPU_VEGA20_DOORBELL_ASSIGNMENT: dict[int, str] = {(AMDGPU_VEGA20_DOORBELL_KIQ:=0): 'AMDGPU_VEGA20_DOORBELL_KIQ', (AMDGPU_VEGA20_DOORBELL_HIQ:=1): 'AMDGPU_VEGA20_DOORBELL_HIQ', (AMDGPU_VEGA20_DOORBELL_DIQ:=2): 'AMDGPU_VEGA20_DOORBELL_DIQ', (AMDGPU_VEGA20_DOORBELL_MEC_RING0:=3): 'AMDGPU_VEGA20_DOORBELL_MEC_RING0', (AMDGPU_VEGA20_DOORBELL_MEC_RING1:=4): 'AMDGPU_VEGA20_DOORBELL_MEC_RING1', (AMDGPU_VEGA20_DOORBELL_MEC_RING2:=5): 'AMDGPU_VEGA20_DOORBELL_MEC_RING2', (AMDGPU_VEGA20_DOORBELL_MEC_RING3:=6): 'AMDGPU_VEGA20_DOORBELL_MEC_RING3', (AMDGPU_VEGA20_DOORBELL_MEC_RING4:=7): 'AMDGPU_VEGA20_DOORBELL_MEC_RING4', (AMDGPU_VEGA20_DOORBELL_MEC_RING5:=8): 'AMDGPU_VEGA20_DOORBELL_MEC_RING5', (AMDGPU_VEGA20_DOORBELL_MEC_RING6:=9): 'AMDGPU_VEGA20_DOORBELL_MEC_RING6', (AMDGPU_VEGA20_DOORBELL_MEC_RING7:=10): 'AMDGPU_VEGA20_DOORBELL_MEC_RING7', (AMDGPU_VEGA20_DOORBELL_USERQUEUE_START:=11): 'AMDGPU_VEGA20_DOORBELL_USERQUEUE_START', (AMDGPU_VEGA20_DOORBELL_USERQUEUE_END:=138): 'AMDGPU_VEGA20_DOORBELL_USERQUEUE_END', (AMDGPU_VEGA20_DOORBELL_GFX_RING0:=139): 'AMDGPU_VEGA20_DOORBELL_GFX_RING0', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE0:=256): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE0', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE1:=266): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE1', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE2:=276): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE2', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE3:=286): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE3', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE4:=296): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE4', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE5:=306): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE5', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE6:=316): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE6', (AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE7:=326): 'AMDGPU_VEGA20_DOORBELL_sDMA_ENGINE7', (AMDGPU_VEGA20_DOORBELL_IH:=376): 'AMDGPU_VEGA20_DOORBELL_IH', (AMDGPU_VEGA20_DOORBELL64_VCN0_1:=392): 'AMDGPU_VEGA20_DOORBELL64_VCN0_1', (AMDGPU_VEGA20_DOORBELL64_VCN2_3:=393): 'AMDGPU_VEGA20_DOORBELL64_VCN2_3', (AMDGPU_VEGA20_DOORBELL64_VCN4_5:=394): 'AMDGPU_VEGA20_DOORBELL64_VCN4_5', (AMDGPU_VEGA20_DOORBELL64_VCN6_7:=395): 'AMDGPU_VEGA20_DOORBELL64_VCN6_7', (AMDGPU_VEGA20_DOORBELL64_VCN8_9:=396): 'AMDGPU_VEGA20_DOORBELL64_VCN8_9', (AMDGPU_VEGA20_DOORBELL64_VCNa_b:=397): 'AMDGPU_VEGA20_DOORBELL64_VCNa_b', (AMDGPU_VEGA20_DOORBELL64_VCNc_d:=398): 'AMDGPU_VEGA20_DOORBELL64_VCNc_d', (AMDGPU_VEGA20_DOORBELL64_VCNe_f:=399): 'AMDGPU_VEGA20_DOORBELL64_VCNe_f', (AMDGPU_VEGA20_DOORBELL64_UVD_RING0_1:=392): 'AMDGPU_VEGA20_DOORBELL64_UVD_RING0_1', (AMDGPU_VEGA20_DOORBELL64_UVD_RING2_3:=393): 'AMDGPU_VEGA20_DOORBELL64_UVD_RING2_3', (AMDGPU_VEGA20_DOORBELL64_UVD_RING4_5:=394): 'AMDGPU_VEGA20_DOORBELL64_UVD_RING4_5', (AMDGPU_VEGA20_DOORBELL64_UVD_RING6_7:=395): 'AMDGPU_VEGA20_DOORBELL64_UVD_RING6_7', (AMDGPU_VEGA20_DOORBELL64_VCE_RING0_1:=396): 'AMDGPU_VEGA20_DOORBELL64_VCE_RING0_1', (AMDGPU_VEGA20_DOORBELL64_VCE_RING2_3:=397): 'AMDGPU_VEGA20_DOORBELL64_VCE_RING2_3', (AMDGPU_VEGA20_DOORBELL64_VCE_RING4_5:=398): 'AMDGPU_VEGA20_DOORBELL64_VCE_RING4_5', (AMDGPU_VEGA20_DOORBELL64_VCE_RING6_7:=399): 'AMDGPU_VEGA20_DOORBELL64_VCE_RING6_7', (AMDGPU_VEGA20_DOORBELL64_FIRST_NON_CP:=256): 'AMDGPU_VEGA20_DOORBELL64_FIRST_NON_CP', (AMDGPU_VEGA20_DOORBELL64_LAST_NON_CP:=399): 'AMDGPU_VEGA20_DOORBELL64_LAST_NON_CP', (AMDGPU_VEGA20_DOORBELL_XCC1_KIQ_START:=400): 'AMDGPU_VEGA20_DOORBELL_XCC1_KIQ_START', (AMDGPU_VEGA20_DOORBELL_XCC1_MEC_RING0_START:=407): 'AMDGPU_VEGA20_DOORBELL_XCC1_MEC_RING0_START', (AMDGPU_VEGA20_DOORBELL_AID1_sDMA_START:=464): 'AMDGPU_VEGA20_DOORBELL_AID1_sDMA_START', (AMDGPU_VEGA20_DOORBELL_MAX_ASSIGNMENT:=503): 'AMDGPU_VEGA20_DOORBELL_MAX_ASSIGNMENT', (AMDGPU_VEGA20_DOORBELL_INVALID:=65535): 'AMDGPU_VEGA20_DOORBELL_INVALID'}
enum_AMDGPU_NAVI10_DOORBELL_ASSIGNMENT: dict[int, str] = {(AMDGPU_NAVI10_DOORBELL_KIQ:=0): 'AMDGPU_NAVI10_DOORBELL_KIQ', (AMDGPU_NAVI10_DOORBELL_HIQ:=1): 'AMDGPU_NAVI10_DOORBELL_HIQ', (AMDGPU_NAVI10_DOORBELL_DIQ:=2): 'AMDGPU_NAVI10_DOORBELL_DIQ', (AMDGPU_NAVI10_DOORBELL_MEC_RING0:=3): 'AMDGPU_NAVI10_DOORBELL_MEC_RING0', (AMDGPU_NAVI10_DOORBELL_MEC_RING1:=4): 'AMDGPU_NAVI10_DOORBELL_MEC_RING1', (AMDGPU_NAVI10_DOORBELL_MEC_RING2:=5): 'AMDGPU_NAVI10_DOORBELL_MEC_RING2', (AMDGPU_NAVI10_DOORBELL_MEC_RING3:=6): 'AMDGPU_NAVI10_DOORBELL_MEC_RING3', (AMDGPU_NAVI10_DOORBELL_MEC_RING4:=7): 'AMDGPU_NAVI10_DOORBELL_MEC_RING4', (AMDGPU_NAVI10_DOORBELL_MEC_RING5:=8): 'AMDGPU_NAVI10_DOORBELL_MEC_RING5', (AMDGPU_NAVI10_DOORBELL_MEC_RING6:=9): 'AMDGPU_NAVI10_DOORBELL_MEC_RING6', (AMDGPU_NAVI10_DOORBELL_MEC_RING7:=10): 'AMDGPU_NAVI10_DOORBELL_MEC_RING7', (AMDGPU_NAVI10_DOORBELL_MES_RING0:=11): 'AMDGPU_NAVI10_DOORBELL_MES_RING0', (AMDGPU_NAVI10_DOORBELL_MES_RING1:=12): 'AMDGPU_NAVI10_DOORBELL_MES_RING1', (AMDGPU_NAVI10_DOORBELL_USERQUEUE_START:=13): 'AMDGPU_NAVI10_DOORBELL_USERQUEUE_START', (AMDGPU_NAVI10_DOORBELL_USERQUEUE_END:=138): 'AMDGPU_NAVI10_DOORBELL_USERQUEUE_END', (AMDGPU_NAVI10_DOORBELL_GFX_RING0:=139): 'AMDGPU_NAVI10_DOORBELL_GFX_RING0', (AMDGPU_NAVI10_DOORBELL_GFX_RING1:=140): 'AMDGPU_NAVI10_DOORBELL_GFX_RING1', (AMDGPU_NAVI10_DOORBELL_GFX_USERQUEUE_START:=141): 'AMDGPU_NAVI10_DOORBELL_GFX_USERQUEUE_START', (AMDGPU_NAVI10_DOORBELL_GFX_USERQUEUE_END:=255): 'AMDGPU_NAVI10_DOORBELL_GFX_USERQUEUE_END', (AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE0:=256): 'AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE0', (AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE1:=266): 'AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE1', (AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE2:=276): 'AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE2', (AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE3:=286): 'AMDGPU_NAVI10_DOORBELL_sDMA_ENGINE3', (AMDGPU_NAVI10_DOORBELL_IH:=376): 'AMDGPU_NAVI10_DOORBELL_IH', (AMDGPU_NAVI10_DOORBELL64_VCN0_1:=392): 'AMDGPU_NAVI10_DOORBELL64_VCN0_1', (AMDGPU_NAVI10_DOORBELL64_VCN2_3:=393): 'AMDGPU_NAVI10_DOORBELL64_VCN2_3', (AMDGPU_NAVI10_DOORBELL64_VCN4_5:=394): 'AMDGPU_NAVI10_DOORBELL64_VCN4_5', (AMDGPU_NAVI10_DOORBELL64_VCN6_7:=395): 'AMDGPU_NAVI10_DOORBELL64_VCN6_7', (AMDGPU_NAVI10_DOORBELL64_VCN8_9:=396): 'AMDGPU_NAVI10_DOORBELL64_VCN8_9', (AMDGPU_NAVI10_DOORBELL64_VCNa_b:=397): 'AMDGPU_NAVI10_DOORBELL64_VCNa_b', (AMDGPU_NAVI10_DOORBELL64_VCNc_d:=398): 'AMDGPU_NAVI10_DOORBELL64_VCNc_d', (AMDGPU_NAVI10_DOORBELL64_VCNe_f:=399): 'AMDGPU_NAVI10_DOORBELL64_VCNe_f', (AMDGPU_NAVI10_DOORBELL64_VPE:=400): 'AMDGPU_NAVI10_DOORBELL64_VPE', (AMDGPU_NAVI10_DOORBELL64_FIRST_NON_CP:=256): 'AMDGPU_NAVI10_DOORBELL64_FIRST_NON_CP', (AMDGPU_NAVI10_DOORBELL64_LAST_NON_CP:=400): 'AMDGPU_NAVI10_DOORBELL64_LAST_NON_CP', (AMDGPU_NAVI10_DOORBELL_MAX_ASSIGNMENT:=400): 'AMDGPU_NAVI10_DOORBELL_MAX_ASSIGNMENT', (AMDGPU_NAVI10_DOORBELL_INVALID:=65535): 'AMDGPU_NAVI10_DOORBELL_INVALID'}
enum_AMDGPU_DOORBELL64_ASSIGNMENT: dict[int, str] = {(AMDGPU_DOORBELL64_KIQ:=0): 'AMDGPU_DOORBELL64_KIQ', (AMDGPU_DOORBELL64_HIQ:=1): 'AMDGPU_DOORBELL64_HIQ', (AMDGPU_DOORBELL64_DIQ:=2): 'AMDGPU_DOORBELL64_DIQ', (AMDGPU_DOORBELL64_MEC_RING0:=3): 'AMDGPU_DOORBELL64_MEC_RING0', (AMDGPU_DOORBELL64_MEC_RING1:=4): 'AMDGPU_DOORBELL64_MEC_RING1', (AMDGPU_DOORBELL64_MEC_RING2:=5): 'AMDGPU_DOORBELL64_MEC_RING2', (AMDGPU_DOORBELL64_MEC_RING3:=6): 'AMDGPU_DOORBELL64_MEC_RING3', (AMDGPU_DOORBELL64_MEC_RING4:=7): 'AMDGPU_DOORBELL64_MEC_RING4', (AMDGPU_DOORBELL64_MEC_RING5:=8): 'AMDGPU_DOORBELL64_MEC_RING5', (AMDGPU_DOORBELL64_MEC_RING6:=9): 'AMDGPU_DOORBELL64_MEC_RING6', (AMDGPU_DOORBELL64_MEC_RING7:=10): 'AMDGPU_DOORBELL64_MEC_RING7', (AMDGPU_DOORBELL64_USERQUEUE_START:=11): 'AMDGPU_DOORBELL64_USERQUEUE_START', (AMDGPU_DOORBELL64_USERQUEUE_END:=138): 'AMDGPU_DOORBELL64_USERQUEUE_END', (AMDGPU_DOORBELL64_GFX_RING0:=139): 'AMDGPU_DOORBELL64_GFX_RING0', (AMDGPU_DOORBELL64_sDMA_ENGINE0:=240): 'AMDGPU_DOORBELL64_sDMA_ENGINE0', (AMDGPU_DOORBELL64_sDMA_HI_PRI_ENGINE0:=241): 'AMDGPU_DOORBELL64_sDMA_HI_PRI_ENGINE0', (AMDGPU_DOORBELL64_sDMA_ENGINE1:=242): 'AMDGPU_DOORBELL64_sDMA_ENGINE1', (AMDGPU_DOORBELL64_sDMA_HI_PRI_ENGINE1:=243): 'AMDGPU_DOORBELL64_sDMA_HI_PRI_ENGINE1', (AMDGPU_DOORBELL64_IH:=244): 'AMDGPU_DOORBELL64_IH', (AMDGPU_DOORBELL64_IH_RING1:=245): 'AMDGPU_DOORBELL64_IH_RING1', (AMDGPU_DOORBELL64_IH_RING2:=246): 'AMDGPU_DOORBELL64_IH_RING2', (AMDGPU_DOORBELL64_VCN0_1:=248): 'AMDGPU_DOORBELL64_VCN0_1', (AMDGPU_DOORBELL64_VCN2_3:=249): 'AMDGPU_DOORBELL64_VCN2_3', (AMDGPU_DOORBELL64_VCN4_5:=250): 'AMDGPU_DOORBELL64_VCN4_5', (AMDGPU_DOORBELL64_VCN6_7:=251): 'AMDGPU_DOORBELL64_VCN6_7', (AMDGPU_DOORBELL64_UVD_RING0_1:=248): 'AMDGPU_DOORBELL64_UVD_RING0_1', (AMDGPU_DOORBELL64_UVD_RING2_3:=249): 'AMDGPU_DOORBELL64_UVD_RING2_3', (AMDGPU_DOORBELL64_UVD_RING4_5:=250): 'AMDGPU_DOORBELL64_UVD_RING4_5', (AMDGPU_DOORBELL64_UVD_RING6_7:=251): 'AMDGPU_DOORBELL64_UVD_RING6_7', (AMDGPU_DOORBELL64_VCE_RING0_1:=252): 'AMDGPU_DOORBELL64_VCE_RING0_1', (AMDGPU_DOORBELL64_VCE_RING2_3:=253): 'AMDGPU_DOORBELL64_VCE_RING2_3', (AMDGPU_DOORBELL64_VCE_RING4_5:=254): 'AMDGPU_DOORBELL64_VCE_RING4_5', (AMDGPU_DOORBELL64_VCE_RING6_7:=255): 'AMDGPU_DOORBELL64_VCE_RING6_7', (AMDGPU_DOORBELL64_FIRST_NON_CP:=240): 'AMDGPU_DOORBELL64_FIRST_NON_CP', (AMDGPU_DOORBELL64_LAST_NON_CP:=255): 'AMDGPU_DOORBELL64_LAST_NON_CP', (AMDGPU_DOORBELL64_MAX_ASSIGNMENT:=255): 'AMDGPU_DOORBELL64_MAX_ASSIGNMENT', (AMDGPU_DOORBELL64_INVALID:=65535): 'AMDGPU_DOORBELL64_INVALID'}
enum_AMDGPU_DOORBELL_ASSIGNMENT_LAYOUT1: dict[int, str] = {(AMDGPU_DOORBELL_LAYOUT1_KIQ_START:=0): 'AMDGPU_DOORBELL_LAYOUT1_KIQ_START', (AMDGPU_DOORBELL_LAYOUT1_HIQ:=1): 'AMDGPU_DOORBELL_LAYOUT1_HIQ', (AMDGPU_DOORBELL_LAYOUT1_DIQ:=2): 'AMDGPU_DOORBELL_LAYOUT1_DIQ', (AMDGPU_DOORBELL_LAYOUT1_MEC_RING_START:=8): 'AMDGPU_DOORBELL_LAYOUT1_MEC_RING_START', (AMDGPU_DOORBELL_LAYOUT1_MEC_RING_END:=15): 'AMDGPU_DOORBELL_LAYOUT1_MEC_RING_END', (AMDGPU_DOORBELL_LAYOUT1_USERQUEUE_START:=16): 'AMDGPU_DOORBELL_LAYOUT1_USERQUEUE_START', (AMDGPU_DOORBELL_LAYOUT1_USERQUEUE_END:=31): 'AMDGPU_DOORBELL_LAYOUT1_USERQUEUE_END', (AMDGPU_DOORBELL_LAYOUT1_XCC_RANGE:=32): 'AMDGPU_DOORBELL_LAYOUT1_XCC_RANGE', (AMDGPU_DOORBELL_LAYOUT1_sDMA_ENGINE_START:=256): 'AMDGPU_DOORBELL_LAYOUT1_sDMA_ENGINE_START', (AMDGPU_DOORBELL_LAYOUT1_sDMA_ENGINE_END:=415): 'AMDGPU_DOORBELL_LAYOUT1_sDMA_ENGINE_END', (AMDGPU_DOORBELL_LAYOUT1_IH:=416): 'AMDGPU_DOORBELL_LAYOUT1_IH', (AMDGPU_DOORBELL_LAYOUT1_VCN_START:=432): 'AMDGPU_DOORBELL_LAYOUT1_VCN_START', (AMDGPU_DOORBELL_LAYOUT1_VCN_END:=488): 'AMDGPU_DOORBELL_LAYOUT1_VCN_END', (AMDGPU_DOORBELL_LAYOUT1_FIRST_NON_CP:=256): 'AMDGPU_DOORBELL_LAYOUT1_FIRST_NON_CP', (AMDGPU_DOORBELL_LAYOUT1_LAST_NON_CP:=488): 'AMDGPU_DOORBELL_LAYOUT1_LAST_NON_CP', (AMDGPU_DOORBELL_LAYOUT1_MAX_ASSIGNMENT:=488): 'AMDGPU_DOORBELL_LAYOUT1_MAX_ASSIGNMENT', (AMDGPU_DOORBELL_LAYOUT1_INVALID:=65535): 'AMDGPU_DOORBELL_LAYOUT1_INVALID'}
@c.record
class struct_v9_sdma_mqd(c.Struct):
  SIZE = 512
  sdmax_rlcx_rb_cntl: int
  sdmax_rlcx_rb_base: int
  sdmax_rlcx_rb_base_hi: int
  sdmax_rlcx_rb_rptr: int
  sdmax_rlcx_rb_rptr_hi: int
  sdmax_rlcx_rb_wptr: int
  sdmax_rlcx_rb_wptr_hi: int
  sdmax_rlcx_rb_wptr_poll_cntl: int
  sdmax_rlcx_rb_rptr_addr_hi: int
  sdmax_rlcx_rb_rptr_addr_lo: int
  sdmax_rlcx_ib_cntl: int
  sdmax_rlcx_ib_rptr: int
  sdmax_rlcx_ib_offset: int
  sdmax_rlcx_ib_base_lo: int
  sdmax_rlcx_ib_base_hi: int
  sdmax_rlcx_ib_size: int
  sdmax_rlcx_skip_cntl: int
  sdmax_rlcx_context_status: int
  sdmax_rlcx_doorbell: int
  sdmax_rlcx_status: int
  sdmax_rlcx_doorbell_log: int
  sdmax_rlcx_watermark: int
  sdmax_rlcx_doorbell_offset: int
  sdmax_rlcx_csa_addr_lo: int
  sdmax_rlcx_csa_addr_hi: int
  sdmax_rlcx_ib_sub_remain: int
  sdmax_rlcx_preempt: int
  sdmax_rlcx_dummy_reg: int
  sdmax_rlcx_rb_wptr_poll_addr_hi: int
  sdmax_rlcx_rb_wptr_poll_addr_lo: int
  sdmax_rlcx_rb_aql_cntl: int
  sdmax_rlcx_minor_ptr_update: int
  sdmax_rlcx_midcmd_data0: int
  sdmax_rlcx_midcmd_data1: int
  sdmax_rlcx_midcmd_data2: int
  sdmax_rlcx_midcmd_data3: int
  sdmax_rlcx_midcmd_data4: int
  sdmax_rlcx_midcmd_data5: int
  sdmax_rlcx_midcmd_data6: int
  sdmax_rlcx_midcmd_data7: int
  sdmax_rlcx_midcmd_data8: int
  sdmax_rlcx_midcmd_cntl: int
  reserved_42: int
  reserved_43: int
  reserved_44: int
  reserved_45: int
  reserved_46: int
  reserved_47: int
  reserved_48: int
  reserved_49: int
  reserved_50: int
  reserved_51: int
  reserved_52: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  reserved_59: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  reserved_65: int
  reserved_66: int
  reserved_67: int
  reserved_68: int
  reserved_69: int
  reserved_70: int
  reserved_71: int
  reserved_72: int
  reserved_73: int
  reserved_74: int
  reserved_75: int
  reserved_76: int
  reserved_77: int
  reserved_78: int
  reserved_79: int
  reserved_80: int
  reserved_81: int
  reserved_82: int
  reserved_83: int
  reserved_84: int
  reserved_85: int
  reserved_86: int
  reserved_87: int
  reserved_88: int
  reserved_89: int
  reserved_90: int
  reserved_91: int
  reserved_92: int
  reserved_93: int
  reserved_94: int
  reserved_95: int
  reserved_96: int
  reserved_97: int
  reserved_98: int
  reserved_99: int
  reserved_100: int
  reserved_101: int
  reserved_102: int
  reserved_103: int
  reserved_104: int
  reserved_105: int
  reserved_106: int
  reserved_107: int
  reserved_108: int
  reserved_109: int
  reserved_110: int
  reserved_111: int
  reserved_112: int
  reserved_113: int
  reserved_114: int
  reserved_115: int
  reserved_116: int
  reserved_117: int
  reserved_118: int
  reserved_119: int
  reserved_120: int
  reserved_121: int
  reserved_122: int
  reserved_123: int
  reserved_124: int
  reserved_125: int
  sdma_engine_id: int
  sdma_queue_id: int
struct_v9_sdma_mqd.register_fields([('sdmax_rlcx_rb_cntl', uint32_t, 0), ('sdmax_rlcx_rb_base', uint32_t, 4), ('sdmax_rlcx_rb_base_hi', uint32_t, 8), ('sdmax_rlcx_rb_rptr', uint32_t, 12), ('sdmax_rlcx_rb_rptr_hi', uint32_t, 16), ('sdmax_rlcx_rb_wptr', uint32_t, 20), ('sdmax_rlcx_rb_wptr_hi', uint32_t, 24), ('sdmax_rlcx_rb_wptr_poll_cntl', uint32_t, 28), ('sdmax_rlcx_rb_rptr_addr_hi', uint32_t, 32), ('sdmax_rlcx_rb_rptr_addr_lo', uint32_t, 36), ('sdmax_rlcx_ib_cntl', uint32_t, 40), ('sdmax_rlcx_ib_rptr', uint32_t, 44), ('sdmax_rlcx_ib_offset', uint32_t, 48), ('sdmax_rlcx_ib_base_lo', uint32_t, 52), ('sdmax_rlcx_ib_base_hi', uint32_t, 56), ('sdmax_rlcx_ib_size', uint32_t, 60), ('sdmax_rlcx_skip_cntl', uint32_t, 64), ('sdmax_rlcx_context_status', uint32_t, 68), ('sdmax_rlcx_doorbell', uint32_t, 72), ('sdmax_rlcx_status', uint32_t, 76), ('sdmax_rlcx_doorbell_log', uint32_t, 80), ('sdmax_rlcx_watermark', uint32_t, 84), ('sdmax_rlcx_doorbell_offset', uint32_t, 88), ('sdmax_rlcx_csa_addr_lo', uint32_t, 92), ('sdmax_rlcx_csa_addr_hi', uint32_t, 96), ('sdmax_rlcx_ib_sub_remain', uint32_t, 100), ('sdmax_rlcx_preempt', uint32_t, 104), ('sdmax_rlcx_dummy_reg', uint32_t, 108), ('sdmax_rlcx_rb_wptr_poll_addr_hi', uint32_t, 112), ('sdmax_rlcx_rb_wptr_poll_addr_lo', uint32_t, 116), ('sdmax_rlcx_rb_aql_cntl', uint32_t, 120), ('sdmax_rlcx_minor_ptr_update', uint32_t, 124), ('sdmax_rlcx_midcmd_data0', uint32_t, 128), ('sdmax_rlcx_midcmd_data1', uint32_t, 132), ('sdmax_rlcx_midcmd_data2', uint32_t, 136), ('sdmax_rlcx_midcmd_data3', uint32_t, 140), ('sdmax_rlcx_midcmd_data4', uint32_t, 144), ('sdmax_rlcx_midcmd_data5', uint32_t, 148), ('sdmax_rlcx_midcmd_data6', uint32_t, 152), ('sdmax_rlcx_midcmd_data7', uint32_t, 156), ('sdmax_rlcx_midcmd_data8', uint32_t, 160), ('sdmax_rlcx_midcmd_cntl', uint32_t, 164), ('reserved_42', uint32_t, 168), ('reserved_43', uint32_t, 172), ('reserved_44', uint32_t, 176), ('reserved_45', uint32_t, 180), ('reserved_46', uint32_t, 184), ('reserved_47', uint32_t, 188), ('reserved_48', uint32_t, 192), ('reserved_49', uint32_t, 196), ('reserved_50', uint32_t, 200), ('reserved_51', uint32_t, 204), ('reserved_52', uint32_t, 208), ('reserved_53', uint32_t, 212), ('reserved_54', uint32_t, 216), ('reserved_55', uint32_t, 220), ('reserved_56', uint32_t, 224), ('reserved_57', uint32_t, 228), ('reserved_58', uint32_t, 232), ('reserved_59', uint32_t, 236), ('reserved_60', uint32_t, 240), ('reserved_61', uint32_t, 244), ('reserved_62', uint32_t, 248), ('reserved_63', uint32_t, 252), ('reserved_64', uint32_t, 256), ('reserved_65', uint32_t, 260), ('reserved_66', uint32_t, 264), ('reserved_67', uint32_t, 268), ('reserved_68', uint32_t, 272), ('reserved_69', uint32_t, 276), ('reserved_70', uint32_t, 280), ('reserved_71', uint32_t, 284), ('reserved_72', uint32_t, 288), ('reserved_73', uint32_t, 292), ('reserved_74', uint32_t, 296), ('reserved_75', uint32_t, 300), ('reserved_76', uint32_t, 304), ('reserved_77', uint32_t, 308), ('reserved_78', uint32_t, 312), ('reserved_79', uint32_t, 316), ('reserved_80', uint32_t, 320), ('reserved_81', uint32_t, 324), ('reserved_82', uint32_t, 328), ('reserved_83', uint32_t, 332), ('reserved_84', uint32_t, 336), ('reserved_85', uint32_t, 340), ('reserved_86', uint32_t, 344), ('reserved_87', uint32_t, 348), ('reserved_88', uint32_t, 352), ('reserved_89', uint32_t, 356), ('reserved_90', uint32_t, 360), ('reserved_91', uint32_t, 364), ('reserved_92', uint32_t, 368), ('reserved_93', uint32_t, 372), ('reserved_94', uint32_t, 376), ('reserved_95', uint32_t, 380), ('reserved_96', uint32_t, 384), ('reserved_97', uint32_t, 388), ('reserved_98', uint32_t, 392), ('reserved_99', uint32_t, 396), ('reserved_100', uint32_t, 400), ('reserved_101', uint32_t, 404), ('reserved_102', uint32_t, 408), ('reserved_103', uint32_t, 412), ('reserved_104', uint32_t, 416), ('reserved_105', uint32_t, 420), ('reserved_106', uint32_t, 424), ('reserved_107', uint32_t, 428), ('reserved_108', uint32_t, 432), ('reserved_109', uint32_t, 436), ('reserved_110', uint32_t, 440), ('reserved_111', uint32_t, 444), ('reserved_112', uint32_t, 448), ('reserved_113', uint32_t, 452), ('reserved_114', uint32_t, 456), ('reserved_115', uint32_t, 460), ('reserved_116', uint32_t, 464), ('reserved_117', uint32_t, 468), ('reserved_118', uint32_t, 472), ('reserved_119', uint32_t, 476), ('reserved_120', uint32_t, 480), ('reserved_121', uint32_t, 484), ('reserved_122', uint32_t, 488), ('reserved_123', uint32_t, 492), ('reserved_124', uint32_t, 496), ('reserved_125', uint32_t, 500), ('sdma_engine_id', uint32_t, 504), ('sdma_queue_id', uint32_t, 508)])
@c.record
class struct_v9_mqd(c.Struct):
  SIZE = 2048
  header: int
  compute_dispatch_initiator: int
  compute_dim_x: int
  compute_dim_y: int
  compute_dim_z: int
  compute_start_x: int
  compute_start_y: int
  compute_start_z: int
  compute_num_thread_x: int
  compute_num_thread_y: int
  compute_num_thread_z: int
  compute_pipelinestat_enable: int
  compute_perfcount_enable: int
  compute_pgm_lo: int
  compute_pgm_hi: int
  compute_tba_lo: int
  compute_tba_hi: int
  compute_tma_lo: int
  compute_tma_hi: int
  compute_pgm_rsrc1: int
  compute_pgm_rsrc2: int
  compute_vmid: int
  compute_resource_limits: int
  compute_static_thread_mgmt_se0: int
  compute_static_thread_mgmt_se1: int
  compute_tmpring_size: int
  compute_static_thread_mgmt_se2: int
  compute_static_thread_mgmt_se3: int
  compute_restart_x: int
  compute_restart_y: int
  compute_restart_z: int
  compute_thread_trace_enable: int
  compute_misc_reserved: int
  compute_dispatch_id: int
  compute_threadgroup_id: int
  compute_relaunch: int
  compute_wave_restore_addr_lo: int
  compute_wave_restore_addr_hi: int
  compute_wave_restore_control: int
  compute_static_thread_mgmt_se4: int
  compute_static_thread_mgmt_se5: int
  compute_static_thread_mgmt_se6: int
  compute_static_thread_mgmt_se7: int
  compute_current_logic_xcc_id: int
  compute_restart_cg_tg_id: int
  compute_tg_chunk_size: int
  compute_restore_tg_chunk_size: int
  reserved_43: int
  reserved_44: int
  reserved_45: int
  reserved_46: int
  reserved_47: int
  reserved_48: int
  reserved_49: int
  reserved_50: int
  reserved_51: int
  reserved_52: int
  reserved_53: int
  reserved_54: int
  reserved_55: int
  reserved_56: int
  reserved_57: int
  reserved_58: int
  reserved_59: int
  reserved_60: int
  reserved_61: int
  reserved_62: int
  reserved_63: int
  reserved_64: int
  compute_user_data_0: int
  compute_user_data_1: int
  compute_user_data_2: int
  compute_user_data_3: int
  compute_user_data_4: int
  compute_user_data_5: int
  compute_user_data_6: int
  compute_user_data_7: int
  compute_user_data_8: int
  compute_user_data_9: int
  compute_user_data_10: int
  compute_user_data_11: int
  compute_user_data_12: int
  compute_user_data_13: int
  compute_user_data_14: int
  compute_user_data_15: int
  cp_compute_csinvoc_count_lo: int
  cp_compute_csinvoc_count_hi: int
  reserved_83: int
  reserved_84: int
  reserved_85: int
  cp_mqd_query_time_lo: int
  cp_mqd_query_time_hi: int
  cp_mqd_connect_start_time_lo: int
  cp_mqd_connect_start_time_hi: int
  cp_mqd_connect_end_time_lo: int
  cp_mqd_connect_end_time_hi: int
  cp_mqd_connect_end_wf_count: int
  cp_mqd_connect_end_pq_rptr: int
  cp_mqd_connect_end_pq_wptr: int
  cp_mqd_connect_end_ib_rptr: int
  cp_mqd_readindex_lo: int
  cp_mqd_readindex_hi: int
  cp_mqd_save_start_time_lo: int
  cp_mqd_save_start_time_hi: int
  cp_mqd_save_end_time_lo: int
  cp_mqd_save_end_time_hi: int
  cp_mqd_restore_start_time_lo: int
  cp_mqd_restore_start_time_hi: int
  cp_mqd_restore_end_time_lo: int
  cp_mqd_restore_end_time_hi: int
  disable_queue: int
  reserved_107: int
  gds_cs_ctxsw_cnt0: int
  gds_cs_ctxsw_cnt1: int
  gds_cs_ctxsw_cnt2: int
  gds_cs_ctxsw_cnt3: int
  reserved_112: int
  reserved_113: int
  cp_pq_exe_status_lo: int
  cp_pq_exe_status_hi: int
  cp_packet_id_lo: int
  cp_packet_id_hi: int
  cp_packet_exe_status_lo: int
  cp_packet_exe_status_hi: int
  gds_save_base_addr_lo: int
  gds_save_base_addr_hi: int
  gds_save_mask_lo: int
  gds_save_mask_hi: int
  ctx_save_base_addr_lo: int
  ctx_save_base_addr_hi: int
  dynamic_cu_mask_addr_lo: int
  dynamic_cu_mask_addr_hi: int
  cp_mqd_base_addr_lo: int
  cp_mqd_base_addr_hi: int
  cp_hqd_active: int
  cp_hqd_vmid: int
  cp_hqd_persistent_state: int
  cp_hqd_pipe_priority: int
  cp_hqd_queue_priority: int
  cp_hqd_quantum: int
  cp_hqd_pq_base_lo: int
  cp_hqd_pq_base_hi: int
  cp_hqd_pq_rptr: int
  cp_hqd_pq_rptr_report_addr_lo: int
  cp_hqd_pq_rptr_report_addr_hi: int
  cp_hqd_pq_wptr_poll_addr_lo: int
  cp_hqd_pq_wptr_poll_addr_hi: int
  cp_hqd_pq_doorbell_control: int
  reserved_144: int
  cp_hqd_pq_control: int
  cp_hqd_ib_base_addr_lo: int
  cp_hqd_ib_base_addr_hi: int
  cp_hqd_ib_rptr: int
  cp_hqd_ib_control: int
  cp_hqd_iq_timer: int
  cp_hqd_iq_rptr: int
  cp_hqd_dequeue_request: int
  cp_hqd_dma_offload: int
  cp_hqd_sema_cmd: int
  cp_hqd_msg_type: int
  cp_hqd_atomic0_preop_lo: int
  cp_hqd_atomic0_preop_hi: int
  cp_hqd_atomic1_preop_lo: int
  cp_hqd_atomic1_preop_hi: int
  cp_hqd_hq_status0: int
  cp_hqd_hq_control0: int
  cp_mqd_control: int
  cp_hqd_hq_status1: int
  cp_hqd_hq_control1: int
  cp_hqd_eop_base_addr_lo: int
  cp_hqd_eop_base_addr_hi: int
  cp_hqd_eop_control: int
  cp_hqd_eop_rptr: int
  cp_hqd_eop_wptr: int
  cp_hqd_eop_done_events: int
  cp_hqd_ctx_save_base_addr_lo: int
  cp_hqd_ctx_save_base_addr_hi: int
  cp_hqd_ctx_save_control: int
  cp_hqd_cntl_stack_offset: int
  cp_hqd_cntl_stack_size: int
  cp_hqd_wg_state_offset: int
  cp_hqd_ctx_save_size: int
  cp_hqd_gds_resource_state: int
  cp_hqd_error: int
  cp_hqd_eop_wptr_mem: int
  cp_hqd_aql_control: int
  cp_hqd_pq_wptr_lo: int
  cp_hqd_pq_wptr_hi: int
  reserved_184: int
  reserved_185: int
  reserved_186: int
  reserved_187: int
  reserved_188: int
  reserved_189: int
  reserved_190: int
  reserved_191: int
  iqtimer_pkt_header: int
  iqtimer_pkt_dw0: int
  iqtimer_pkt_dw1: int
  iqtimer_pkt_dw2: int
  iqtimer_pkt_dw3: int
  iqtimer_pkt_dw4: int
  iqtimer_pkt_dw5: int
  iqtimer_pkt_dw6: int
  iqtimer_pkt_dw7: int
  iqtimer_pkt_dw8: int
  iqtimer_pkt_dw9: int
  iqtimer_pkt_dw10: int
  iqtimer_pkt_dw11: int
  iqtimer_pkt_dw12: int
  iqtimer_pkt_dw13: int
  iqtimer_pkt_dw14: int
  iqtimer_pkt_dw15: int
  iqtimer_pkt_dw16: int
  iqtimer_pkt_dw17: int
  iqtimer_pkt_dw18: int
  iqtimer_pkt_dw19: int
  iqtimer_pkt_dw20: int
  iqtimer_pkt_dw21: int
  iqtimer_pkt_dw22: int
  iqtimer_pkt_dw23: int
  iqtimer_pkt_dw24: int
  iqtimer_pkt_dw25: int
  iqtimer_pkt_dw26: int
  iqtimer_pkt_dw27: int
  iqtimer_pkt_dw28: int
  iqtimer_pkt_dw29: int
  iqtimer_pkt_dw30: int
  iqtimer_pkt_dw31: int
  reserved_225: int
  reserved_226: int
  pm4_target_xcc_in_xcp: int
  cp_mqd_stride_size: int
  reserved_227: int
  set_resources_header: int
  set_resources_dw1: int
  set_resources_dw2: int
  set_resources_dw3: int
  set_resources_dw4: int
  set_resources_dw5: int
  set_resources_dw6: int
  set_resources_dw7: int
  reserved_236: int
  reserved_237: int
  reserved_238: int
  reserved_239: int
  queue_doorbell_id0: int
  queue_doorbell_id1: int
  queue_doorbell_id2: int
  queue_doorbell_id3: int
  queue_doorbell_id4: int
  queue_doorbell_id5: int
  queue_doorbell_id6: int
  queue_doorbell_id7: int
  queue_doorbell_id8: int
  queue_doorbell_id9: int
  queue_doorbell_id10: int
  queue_doorbell_id11: int
  queue_doorbell_id12: int
  queue_doorbell_id13: int
  queue_doorbell_id14: int
  queue_doorbell_id15: int
  reserved_256: int
  reserved_257: int
  reserved_258: int
  reserved_259: int
  reserved_260: int
  reserved_261: int
  reserved_262: int
  reserved_263: int
  reserved_264: int
  reserved_265: int
  reserved_266: int
  reserved_267: int
  reserved_268: int
  reserved_269: int
  reserved_270: int
  reserved_271: int
  reserved_272: int
  reserved_273: int
  reserved_274: int
  reserved_275: int
  reserved_276: int
  reserved_277: int
  reserved_278: int
  reserved_279: int
  reserved_280: int
  reserved_281: int
  reserved_282: int
  reserved_283: int
  reserved_284: int
  reserved_285: int
  reserved_286: int
  reserved_287: int
  reserved_288: int
  reserved_289: int
  reserved_290: int
  reserved_291: int
  reserved_292: int
  reserved_293: int
  reserved_294: int
  reserved_295: int
  reserved_296: int
  reserved_297: int
  reserved_298: int
  reserved_299: int
  reserved_300: int
  reserved_301: int
  reserved_302: int
  reserved_303: int
  reserved_304: int
  reserved_305: int
  reserved_306: int
  reserved_307: int
  reserved_308: int
  reserved_309: int
  reserved_310: int
  reserved_311: int
  reserved_312: int
  reserved_313: int
  reserved_314: int
  reserved_315: int
  reserved_316: int
  reserved_317: int
  reserved_318: int
  reserved_319: int
  reserved_320: int
  reserved_321: int
  reserved_322: int
  reserved_323: int
  reserved_324: int
  reserved_325: int
  reserved_326: int
  reserved_327: int
  reserved_328: int
  reserved_329: int
  reserved_330: int
  reserved_331: int
  reserved_332: int
  reserved_333: int
  reserved_334: int
  reserved_335: int
  reserved_336: int
  reserved_337: int
  reserved_338: int
  reserved_339: int
  reserved_340: int
  reserved_341: int
  reserved_342: int
  reserved_343: int
  reserved_344: int
  reserved_345: int
  reserved_346: int
  reserved_347: int
  reserved_348: int
  reserved_349: int
  reserved_350: int
  reserved_351: int
  reserved_352: int
  reserved_353: int
  reserved_354: int
  reserved_355: int
  reserved_356: int
  reserved_357: int
  reserved_358: int
  reserved_359: int
  reserved_360: int
  reserved_361: int
  reserved_362: int
  reserved_363: int
  reserved_364: int
  reserved_365: int
  reserved_366: int
  reserved_367: int
  reserved_368: int
  reserved_369: int
  reserved_370: int
  reserved_371: int
  reserved_372: int
  reserved_373: int
  reserved_374: int
  reserved_375: int
  reserved_376: int
  reserved_377: int
  reserved_378: int
  reserved_379: int
  reserved_380: int
  reserved_381: int
  reserved_382: int
  reserved_383: int
  reserved_384: int
  reserved_385: int
  reserved_386: int
  reserved_387: int
  reserved_388: int
  reserved_389: int
  reserved_390: int
  reserved_391: int
  reserved_392: int
  reserved_393: int
  reserved_394: int
  reserved_395: int
  reserved_396: int
  reserved_397: int
  reserved_398: int
  reserved_399: int
  reserved_400: int
  reserved_401: int
  reserved_402: int
  reserved_403: int
  reserved_404: int
  reserved_405: int
  reserved_406: int
  reserved_407: int
  reserved_408: int
  reserved_409: int
  reserved_410: int
  reserved_411: int
  reserved_412: int
  reserved_413: int
  reserved_414: int
  reserved_415: int
  reserved_416: int
  reserved_417: int
  reserved_418: int
  reserved_419: int
  reserved_420: int
  reserved_421: int
  reserved_422: int
  reserved_423: int
  reserved_424: int
  reserved_425: int
  reserved_426: int
  reserved_427: int
  reserved_428: int
  reserved_429: int
  reserved_430: int
  reserved_431: int
  reserved_432: int
  reserved_433: int
  reserved_434: int
  reserved_435: int
  reserved_436: int
  reserved_437: int
  reserved_438: int
  reserved_439: int
  reserved_440: int
  reserved_441: int
  reserved_442: int
  reserved_443: int
  reserved_444: int
  reserved_445: int
  reserved_446: int
  reserved_447: int
  reserved_448: int
  reserved_449: int
  reserved_450: int
  reserved_451: int
  reserved_452: int
  reserved_453: int
  reserved_454: int
  reserved_455: int
  reserved_456: int
  reserved_457: int
  reserved_458: int
  reserved_459: int
  reserved_460: int
  reserved_461: int
  reserved_462: int
  reserved_463: int
  reserved_464: int
  reserved_465: int
  reserved_466: int
  reserved_467: int
  reserved_468: int
  reserved_469: int
  reserved_470: int
  reserved_471: int
  reserved_472: int
  reserved_473: int
  reserved_474: int
  reserved_475: int
  reserved_476: int
  reserved_477: int
  reserved_478: int
  reserved_479: int
  reserved_480: int
  reserved_481: int
  reserved_482: int
  reserved_483: int
  reserved_484: int
  reserved_485: int
  reserved_486: int
  reserved_487: int
  reserved_488: int
  reserved_489: int
  reserved_490: int
  reserved_491: int
  reserved_492: int
  reserved_493: int
  reserved_494: int
  reserved_495: int
  reserved_496: int
  reserved_497: int
  reserved_498: int
  reserved_499: int
  reserved_500: int
  reserved_501: int
  reserved_502: int
  reserved_503: int
  reserved_504: int
  reserved_505: int
  reserved_506: int
  reserved_507: int
  reserved_508: int
  reserved_509: int
  reserved_510: int
  reserved_511: int
struct_v9_mqd.register_fields([('header', uint32_t, 0), ('compute_dispatch_initiator', uint32_t, 4), ('compute_dim_x', uint32_t, 8), ('compute_dim_y', uint32_t, 12), ('compute_dim_z', uint32_t, 16), ('compute_start_x', uint32_t, 20), ('compute_start_y', uint32_t, 24), ('compute_start_z', uint32_t, 28), ('compute_num_thread_x', uint32_t, 32), ('compute_num_thread_y', uint32_t, 36), ('compute_num_thread_z', uint32_t, 40), ('compute_pipelinestat_enable', uint32_t, 44), ('compute_perfcount_enable', uint32_t, 48), ('compute_pgm_lo', uint32_t, 52), ('compute_pgm_hi', uint32_t, 56), ('compute_tba_lo', uint32_t, 60), ('compute_tba_hi', uint32_t, 64), ('compute_tma_lo', uint32_t, 68), ('compute_tma_hi', uint32_t, 72), ('compute_pgm_rsrc1', uint32_t, 76), ('compute_pgm_rsrc2', uint32_t, 80), ('compute_vmid', uint32_t, 84), ('compute_resource_limits', uint32_t, 88), ('compute_static_thread_mgmt_se0', uint32_t, 92), ('compute_static_thread_mgmt_se1', uint32_t, 96), ('compute_tmpring_size', uint32_t, 100), ('compute_static_thread_mgmt_se2', uint32_t, 104), ('compute_static_thread_mgmt_se3', uint32_t, 108), ('compute_restart_x', uint32_t, 112), ('compute_restart_y', uint32_t, 116), ('compute_restart_z', uint32_t, 120), ('compute_thread_trace_enable', uint32_t, 124), ('compute_misc_reserved', uint32_t, 128), ('compute_dispatch_id', uint32_t, 132), ('compute_threadgroup_id', uint32_t, 136), ('compute_relaunch', uint32_t, 140), ('compute_wave_restore_addr_lo', uint32_t, 144), ('compute_wave_restore_addr_hi', uint32_t, 148), ('compute_wave_restore_control', uint32_t, 152), ('compute_static_thread_mgmt_se4', uint32_t, 156), ('compute_static_thread_mgmt_se5', uint32_t, 160), ('compute_static_thread_mgmt_se6', uint32_t, 164), ('compute_static_thread_mgmt_se7', uint32_t, 168), ('compute_current_logic_xcc_id', uint32_t, 156), ('compute_restart_cg_tg_id', uint32_t, 160), ('compute_tg_chunk_size', uint32_t, 164), ('compute_restore_tg_chunk_size', uint32_t, 168), ('reserved_43', uint32_t, 172), ('reserved_44', uint32_t, 176), ('reserved_45', uint32_t, 180), ('reserved_46', uint32_t, 184), ('reserved_47', uint32_t, 188), ('reserved_48', uint32_t, 192), ('reserved_49', uint32_t, 196), ('reserved_50', uint32_t, 200), ('reserved_51', uint32_t, 204), ('reserved_52', uint32_t, 208), ('reserved_53', uint32_t, 212), ('reserved_54', uint32_t, 216), ('reserved_55', uint32_t, 220), ('reserved_56', uint32_t, 224), ('reserved_57', uint32_t, 228), ('reserved_58', uint32_t, 232), ('reserved_59', uint32_t, 236), ('reserved_60', uint32_t, 240), ('reserved_61', uint32_t, 244), ('reserved_62', uint32_t, 248), ('reserved_63', uint32_t, 252), ('reserved_64', uint32_t, 256), ('compute_user_data_0', uint32_t, 260), ('compute_user_data_1', uint32_t, 264), ('compute_user_data_2', uint32_t, 268), ('compute_user_data_3', uint32_t, 272), ('compute_user_data_4', uint32_t, 276), ('compute_user_data_5', uint32_t, 280), ('compute_user_data_6', uint32_t, 284), ('compute_user_data_7', uint32_t, 288), ('compute_user_data_8', uint32_t, 292), ('compute_user_data_9', uint32_t, 296), ('compute_user_data_10', uint32_t, 300), ('compute_user_data_11', uint32_t, 304), ('compute_user_data_12', uint32_t, 308), ('compute_user_data_13', uint32_t, 312), ('compute_user_data_14', uint32_t, 316), ('compute_user_data_15', uint32_t, 320), ('cp_compute_csinvoc_count_lo', uint32_t, 324), ('cp_compute_csinvoc_count_hi', uint32_t, 328), ('reserved_83', uint32_t, 332), ('reserved_84', uint32_t, 336), ('reserved_85', uint32_t, 340), ('cp_mqd_query_time_lo', uint32_t, 344), ('cp_mqd_query_time_hi', uint32_t, 348), ('cp_mqd_connect_start_time_lo', uint32_t, 352), ('cp_mqd_connect_start_time_hi', uint32_t, 356), ('cp_mqd_connect_end_time_lo', uint32_t, 360), ('cp_mqd_connect_end_time_hi', uint32_t, 364), ('cp_mqd_connect_end_wf_count', uint32_t, 368), ('cp_mqd_connect_end_pq_rptr', uint32_t, 372), ('cp_mqd_connect_end_pq_wptr', uint32_t, 376), ('cp_mqd_connect_end_ib_rptr', uint32_t, 380), ('cp_mqd_readindex_lo', uint32_t, 384), ('cp_mqd_readindex_hi', uint32_t, 388), ('cp_mqd_save_start_time_lo', uint32_t, 392), ('cp_mqd_save_start_time_hi', uint32_t, 396), ('cp_mqd_save_end_time_lo', uint32_t, 400), ('cp_mqd_save_end_time_hi', uint32_t, 404), ('cp_mqd_restore_start_time_lo', uint32_t, 408), ('cp_mqd_restore_start_time_hi', uint32_t, 412), ('cp_mqd_restore_end_time_lo', uint32_t, 416), ('cp_mqd_restore_end_time_hi', uint32_t, 420), ('disable_queue', uint32_t, 424), ('reserved_107', uint32_t, 428), ('gds_cs_ctxsw_cnt0', uint32_t, 432), ('gds_cs_ctxsw_cnt1', uint32_t, 436), ('gds_cs_ctxsw_cnt2', uint32_t, 440), ('gds_cs_ctxsw_cnt3', uint32_t, 444), ('reserved_112', uint32_t, 448), ('reserved_113', uint32_t, 452), ('cp_pq_exe_status_lo', uint32_t, 456), ('cp_pq_exe_status_hi', uint32_t, 460), ('cp_packet_id_lo', uint32_t, 464), ('cp_packet_id_hi', uint32_t, 468), ('cp_packet_exe_status_lo', uint32_t, 472), ('cp_packet_exe_status_hi', uint32_t, 476), ('gds_save_base_addr_lo', uint32_t, 480), ('gds_save_base_addr_hi', uint32_t, 484), ('gds_save_mask_lo', uint32_t, 488), ('gds_save_mask_hi', uint32_t, 492), ('ctx_save_base_addr_lo', uint32_t, 496), ('ctx_save_base_addr_hi', uint32_t, 500), ('dynamic_cu_mask_addr_lo', uint32_t, 504), ('dynamic_cu_mask_addr_hi', uint32_t, 508), ('cp_mqd_base_addr_lo', uint32_t, 512), ('cp_mqd_base_addr_hi', uint32_t, 516), ('cp_hqd_active', uint32_t, 520), ('cp_hqd_vmid', uint32_t, 524), ('cp_hqd_persistent_state', uint32_t, 528), ('cp_hqd_pipe_priority', uint32_t, 532), ('cp_hqd_queue_priority', uint32_t, 536), ('cp_hqd_quantum', uint32_t, 540), ('cp_hqd_pq_base_lo', uint32_t, 544), ('cp_hqd_pq_base_hi', uint32_t, 548), ('cp_hqd_pq_rptr', uint32_t, 552), ('cp_hqd_pq_rptr_report_addr_lo', uint32_t, 556), ('cp_hqd_pq_rptr_report_addr_hi', uint32_t, 560), ('cp_hqd_pq_wptr_poll_addr_lo', uint32_t, 564), ('cp_hqd_pq_wptr_poll_addr_hi', uint32_t, 568), ('cp_hqd_pq_doorbell_control', uint32_t, 572), ('reserved_144', uint32_t, 576), ('cp_hqd_pq_control', uint32_t, 580), ('cp_hqd_ib_base_addr_lo', uint32_t, 584), ('cp_hqd_ib_base_addr_hi', uint32_t, 588), ('cp_hqd_ib_rptr', uint32_t, 592), ('cp_hqd_ib_control', uint32_t, 596), ('cp_hqd_iq_timer', uint32_t, 600), ('cp_hqd_iq_rptr', uint32_t, 604), ('cp_hqd_dequeue_request', uint32_t, 608), ('cp_hqd_dma_offload', uint32_t, 612), ('cp_hqd_sema_cmd', uint32_t, 616), ('cp_hqd_msg_type', uint32_t, 620), ('cp_hqd_atomic0_preop_lo', uint32_t, 624), ('cp_hqd_atomic0_preop_hi', uint32_t, 628), ('cp_hqd_atomic1_preop_lo', uint32_t, 632), ('cp_hqd_atomic1_preop_hi', uint32_t, 636), ('cp_hqd_hq_status0', uint32_t, 640), ('cp_hqd_hq_control0', uint32_t, 644), ('cp_mqd_control', uint32_t, 648), ('cp_hqd_hq_status1', uint32_t, 652), ('cp_hqd_hq_control1', uint32_t, 656), ('cp_hqd_eop_base_addr_lo', uint32_t, 660), ('cp_hqd_eop_base_addr_hi', uint32_t, 664), ('cp_hqd_eop_control', uint32_t, 668), ('cp_hqd_eop_rptr', uint32_t, 672), ('cp_hqd_eop_wptr', uint32_t, 676), ('cp_hqd_eop_done_events', uint32_t, 680), ('cp_hqd_ctx_save_base_addr_lo', uint32_t, 684), ('cp_hqd_ctx_save_base_addr_hi', uint32_t, 688), ('cp_hqd_ctx_save_control', uint32_t, 692), ('cp_hqd_cntl_stack_offset', uint32_t, 696), ('cp_hqd_cntl_stack_size', uint32_t, 700), ('cp_hqd_wg_state_offset', uint32_t, 704), ('cp_hqd_ctx_save_size', uint32_t, 708), ('cp_hqd_gds_resource_state', uint32_t, 712), ('cp_hqd_error', uint32_t, 716), ('cp_hqd_eop_wptr_mem', uint32_t, 720), ('cp_hqd_aql_control', uint32_t, 724), ('cp_hqd_pq_wptr_lo', uint32_t, 728), ('cp_hqd_pq_wptr_hi', uint32_t, 732), ('reserved_184', uint32_t, 736), ('reserved_185', uint32_t, 740), ('reserved_186', uint32_t, 744), ('reserved_187', uint32_t, 748), ('reserved_188', uint32_t, 752), ('reserved_189', uint32_t, 756), ('reserved_190', uint32_t, 760), ('reserved_191', uint32_t, 764), ('iqtimer_pkt_header', uint32_t, 768), ('iqtimer_pkt_dw0', uint32_t, 772), ('iqtimer_pkt_dw1', uint32_t, 776), ('iqtimer_pkt_dw2', uint32_t, 780), ('iqtimer_pkt_dw3', uint32_t, 784), ('iqtimer_pkt_dw4', uint32_t, 788), ('iqtimer_pkt_dw5', uint32_t, 792), ('iqtimer_pkt_dw6', uint32_t, 796), ('iqtimer_pkt_dw7', uint32_t, 800), ('iqtimer_pkt_dw8', uint32_t, 804), ('iqtimer_pkt_dw9', uint32_t, 808), ('iqtimer_pkt_dw10', uint32_t, 812), ('iqtimer_pkt_dw11', uint32_t, 816), ('iqtimer_pkt_dw12', uint32_t, 820), ('iqtimer_pkt_dw13', uint32_t, 824), ('iqtimer_pkt_dw14', uint32_t, 828), ('iqtimer_pkt_dw15', uint32_t, 832), ('iqtimer_pkt_dw16', uint32_t, 836), ('iqtimer_pkt_dw17', uint32_t, 840), ('iqtimer_pkt_dw18', uint32_t, 844), ('iqtimer_pkt_dw19', uint32_t, 848), ('iqtimer_pkt_dw20', uint32_t, 852), ('iqtimer_pkt_dw21', uint32_t, 856), ('iqtimer_pkt_dw22', uint32_t, 860), ('iqtimer_pkt_dw23', uint32_t, 864), ('iqtimer_pkt_dw24', uint32_t, 868), ('iqtimer_pkt_dw25', uint32_t, 872), ('iqtimer_pkt_dw26', uint32_t, 876), ('iqtimer_pkt_dw27', uint32_t, 880), ('iqtimer_pkt_dw28', uint32_t, 884), ('iqtimer_pkt_dw29', uint32_t, 888), ('iqtimer_pkt_dw30', uint32_t, 892), ('iqtimer_pkt_dw31', uint32_t, 896), ('reserved_225', uint32_t, 900), ('reserved_226', uint32_t, 904), ('pm4_target_xcc_in_xcp', uint32_t, 900), ('cp_mqd_stride_size', uint32_t, 904), ('reserved_227', uint32_t, 908), ('set_resources_header', uint32_t, 912), ('set_resources_dw1', uint32_t, 916), ('set_resources_dw2', uint32_t, 920), ('set_resources_dw3', uint32_t, 924), ('set_resources_dw4', uint32_t, 928), ('set_resources_dw5', uint32_t, 932), ('set_resources_dw6', uint32_t, 936), ('set_resources_dw7', uint32_t, 940), ('reserved_236', uint32_t, 944), ('reserved_237', uint32_t, 948), ('reserved_238', uint32_t, 952), ('reserved_239', uint32_t, 956), ('queue_doorbell_id0', uint32_t, 960), ('queue_doorbell_id1', uint32_t, 964), ('queue_doorbell_id2', uint32_t, 968), ('queue_doorbell_id3', uint32_t, 972), ('queue_doorbell_id4', uint32_t, 976), ('queue_doorbell_id5', uint32_t, 980), ('queue_doorbell_id6', uint32_t, 984), ('queue_doorbell_id7', uint32_t, 988), ('queue_doorbell_id8', uint32_t, 992), ('queue_doorbell_id9', uint32_t, 996), ('queue_doorbell_id10', uint32_t, 1000), ('queue_doorbell_id11', uint32_t, 1004), ('queue_doorbell_id12', uint32_t, 1008), ('queue_doorbell_id13', uint32_t, 1012), ('queue_doorbell_id14', uint32_t, 1016), ('queue_doorbell_id15', uint32_t, 1020), ('reserved_256', uint32_t, 1024), ('reserved_257', uint32_t, 1028), ('reserved_258', uint32_t, 1032), ('reserved_259', uint32_t, 1036), ('reserved_260', uint32_t, 1040), ('reserved_261', uint32_t, 1044), ('reserved_262', uint32_t, 1048), ('reserved_263', uint32_t, 1052), ('reserved_264', uint32_t, 1056), ('reserved_265', uint32_t, 1060), ('reserved_266', uint32_t, 1064), ('reserved_267', uint32_t, 1068), ('reserved_268', uint32_t, 1072), ('reserved_269', uint32_t, 1076), ('reserved_270', uint32_t, 1080), ('reserved_271', uint32_t, 1084), ('reserved_272', uint32_t, 1088), ('reserved_273', uint32_t, 1092), ('reserved_274', uint32_t, 1096), ('reserved_275', uint32_t, 1100), ('reserved_276', uint32_t, 1104), ('reserved_277', uint32_t, 1108), ('reserved_278', uint32_t, 1112), ('reserved_279', uint32_t, 1116), ('reserved_280', uint32_t, 1120), ('reserved_281', uint32_t, 1124), ('reserved_282', uint32_t, 1128), ('reserved_283', uint32_t, 1132), ('reserved_284', uint32_t, 1136), ('reserved_285', uint32_t, 1140), ('reserved_286', uint32_t, 1144), ('reserved_287', uint32_t, 1148), ('reserved_288', uint32_t, 1152), ('reserved_289', uint32_t, 1156), ('reserved_290', uint32_t, 1160), ('reserved_291', uint32_t, 1164), ('reserved_292', uint32_t, 1168), ('reserved_293', uint32_t, 1172), ('reserved_294', uint32_t, 1176), ('reserved_295', uint32_t, 1180), ('reserved_296', uint32_t, 1184), ('reserved_297', uint32_t, 1188), ('reserved_298', uint32_t, 1192), ('reserved_299', uint32_t, 1196), ('reserved_300', uint32_t, 1200), ('reserved_301', uint32_t, 1204), ('reserved_302', uint32_t, 1208), ('reserved_303', uint32_t, 1212), ('reserved_304', uint32_t, 1216), ('reserved_305', uint32_t, 1220), ('reserved_306', uint32_t, 1224), ('reserved_307', uint32_t, 1228), ('reserved_308', uint32_t, 1232), ('reserved_309', uint32_t, 1236), ('reserved_310', uint32_t, 1240), ('reserved_311', uint32_t, 1244), ('reserved_312', uint32_t, 1248), ('reserved_313', uint32_t, 1252), ('reserved_314', uint32_t, 1256), ('reserved_315', uint32_t, 1260), ('reserved_316', uint32_t, 1264), ('reserved_317', uint32_t, 1268), ('reserved_318', uint32_t, 1272), ('reserved_319', uint32_t, 1276), ('reserved_320', uint32_t, 1280), ('reserved_321', uint32_t, 1284), ('reserved_322', uint32_t, 1288), ('reserved_323', uint32_t, 1292), ('reserved_324', uint32_t, 1296), ('reserved_325', uint32_t, 1300), ('reserved_326', uint32_t, 1304), ('reserved_327', uint32_t, 1308), ('reserved_328', uint32_t, 1312), ('reserved_329', uint32_t, 1316), ('reserved_330', uint32_t, 1320), ('reserved_331', uint32_t, 1324), ('reserved_332', uint32_t, 1328), ('reserved_333', uint32_t, 1332), ('reserved_334', uint32_t, 1336), ('reserved_335', uint32_t, 1340), ('reserved_336', uint32_t, 1344), ('reserved_337', uint32_t, 1348), ('reserved_338', uint32_t, 1352), ('reserved_339', uint32_t, 1356), ('reserved_340', uint32_t, 1360), ('reserved_341', uint32_t, 1364), ('reserved_342', uint32_t, 1368), ('reserved_343', uint32_t, 1372), ('reserved_344', uint32_t, 1376), ('reserved_345', uint32_t, 1380), ('reserved_346', uint32_t, 1384), ('reserved_347', uint32_t, 1388), ('reserved_348', uint32_t, 1392), ('reserved_349', uint32_t, 1396), ('reserved_350', uint32_t, 1400), ('reserved_351', uint32_t, 1404), ('reserved_352', uint32_t, 1408), ('reserved_353', uint32_t, 1412), ('reserved_354', uint32_t, 1416), ('reserved_355', uint32_t, 1420), ('reserved_356', uint32_t, 1424), ('reserved_357', uint32_t, 1428), ('reserved_358', uint32_t, 1432), ('reserved_359', uint32_t, 1436), ('reserved_360', uint32_t, 1440), ('reserved_361', uint32_t, 1444), ('reserved_362', uint32_t, 1448), ('reserved_363', uint32_t, 1452), ('reserved_364', uint32_t, 1456), ('reserved_365', uint32_t, 1460), ('reserved_366', uint32_t, 1464), ('reserved_367', uint32_t, 1468), ('reserved_368', uint32_t, 1472), ('reserved_369', uint32_t, 1476), ('reserved_370', uint32_t, 1480), ('reserved_371', uint32_t, 1484), ('reserved_372', uint32_t, 1488), ('reserved_373', uint32_t, 1492), ('reserved_374', uint32_t, 1496), ('reserved_375', uint32_t, 1500), ('reserved_376', uint32_t, 1504), ('reserved_377', uint32_t, 1508), ('reserved_378', uint32_t, 1512), ('reserved_379', uint32_t, 1516), ('reserved_380', uint32_t, 1520), ('reserved_381', uint32_t, 1524), ('reserved_382', uint32_t, 1528), ('reserved_383', uint32_t, 1532), ('reserved_384', uint32_t, 1536), ('reserved_385', uint32_t, 1540), ('reserved_386', uint32_t, 1544), ('reserved_387', uint32_t, 1548), ('reserved_388', uint32_t, 1552), ('reserved_389', uint32_t, 1556), ('reserved_390', uint32_t, 1560), ('reserved_391', uint32_t, 1564), ('reserved_392', uint32_t, 1568), ('reserved_393', uint32_t, 1572), ('reserved_394', uint32_t, 1576), ('reserved_395', uint32_t, 1580), ('reserved_396', uint32_t, 1584), ('reserved_397', uint32_t, 1588), ('reserved_398', uint32_t, 1592), ('reserved_399', uint32_t, 1596), ('reserved_400', uint32_t, 1600), ('reserved_401', uint32_t, 1604), ('reserved_402', uint32_t, 1608), ('reserved_403', uint32_t, 1612), ('reserved_404', uint32_t, 1616), ('reserved_405', uint32_t, 1620), ('reserved_406', uint32_t, 1624), ('reserved_407', uint32_t, 1628), ('reserved_408', uint32_t, 1632), ('reserved_409', uint32_t, 1636), ('reserved_410', uint32_t, 1640), ('reserved_411', uint32_t, 1644), ('reserved_412', uint32_t, 1648), ('reserved_413', uint32_t, 1652), ('reserved_414', uint32_t, 1656), ('reserved_415', uint32_t, 1660), ('reserved_416', uint32_t, 1664), ('reserved_417', uint32_t, 1668), ('reserved_418', uint32_t, 1672), ('reserved_419', uint32_t, 1676), ('reserved_420', uint32_t, 1680), ('reserved_421', uint32_t, 1684), ('reserved_422', uint32_t, 1688), ('reserved_423', uint32_t, 1692), ('reserved_424', uint32_t, 1696), ('reserved_425', uint32_t, 1700), ('reserved_426', uint32_t, 1704), ('reserved_427', uint32_t, 1708), ('reserved_428', uint32_t, 1712), ('reserved_429', uint32_t, 1716), ('reserved_430', uint32_t, 1720), ('reserved_431', uint32_t, 1724), ('reserved_432', uint32_t, 1728), ('reserved_433', uint32_t, 1732), ('reserved_434', uint32_t, 1736), ('reserved_435', uint32_t, 1740), ('reserved_436', uint32_t, 1744), ('reserved_437', uint32_t, 1748), ('reserved_438', uint32_t, 1752), ('reserved_439', uint32_t, 1756), ('reserved_440', uint32_t, 1760), ('reserved_441', uint32_t, 1764), ('reserved_442', uint32_t, 1768), ('reserved_443', uint32_t, 1772), ('reserved_444', uint32_t, 1776), ('reserved_445', uint32_t, 1780), ('reserved_446', uint32_t, 1784), ('reserved_447', uint32_t, 1788), ('reserved_448', uint32_t, 1792), ('reserved_449', uint32_t, 1796), ('reserved_450', uint32_t, 1800), ('reserved_451', uint32_t, 1804), ('reserved_452', uint32_t, 1808), ('reserved_453', uint32_t, 1812), ('reserved_454', uint32_t, 1816), ('reserved_455', uint32_t, 1820), ('reserved_456', uint32_t, 1824), ('reserved_457', uint32_t, 1828), ('reserved_458', uint32_t, 1832), ('reserved_459', uint32_t, 1836), ('reserved_460', uint32_t, 1840), ('reserved_461', uint32_t, 1844), ('reserved_462', uint32_t, 1848), ('reserved_463', uint32_t, 1852), ('reserved_464', uint32_t, 1856), ('reserved_465', uint32_t, 1860), ('reserved_466', uint32_t, 1864), ('reserved_467', uint32_t, 1868), ('reserved_468', uint32_t, 1872), ('reserved_469', uint32_t, 1876), ('reserved_470', uint32_t, 1880), ('reserved_471', uint32_t, 1884), ('reserved_472', uint32_t, 1888), ('reserved_473', uint32_t, 1892), ('reserved_474', uint32_t, 1896), ('reserved_475', uint32_t, 1900), ('reserved_476', uint32_t, 1904), ('reserved_477', uint32_t, 1908), ('reserved_478', uint32_t, 1912), ('reserved_479', uint32_t, 1916), ('reserved_480', uint32_t, 1920), ('reserved_481', uint32_t, 1924), ('reserved_482', uint32_t, 1928), ('reserved_483', uint32_t, 1932), ('reserved_484', uint32_t, 1936), ('reserved_485', uint32_t, 1940), ('reserved_486', uint32_t, 1944), ('reserved_487', uint32_t, 1948), ('reserved_488', uint32_t, 1952), ('reserved_489', uint32_t, 1956), ('reserved_490', uint32_t, 1960), ('reserved_491', uint32_t, 1964), ('reserved_492', uint32_t, 1968), ('reserved_493', uint32_t, 1972), ('reserved_494', uint32_t, 1976), ('reserved_495', uint32_t, 1980), ('reserved_496', uint32_t, 1984), ('reserved_497', uint32_t, 1988), ('reserved_498', uint32_t, 1992), ('reserved_499', uint32_t, 1996), ('reserved_500', uint32_t, 2000), ('reserved_501', uint32_t, 2004), ('reserved_502', uint32_t, 2008), ('reserved_503', uint32_t, 2012), ('reserved_504', uint32_t, 2016), ('reserved_505', uint32_t, 2020), ('reserved_506', uint32_t, 2024), ('reserved_507', uint32_t, 2028), ('reserved_508', uint32_t, 2032), ('reserved_509', uint32_t, 2036), ('reserved_510', uint32_t, 2040), ('reserved_511', uint32_t, 2044)])
@c.record
class struct_v9_mqd_allocation(c.Struct):
  SIZE = 2064
  mqd: struct_v9_mqd
  wptr_poll_mem: int
  rptr_report_mem: int
  dynamic_cu_mask: int
  dynamic_rb_mask: int
struct_v9_mqd_allocation.register_fields([('mqd', struct_v9_mqd, 0), ('wptr_poll_mem', uint32_t, 2048), ('rptr_report_mem', uint32_t, 2052), ('dynamic_cu_mask', uint32_t, 2056), ('dynamic_rb_mask', uint32_t, 2060)])
@c.record
class struct_v9_ce_ib_state(c.Struct):
  SIZE = 40
  ce_ib_completion_status: int
  ce_constegnine_count: int
  ce_ibOffset_ib1: int
  ce_ibOffset_ib2: int
  ce_chainib_addrlo_ib1: int
  ce_chainib_addrlo_ib2: int
  ce_chainib_addrhi_ib1: int
  ce_chainib_addrhi_ib2: int
  ce_chainib_size_ib1: int
  ce_chainib_size_ib2: int
struct_v9_ce_ib_state.register_fields([('ce_ib_completion_status', uint32_t, 0), ('ce_constegnine_count', uint32_t, 4), ('ce_ibOffset_ib1', uint32_t, 8), ('ce_ibOffset_ib2', uint32_t, 12), ('ce_chainib_addrlo_ib1', uint32_t, 16), ('ce_chainib_addrlo_ib2', uint32_t, 20), ('ce_chainib_addrhi_ib1', uint32_t, 24), ('ce_chainib_addrhi_ib2', uint32_t, 28), ('ce_chainib_size_ib1', uint32_t, 32), ('ce_chainib_size_ib2', uint32_t, 36)])
@c.record
class struct_v9_de_ib_state(c.Struct):
  SIZE = 108
  ib_completion_status: int
  de_constEngine_count: int
  ib_offset_ib1: int
  ib_offset_ib2: int
  chain_ib_addrlo_ib1: int
  chain_ib_addrlo_ib2: int
  chain_ib_addrhi_ib1: int
  chain_ib_addrhi_ib2: int
  chain_ib_size_ib1: int
  chain_ib_size_ib2: int
  preamble_begin_ib1: int
  preamble_begin_ib2: int
  preamble_end_ib1: int
  preamble_end_ib2: int
  chain_ib_pream_addrlo_ib1: int
  chain_ib_pream_addrlo_ib2: int
  chain_ib_pream_addrhi_ib1: int
  chain_ib_pream_addrhi_ib2: int
  draw_indirect_baseLo: int
  draw_indirect_baseHi: int
  disp_indirect_baseLo: int
  disp_indirect_baseHi: int
  gds_backup_addrlo: int
  gds_backup_addrhi: int
  index_base_addrlo: int
  index_base_addrhi: int
  sample_cntl: int
struct_v9_de_ib_state.register_fields([('ib_completion_status', uint32_t, 0), ('de_constEngine_count', uint32_t, 4), ('ib_offset_ib1', uint32_t, 8), ('ib_offset_ib2', uint32_t, 12), ('chain_ib_addrlo_ib1', uint32_t, 16), ('chain_ib_addrlo_ib2', uint32_t, 20), ('chain_ib_addrhi_ib1', uint32_t, 24), ('chain_ib_addrhi_ib2', uint32_t, 28), ('chain_ib_size_ib1', uint32_t, 32), ('chain_ib_size_ib2', uint32_t, 36), ('preamble_begin_ib1', uint32_t, 40), ('preamble_begin_ib2', uint32_t, 44), ('preamble_end_ib1', uint32_t, 48), ('preamble_end_ib2', uint32_t, 52), ('chain_ib_pream_addrlo_ib1', uint32_t, 56), ('chain_ib_pream_addrlo_ib2', uint32_t, 60), ('chain_ib_pream_addrhi_ib1', uint32_t, 64), ('chain_ib_pream_addrhi_ib2', uint32_t, 68), ('draw_indirect_baseLo', uint32_t, 72), ('draw_indirect_baseHi', uint32_t, 76), ('disp_indirect_baseLo', uint32_t, 80), ('disp_indirect_baseHi', uint32_t, 84), ('gds_backup_addrlo', uint32_t, 88), ('gds_backup_addrhi', uint32_t, 92), ('index_base_addrlo', uint32_t, 96), ('index_base_addrhi', uint32_t, 100), ('sample_cntl', uint32_t, 104)])
@c.record
class struct_v9_gfx_meta_data(c.Struct):
  SIZE = 4096
  ce_payload: struct_v9_ce_ib_state
  reserved1: c.Array[ctypes.c_uint32, Literal[54]]
  de_payload: struct_v9_de_ib_state
  DeIbBaseAddrLo: int
  DeIbBaseAddrHi: int
  reserved2: c.Array[ctypes.c_uint32, Literal[931]]
struct_v9_gfx_meta_data.register_fields([('ce_payload', struct_v9_ce_ib_state, 0), ('reserved1', c.Array[uint32_t, Literal[54]], 40), ('de_payload', struct_v9_de_ib_state, 256), ('DeIbBaseAddrLo', uint32_t, 364), ('DeIbBaseAddrHi', uint32_t, 368), ('reserved2', c.Array[uint32_t, Literal[931]], 372)])
enum_soc15_ih_clientid: dict[int, str] = {(SOC15_IH_CLIENTID_IH:=0): 'SOC15_IH_CLIENTID_IH', (SOC15_IH_CLIENTID_ACP:=1): 'SOC15_IH_CLIENTID_ACP', (SOC15_IH_CLIENTID_ATHUB:=2): 'SOC15_IH_CLIENTID_ATHUB', (SOC15_IH_CLIENTID_BIF:=3): 'SOC15_IH_CLIENTID_BIF', (SOC15_IH_CLIENTID_DCE:=4): 'SOC15_IH_CLIENTID_DCE', (SOC15_IH_CLIENTID_ISP:=5): 'SOC15_IH_CLIENTID_ISP', (SOC15_IH_CLIENTID_PCIE0:=6): 'SOC15_IH_CLIENTID_PCIE0', (SOC15_IH_CLIENTID_RLC:=7): 'SOC15_IH_CLIENTID_RLC', (SOC15_IH_CLIENTID_SDMA0:=8): 'SOC15_IH_CLIENTID_SDMA0', (SOC15_IH_CLIENTID_SDMA1:=9): 'SOC15_IH_CLIENTID_SDMA1', (SOC15_IH_CLIENTID_SE0SH:=10): 'SOC15_IH_CLIENTID_SE0SH', (SOC15_IH_CLIENTID_SE1SH:=11): 'SOC15_IH_CLIENTID_SE1SH', (SOC15_IH_CLIENTID_SE2SH:=12): 'SOC15_IH_CLIENTID_SE2SH', (SOC15_IH_CLIENTID_SE3SH:=13): 'SOC15_IH_CLIENTID_SE3SH', (SOC15_IH_CLIENTID_UVD1:=14): 'SOC15_IH_CLIENTID_UVD1', (SOC15_IH_CLIENTID_THM:=15): 'SOC15_IH_CLIENTID_THM', (SOC15_IH_CLIENTID_UVD:=16): 'SOC15_IH_CLIENTID_UVD', (SOC15_IH_CLIENTID_VCE0:=17): 'SOC15_IH_CLIENTID_VCE0', (SOC15_IH_CLIENTID_VMC:=18): 'SOC15_IH_CLIENTID_VMC', (SOC15_IH_CLIENTID_XDMA:=19): 'SOC15_IH_CLIENTID_XDMA', (SOC15_IH_CLIENTID_GRBM_CP:=20): 'SOC15_IH_CLIENTID_GRBM_CP', (SOC15_IH_CLIENTID_ATS:=21): 'SOC15_IH_CLIENTID_ATS', (SOC15_IH_CLIENTID_ROM_SMUIO:=22): 'SOC15_IH_CLIENTID_ROM_SMUIO', (SOC15_IH_CLIENTID_DF:=23): 'SOC15_IH_CLIENTID_DF', (SOC15_IH_CLIENTID_VCE1:=24): 'SOC15_IH_CLIENTID_VCE1', (SOC15_IH_CLIENTID_PWR:=25): 'SOC15_IH_CLIENTID_PWR', (SOC15_IH_CLIENTID_RESERVED:=26): 'SOC15_IH_CLIENTID_RESERVED', (SOC15_IH_CLIENTID_UTCL2:=27): 'SOC15_IH_CLIENTID_UTCL2', (SOC15_IH_CLIENTID_EA:=28): 'SOC15_IH_CLIENTID_EA', (SOC15_IH_CLIENTID_UTCL2LOG:=29): 'SOC15_IH_CLIENTID_UTCL2LOG', (SOC15_IH_CLIENTID_MP0:=30): 'SOC15_IH_CLIENTID_MP0', (SOC15_IH_CLIENTID_MP1:=31): 'SOC15_IH_CLIENTID_MP1', (SOC15_IH_CLIENTID_MAX:=32): 'SOC15_IH_CLIENTID_MAX', (SOC15_IH_CLIENTID_VCN:=16): 'SOC15_IH_CLIENTID_VCN', (SOC15_IH_CLIENTID_VCN1:=14): 'SOC15_IH_CLIENTID_VCN1', (SOC15_IH_CLIENTID_SDMA2:=1): 'SOC15_IH_CLIENTID_SDMA2', (SOC15_IH_CLIENTID_SDMA3:=4): 'SOC15_IH_CLIENTID_SDMA3', (SOC15_IH_CLIENTID_SDMA3_Sienna_Cichlid:=5): 'SOC15_IH_CLIENTID_SDMA3_Sienna_Cichlid', (SOC15_IH_CLIENTID_SDMA4:=5): 'SOC15_IH_CLIENTID_SDMA4', (SOC15_IH_CLIENTID_SDMA5:=17): 'SOC15_IH_CLIENTID_SDMA5', (SOC15_IH_CLIENTID_SDMA6:=19): 'SOC15_IH_CLIENTID_SDMA6', (SOC15_IH_CLIENTID_SDMA7:=24): 'SOC15_IH_CLIENTID_SDMA7', (SOC15_IH_CLIENTID_VMC1:=6): 'SOC15_IH_CLIENTID_VMC1'}
enum_soc21_ih_clientid: dict[int, str] = {(SOC21_IH_CLIENTID_IH:=0): 'SOC21_IH_CLIENTID_IH', (SOC21_IH_CLIENTID_ATHUB:=2): 'SOC21_IH_CLIENTID_ATHUB', (SOC21_IH_CLIENTID_BIF:=3): 'SOC21_IH_CLIENTID_BIF', (SOC21_IH_CLIENTID_DCN:=4): 'SOC21_IH_CLIENTID_DCN', (SOC21_IH_CLIENTID_ISP:=5): 'SOC21_IH_CLIENTID_ISP', (SOC21_IH_CLIENTID_MP3:=6): 'SOC21_IH_CLIENTID_MP3', (SOC21_IH_CLIENTID_RLC:=7): 'SOC21_IH_CLIENTID_RLC', (SOC21_IH_CLIENTID_GFX:=10): 'SOC21_IH_CLIENTID_GFX', (SOC21_IH_CLIENTID_IMU:=11): 'SOC21_IH_CLIENTID_IMU', (SOC21_IH_CLIENTID_VCN1:=14): 'SOC21_IH_CLIENTID_VCN1', (SOC21_IH_CLIENTID_THM:=15): 'SOC21_IH_CLIENTID_THM', (SOC21_IH_CLIENTID_VCN:=16): 'SOC21_IH_CLIENTID_VCN', (SOC21_IH_CLIENTID_VPE1:=17): 'SOC21_IH_CLIENTID_VPE1', (SOC21_IH_CLIENTID_VMC:=18): 'SOC21_IH_CLIENTID_VMC', (SOC21_IH_CLIENTID_GRBM_CP:=20): 'SOC21_IH_CLIENTID_GRBM_CP', (SOC21_IH_CLIENTID_ROM_SMUIO:=22): 'SOC21_IH_CLIENTID_ROM_SMUIO', (SOC21_IH_CLIENTID_DF:=23): 'SOC21_IH_CLIENTID_DF', (SOC21_IH_CLIENTID_VPE:=24): 'SOC21_IH_CLIENTID_VPE', (SOC21_IH_CLIENTID_PWR:=25): 'SOC21_IH_CLIENTID_PWR', (SOC21_IH_CLIENTID_LSDMA:=26): 'SOC21_IH_CLIENTID_LSDMA', (SOC21_IH_CLIENTID_MP0:=30): 'SOC21_IH_CLIENTID_MP0', (SOC21_IH_CLIENTID_MP1:=31): 'SOC21_IH_CLIENTID_MP1', (SOC21_IH_CLIENTID_MAX:=32): 'SOC21_IH_CLIENTID_MAX'}
enum_idh_request: dict[int, str] = {(IDH_REQ_GPU_INIT_ACCESS:=1): 'IDH_REQ_GPU_INIT_ACCESS', (IDH_REL_GPU_INIT_ACCESS:=2): 'IDH_REL_GPU_INIT_ACCESS', (IDH_REQ_GPU_FINI_ACCESS:=3): 'IDH_REQ_GPU_FINI_ACCESS', (IDH_REL_GPU_FINI_ACCESS:=4): 'IDH_REL_GPU_FINI_ACCESS', (IDH_REQ_GPU_RESET_ACCESS:=5): 'IDH_REQ_GPU_RESET_ACCESS', (IDH_REQ_GPU_INIT_DATA:=6): 'IDH_REQ_GPU_INIT_DATA', (IDH_LOG_VF_ERROR:=200): 'IDH_LOG_VF_ERROR', (IDH_READY_TO_RESET:=201): 'IDH_READY_TO_RESET', (IDH_RAS_POISON:=202): 'IDH_RAS_POISON', (IDH_REQ_RAS_ERROR_COUNT:=203): 'IDH_REQ_RAS_ERROR_COUNT', (IDH_REQ_RAS_CPER_DUMP:=204): 'IDH_REQ_RAS_CPER_DUMP', (IDH_REQ_RAS_BAD_PAGES:=205): 'IDH_REQ_RAS_BAD_PAGES', (IDH_REQ_RAS_CHK_CRITI:=206): 'IDH_REQ_RAS_CHK_CRITI'}
enum_idh_event: dict[int, str] = {(IDH_CLR_MSG_BUF:=0): 'IDH_CLR_MSG_BUF', (IDH_READY_TO_ACCESS_GPU:=1): 'IDH_READY_TO_ACCESS_GPU', (IDH_FLR_NOTIFICATION:=2): 'IDH_FLR_NOTIFICATION', (IDH_FLR_NOTIFICATION_CMPL:=3): 'IDH_FLR_NOTIFICATION_CMPL', (IDH_SUCCESS:=4): 'IDH_SUCCESS', (IDH_FAIL:=5): 'IDH_FAIL', (IDH_QUERY_ALIVE:=6): 'IDH_QUERY_ALIVE', (IDH_REQ_GPU_INIT_DATA_READY:=7): 'IDH_REQ_GPU_INIT_DATA_READY', (IDH_RAS_POISON_READY:=8): 'IDH_RAS_POISON_READY', (IDH_PF_SOFT_FLR_NOTIFICATION:=9): 'IDH_PF_SOFT_FLR_NOTIFICATION', (IDH_RAS_ERROR_DETECTED:=10): 'IDH_RAS_ERROR_DETECTED', (IDH_RAS_ERROR_COUNT_READY:=11): 'IDH_RAS_ERROR_COUNT_READY', (IDH_RAS_CPER_DUMP_READY:=14): 'IDH_RAS_CPER_DUMP_READY', (IDH_RAS_BAD_PAGES_READY:=15): 'IDH_RAS_BAD_PAGES_READY', (IDH_RAS_BAD_PAGES_NOTIFICATION:=16): 'IDH_RAS_BAD_PAGES_NOTIFICATION', (IDH_UNRECOV_ERR_NOTIFICATION:=17): 'IDH_UNRECOV_ERR_NOTIFICATION', (IDH_REQ_RAS_CHK_CRITI_READY:=18): 'IDH_REQ_RAS_CHK_CRITI_READY', (IDH_TEXT_MESSAGE:=255): 'IDH_TEXT_MESSAGE'}
class struct_amdgpu_virt_ops(c.Struct): pass
enum_amdgpu_sriov_vf_mode: dict[int, str] = {(SRIOV_VF_MODE_BARE_METAL:=0): 'SRIOV_VF_MODE_BARE_METAL', (SRIOV_VF_MODE_ONE_VF:=1): 'SRIOV_VF_MODE_ONE_VF', (SRIOV_VF_MODE_MULTI_VF:=2): 'SRIOV_VF_MODE_MULTI_VF'}
@c.record
class struct_amdgpu_mm_table(c.Struct):
  SIZE = 24
  bo: c.POINTER[struct_amdgpu_bo]
  cpu_addr: c.POINTER[ctypes.c_uint32]
  gpu_addr: int
class struct_amdgpu_bo(c.Struct): pass
struct_amdgpu_mm_table.register_fields([('bo', c.POINTER[struct_amdgpu_bo], 0), ('cpu_addr', c.POINTER[uint32_t], 8), ('gpu_addr', uint64_t, 16)])
class struct_amdgpu_vf_error_buffer(c.Struct): pass
@c.record
class struct_amdgpu_virt_fw_reserve(c.Struct):
  SIZE = 32
  p_pf2vf: c.POINTER[struct_amd_sriov_msg_pf2vf_info_header]
  p_vf2pf: c.POINTER[struct_amd_sriov_msg_vf2pf_info_header]
  ras_telemetry: ctypes.c_void_p
  checksum_key: int
@c.record
class struct_amd_sriov_msg_pf2vf_info_header(c.Struct):
  SIZE = 16
  size: int
  version: int
  reserved: c.Array[ctypes.c_uint32, Literal[2]]
struct_amd_sriov_msg_pf2vf_info_header.register_fields([('size', uint32_t, 0), ('version', uint32_t, 4), ('reserved', c.Array[uint32_t, Literal[2]], 8)])
@c.record
class struct_amd_sriov_msg_vf2pf_info_header(c.Struct):
  SIZE = 16
  size: int
  version: int
  reserved: c.Array[ctypes.c_uint32, Literal[2]]
struct_amd_sriov_msg_vf2pf_info_header.register_fields([('size', uint32_t, 0), ('version', uint32_t, 4), ('reserved', c.Array[uint32_t, Literal[2]], 8)])
struct_amdgpu_virt_fw_reserve.register_fields([('p_pf2vf', c.POINTER[struct_amd_sriov_msg_pf2vf_info_header], 0), ('p_vf2pf', c.POINTER[struct_amd_sriov_msg_vf2pf_info_header], 8), ('ras_telemetry', ctypes.c_void_p, 16), ('checksum_key', ctypes.c_uint32, 24)])
enum_AMDGIM_FEATURE_FLAG: dict[int, str] = {(AMDGIM_FEATURE_ERROR_LOG_COLLECT:=1): 'AMDGIM_FEATURE_ERROR_LOG_COLLECT', (AMDGIM_FEATURE_GIM_LOAD_UCODES:=2): 'AMDGIM_FEATURE_GIM_LOAD_UCODES', (AMDGIM_FEATURE_GIM_FLR_VRAMLOST:=4): 'AMDGIM_FEATURE_GIM_FLR_VRAMLOST', (AMDGIM_FEATURE_GIM_MM_BW_MGR:=8): 'AMDGIM_FEATURE_GIM_MM_BW_MGR', (AMDGIM_FEATURE_PP_ONE_VF:=16): 'AMDGIM_FEATURE_PP_ONE_VF', (AMDGIM_FEATURE_INDIRECT_REG_ACCESS:=32): 'AMDGIM_FEATURE_INDIRECT_REG_ACCESS', (AMDGIM_FEATURE_AV1_SUPPORT:=64): 'AMDGIM_FEATURE_AV1_SUPPORT', (AMDGIM_FEATURE_VCN_RB_DECOUPLE:=128): 'AMDGIM_FEATURE_VCN_RB_DECOUPLE', (AMDGIM_FEATURE_MES_INFO_ENABLE:=256): 'AMDGIM_FEATURE_MES_INFO_ENABLE', (AMDGIM_FEATURE_RAS_CAPS:=512): 'AMDGIM_FEATURE_RAS_CAPS', (AMDGIM_FEATURE_RAS_TELEMETRY:=1024): 'AMDGIM_FEATURE_RAS_TELEMETRY', (AMDGIM_FEATURE_RAS_CPER:=2048): 'AMDGIM_FEATURE_RAS_CPER', (AMDGIM_FEATURE_XGMI_TA_EXT_PEER_LINK:=4096): 'AMDGIM_FEATURE_XGMI_TA_EXT_PEER_LINK'}
enum_AMDGIM_REG_ACCESS_FLAG: dict[int, str] = {(AMDGIM_FEATURE_IH_REG_PSP_EN:=1): 'AMDGIM_FEATURE_IH_REG_PSP_EN', (AMDGIM_FEATURE_MMHUB_REG_RLC_EN:=2): 'AMDGIM_FEATURE_MMHUB_REG_RLC_EN', (AMDGIM_FEATURE_GC_REG_RLC_EN:=4): 'AMDGIM_FEATURE_GC_REG_RLC_EN', (AMDGIM_FEATURE_L1_TLB_CNTL_PSP_EN:=8): 'AMDGIM_FEATURE_L1_TLB_CNTL_PSP_EN', (AMDGIM_FEATURE_REG_ACCESS_SQ_CONFIG:=16): 'AMDGIM_FEATURE_REG_ACCESS_SQ_CONFIG'}
@c.record
class struct_amdgim_pf2vf_info_v1(c.Struct):
  SIZE = 44
  header: struct_amd_sriov_msg_pf2vf_info_header
  uvd_enc_max_pixels_count: int
  uvd_enc_max_bandwidth: int
  vce_enc_max_pixels_count: int
  vce_enc_max_bandwidth: int
  mecfw_kboffset: int
  feature_flags: int
  checksum: int
struct_amdgim_pf2vf_info_v1.register_fields([('header', struct_amd_sriov_msg_pf2vf_info_header, 0), ('uvd_enc_max_pixels_count', ctypes.c_uint32, 16), ('uvd_enc_max_bandwidth', ctypes.c_uint32, 20), ('vce_enc_max_pixels_count', ctypes.c_uint32, 24), ('vce_enc_max_bandwidth', ctypes.c_uint32, 28), ('mecfw_kboffset', ctypes.c_uint32, 32), ('feature_flags', ctypes.c_uint32, 36), ('checksum', ctypes.c_uint32, 40)])
@c.record
class struct_amdgim_vf2pf_info_v1(c.Struct):
  SIZE = 128
  header: struct_amd_sriov_msg_vf2pf_info_header
  driver_version: c.Array[ctypes.c_char, Literal[64]]
  driver_cert: int
  os_info: int
  fb_usage: int
  gfx_usage: int
  gfx_health: int
  compute_usage: int
  compute_health: int
  vce_enc_usage: int
  vce_enc_health: int
  uvd_enc_usage: int
  uvd_enc_health: int
  checksum: int
struct_amdgim_vf2pf_info_v1.register_fields([('header', struct_amd_sriov_msg_vf2pf_info_header, 0), ('driver_version', c.Array[ctypes.c_char, Literal[64]], 16), ('driver_cert', ctypes.c_uint32, 80), ('os_info', ctypes.c_uint32, 84), ('fb_usage', ctypes.c_uint32, 88), ('gfx_usage', ctypes.c_uint32, 92), ('gfx_health', ctypes.c_uint32, 96), ('compute_usage', ctypes.c_uint32, 100), ('compute_health', ctypes.c_uint32, 104), ('vce_enc_usage', ctypes.c_uint32, 108), ('vce_enc_health', ctypes.c_uint32, 112), ('uvd_enc_usage', ctypes.c_uint32, 116), ('uvd_enc_health', ctypes.c_uint32, 120), ('checksum', ctypes.c_uint32, 124)])
@c.record
class struct_amdgim_vf2pf_info_v2(c.Struct):
  SIZE = 1024
  header: struct_amd_sriov_msg_vf2pf_info_header
  checksum: int
  driver_version: c.Array[ctypes.c_ubyte, Literal[64]]
  driver_cert: int
  os_info: int
  fb_usage: int
  gfx_usage: int
  gfx_health: int
  compute_usage: int
  compute_health: int
  vce_enc_usage: int
  vce_enc_health: int
  uvd_enc_usage: int
  uvd_enc_health: int
  reserved: c.Array[ctypes.c_uint32, Literal[224]]
struct_amdgim_vf2pf_info_v2.register_fields([('header', struct_amd_sriov_msg_vf2pf_info_header, 0), ('checksum', uint32_t, 16), ('driver_version', c.Array[uint8_t, Literal[64]], 20), ('driver_cert', uint32_t, 84), ('os_info', uint32_t, 88), ('fb_usage', uint32_t, 92), ('gfx_usage', uint32_t, 96), ('gfx_health', uint32_t, 100), ('compute_usage', uint32_t, 104), ('compute_health', uint32_t, 108), ('vce_enc_usage', uint32_t, 112), ('vce_enc_health', uint32_t, 116), ('uvd_enc_usage', uint32_t, 120), ('uvd_enc_health', uint32_t, 124), ('reserved', c.Array[uint32_t, Literal[224]], 128)])
@c.record
class struct_amdgpu_virt_ras_err_handler_data(c.Struct):
  SIZE = 24
  bps: c.POINTER[struct_eeprom_table_record]
  bps_bo: c.POINTER[c.POINTER[struct_amdgpu_bo]]
  count: int
  last_reserved: int
class struct_eeprom_table_record(c.Struct): pass
struct_amdgpu_virt_ras_err_handler_data.register_fields([('bps', c.POINTER[struct_eeprom_table_record], 0), ('bps_bo', c.POINTER[c.POINTER[struct_amdgpu_bo]], 8), ('count', ctypes.c_int32, 16), ('last_reserved', ctypes.c_int32, 20)])
class struct_amdgpu_virt_ras(c.Struct): pass
@c.record
class struct_amdgpu_virt_region(c.Struct):
  SIZE = 8
  offset: int
  size_kb: int
struct_amdgpu_virt_region.register_fields([('offset', uint32_t, 0), ('size_kb', uint32_t, 4)])
class struct_amdgpu_virt(c.Struct): pass
class struct_amdgpu_video_codec_info(c.Struct): pass
AMDGPU_VM_MAX_UPDATE_SIZE = 0x3FFFF
AMDGPU_PTE_VALID = (1 << 0)
AMDGPU_PTE_SYSTEM = (1 << 1)
AMDGPU_PTE_SNOOPED = (1 << 2)
AMDGPU_PTE_TMZ = (1 << 3)
AMDGPU_PTE_EXECUTABLE = (1 << 4)
AMDGPU_PTE_READABLE = (1 << 5)
AMDGPU_PTE_WRITEABLE = (1 << 6)
AMDGPU_PTE_FRAG = lambda x: ((x & 0x1f) << 7) # type: ignore
AMDGPU_PTE_PRT = (1 << 51)
AMDGPU_PDE_PTE = (1 << 54)
AMDGPU_PTE_LOG = (1 << 55)
AMDGPU_PTE_TF = (1 << 56)
AMDGPU_PTE_NOALLOC = (1 << 58)
AMDGPU_PDE_BFS = lambda a: (a << 59) # type: ignore
AMDGPU_VM_NORETRY_FLAGS = (AMDGPU_PTE_EXECUTABLE | AMDGPU_PDE_PTE | AMDGPU_PTE_TF)
AMDGPU_VM_NORETRY_FLAGS_TF = (AMDGPU_PTE_VALID | AMDGPU_PTE_SYSTEM | AMDGPU_PTE_PRT)
AMDGPU_PTE_MTYPE_VG10_SHIFT = lambda mtype: ((mtype) << 57) # type: ignore
AMDGPU_PTE_MTYPE_VG10_MASK = AMDGPU_PTE_MTYPE_VG10_SHIFT(3)
AMDGPU_PTE_MTYPE_VG10 = lambda flags,mtype: (((flags) & (~AMDGPU_PTE_MTYPE_VG10_MASK)) | AMDGPU_PTE_MTYPE_VG10_SHIFT(mtype)) # type: ignore
AMDGPU_MTYPE_NC = 0
AMDGPU_MTYPE_CC = 2
AMDGPU_PTE_MTYPE_NV10_SHIFT = lambda mtype: ((mtype) << 48) # type: ignore
AMDGPU_PTE_MTYPE_NV10_MASK = AMDGPU_PTE_MTYPE_NV10_SHIFT(7)
AMDGPU_PTE_MTYPE_NV10 = lambda flags,mtype: (((flags) & (~AMDGPU_PTE_MTYPE_NV10_MASK)) | AMDGPU_PTE_MTYPE_NV10_SHIFT(mtype)) # type: ignore
AMDGPU_PTE_PRT_GFX12 = (1 << 56)
AMDGPU_PTE_MTYPE_GFX12_SHIFT = lambda mtype: ((mtype) << 54) # type: ignore
AMDGPU_PTE_MTYPE_GFX12_MASK = AMDGPU_PTE_MTYPE_GFX12_SHIFT(3)
AMDGPU_PTE_MTYPE_GFX12 = lambda flags,mtype: (((flags) & (~AMDGPU_PTE_MTYPE_GFX12_MASK)) | AMDGPU_PTE_MTYPE_GFX12_SHIFT(mtype)) # type: ignore
AMDGPU_PTE_IS_PTE = (1 << 63)
AMDGPU_PDE_BFS_GFX12 = lambda a: (((a) & 0x1f) << 58) # type: ignore
AMDGPU_PDE_PTE_GFX12 = (1 << 63)
AMDGPU_VM_FAULT_STOP_NEVER = 0
AMDGPU_VM_FAULT_STOP_FIRST = 1
AMDGPU_VM_FAULT_STOP_ALWAYS = 2
AMDGPU_VM_RESERVED_VRAM = (8 << 20)
AMDGPU_MAX_VMHUBS = 13
AMDGPU_GFXHUB_START = 0
AMDGPU_MMHUB0_START = 8
AMDGPU_MMHUB1_START = 12
AMDGPU_GFXHUB = lambda x: (AMDGPU_GFXHUB_START + (x)) # type: ignore
AMDGPU_MMHUB0 = lambda x: (AMDGPU_MMHUB0_START + (x)) # type: ignore
AMDGPU_MMHUB1 = lambda x: (AMDGPU_MMHUB1_START + (x)) # type: ignore
AMDGPU_IS_GFXHUB = lambda x: ((x) >= AMDGPU_GFXHUB_START and (x) < AMDGPU_MMHUB0_START) # type: ignore
AMDGPU_IS_MMHUB0 = lambda x: ((x) >= AMDGPU_MMHUB0_START and (x) < AMDGPU_MMHUB1_START) # type: ignore
AMDGPU_IS_MMHUB1 = lambda x: ((x) >= AMDGPU_MMHUB1_START and (x) < AMDGPU_MAX_VMHUBS) # type: ignore
AMDGPU_VA_RESERVED_CSA_SIZE = (2 << 20)
AMDGPU_VA_RESERVED_SEQ64_SIZE = (2 << 20)
AMDGPU_VA_RESERVED_SEQ64_START = lambda adev: (AMDGPU_VA_RESERVED_CSA_START(adev) - AMDGPU_VA_RESERVED_SEQ64_SIZE) # type: ignore
AMDGPU_VA_RESERVED_TRAP_SIZE = (2 << 12)
AMDGPU_VA_RESERVED_TRAP_START = lambda adev: (AMDGPU_VA_RESERVED_SEQ64_START(adev) - AMDGPU_VA_RESERVED_TRAP_SIZE) # type: ignore
AMDGPU_VA_RESERVED_BOTTOM = (1 << 16)
AMDGPU_VA_RESERVED_TOP = (AMDGPU_VA_RESERVED_TRAP_SIZE + AMDGPU_VA_RESERVED_SEQ64_SIZE + AMDGPU_VA_RESERVED_CSA_SIZE)
AMDGPU_VM_USE_CPU_FOR_GFX = (1 << 0)
AMDGPU_VM_USE_CPU_FOR_COMPUTE = (1 << 1)
PSP_HEADER_SIZE = 256
BINARY_SIGNATURE = 0x28211407
DISCOVERY_TABLE_SIGNATURE = 0x53445049
GC_TABLE_ID = 0x4347
HARVEST_TABLE_SIGNATURE = 0x56524148
VCN_INFO_TABLE_ID = 0x004E4356
MALL_INFO_TABLE_ID = 0x4C4C414D
NPS_INFO_TABLE_ID = 0x0053504E
VCN_INFO_TABLE_MAX_NUM_INSTANCES = 4
NPS_INFO_TABLE_MAX_NUM_INSTANCES = 12
HWIP_MAX_INSTANCE = 44
HW_ID_MAX = 300
MP1_HWID = 1
MP2_HWID = 2
THM_HWID = 3
SMUIO_HWID = 4
FUSE_HWID = 5
CLKA_HWID = 6
PWR_HWID = 10
GC_HWID = 11
UVD_HWID = 12
VCN_HWID = UVD_HWID
AUDIO_AZ_HWID = 13
ACP_HWID = 14
DCI_HWID = 15
DMU_HWID = 271
DCO_HWID = 16
DIO_HWID = 272
XDMA_HWID = 17
DCEAZ_HWID = 18
DAZ_HWID = 274
SDPMUX_HWID = 19
NTB_HWID = 20
VPE_HWID = 21
IOHC_HWID = 24
L2IMU_HWID = 28
VCE_HWID = 32
MMHUB_HWID = 34
ATHUB_HWID = 35
DBGU_NBIO_HWID = 36
DFX_HWID = 37
DBGU0_HWID = 38
DBGU1_HWID = 39
OSSSYS_HWID = 40
HDP_HWID = 41
SDMA0_HWID = 42
SDMA1_HWID = 43
ISP_HWID = 44
DBGU_IO_HWID = 45
DF_HWID = 46
CLKB_HWID = 47
FCH_HWID = 48
DFX_DAP_HWID = 49
L1IMU_PCIE_HWID = 50
L1IMU_NBIF_HWID = 51
L1IMU_IOAGR_HWID = 52
L1IMU3_HWID = 53
L1IMU4_HWID = 54
L1IMU5_HWID = 55
L1IMU6_HWID = 56
L1IMU7_HWID = 57
L1IMU8_HWID = 58
L1IMU9_HWID = 59
L1IMU10_HWID = 60
L1IMU11_HWID = 61
L1IMU12_HWID = 62
L1IMU13_HWID = 63
L1IMU14_HWID = 64
L1IMU15_HWID = 65
WAFLC_HWID = 66
FCH_USB_PD_HWID = 67
SDMA2_HWID = 68
SDMA3_HWID = 69
PCIE_HWID = 70
PCS_HWID = 80
DDCL_HWID = 89
SST_HWID = 90
LSDMA_HWID = 91
IOAGR_HWID = 100
NBIF_HWID = 108
IOAPIC_HWID = 124
SYSTEMHUB_HWID = 128
NTBCCP_HWID = 144
UMC_HWID = 150
SATA_HWID = 168
USB_HWID = 170
CCXSEC_HWID = 176
XGMI_HWID = 200
XGBE_HWID = 216
MP0_HWID = 255
hw_id_map = {GC_HWIP:GC_HWID,HDP_HWIP:HDP_HWID,SDMA0_HWIP:SDMA0_HWID,SDMA1_HWIP:SDMA1_HWID,SDMA2_HWIP:SDMA2_HWID,SDMA3_HWIP:SDMA3_HWID,LSDMA_HWIP:LSDMA_HWID,MMHUB_HWIP:MMHUB_HWID,ATHUB_HWIP:ATHUB_HWID,NBIO_HWIP:NBIF_HWID,MP0_HWIP:MP0_HWID,MP1_HWIP:MP1_HWID,UVD_HWIP:UVD_HWID,VCE_HWIP:VCE_HWID,DF_HWIP:DF_HWID,DCE_HWIP:DMU_HWID,OSSSYS_HWIP:OSSSYS_HWID,SMUIO_HWIP:SMUIO_HWID,PWR_HWIP:PWR_HWID,NBIF_HWIP:NBIF_HWID,THM_HWIP:THM_HWID,CLK_HWIP:CLKA_HWID,UMC_HWIP:UMC_HWID,XGMI_HWIP:XGMI_HWID,DCI_HWIP:DCI_HWID,PCIE_HWIP:PCIE_HWID,VPE_HWIP:VPE_HWID,ISP_HWIP:ISP_HWID}
AMDGPU_SDMA0_UCODE_LOADED = 0x00000001
AMDGPU_SDMA1_UCODE_LOADED = 0x00000002
AMDGPU_CPCE_UCODE_LOADED = 0x00000004
AMDGPU_CPPFP_UCODE_LOADED = 0x00000008
AMDGPU_CPME_UCODE_LOADED = 0x00000010
AMDGPU_CPMEC1_UCODE_LOADED = 0x00000020
AMDGPU_CPMEC2_UCODE_LOADED = 0x00000040
AMDGPU_CPRLC_UCODE_LOADED = 0x00000100
PSP_GFX_CMD_BUF_VERSION = 0x00000001
GFX_CMD_STATUS_MASK = 0x0000FFFF
GFX_CMD_ID_MASK = 0x000F0000
GFX_CMD_RESERVED_MASK = 0x7FF00000
GFX_CMD_RESPONSE_MASK = 0x80000000
C2PMSG_CMD_GFX_USB_PD_FW_VER = 0x2000000
GFX_FLAG_RESPONSE = 0x80000000
GFX_BUF_MAX_DESC = 64
FRAME_TYPE_DESTROY = 1
PSP_ERR_UNKNOWN_COMMAND = 0x00000100
PSP_FENCE_BUFFER_SIZE = 0x1000
PSP_CMD_BUFFER_SIZE = 0x1000
PSP_1_MEG = 0x100000
PSP_TMR_ALIGNMENT = 0x100000
PSP_FW_NAME_LEN = 0x24
AMDGPU_XGMI_MAX_CONNECTED_NODES = 64
MEM_TRAIN_SYSTEM_SIGNATURE = 0x54534942
GDDR6_MEM_TRAINING_DATA_SIZE_IN_BYTES = 0x1000
GDDR6_MEM_TRAINING_OFFSET = 0x8000
BIST_MEM_TRAINING_ENCROACHED_SIZE = 0x2000000
PSP_RUNTIME_DB_SIZE_IN_BYTES = 0x10000
PSP_RUNTIME_DB_OFFSET = 0x100000
PSP_RUNTIME_DB_COOKIE_ID = 0x0ed5
PSP_RUNTIME_DB_VER_1 = 0x0100
PSP_RUNTIME_DB_DIAG_ENTRY_MAX_COUNT = 0x40
AMDGPU_MAX_IRQ_SRC_ID = 0x100
AMDGPU_MAX_IRQ_CLIENT_ID = 0x100
AMDGPU_IRQ_CLIENTID_LEGACY = 0
AMDGPU_IRQ_CLIENTID_MAX = SOC15_IH_CLIENTID_MAX
AMDGPU_IRQ_SRC_DATA_MAX_SIZE_DW = 4
SOC15_INTSRC_CP_END_OF_PIPE = 181
SOC15_INTSRC_CP_BAD_OPCODE = 183
SOC15_INTSRC_SQ_INTERRUPT_MSG = 239
SOC15_INTSRC_VMC_FAULT = 0
SOC15_INTSRC_VMC_UTCL2_POISON = 1
SOC15_INTSRC_SDMA_TRAP = 224
SOC15_INTSRC_SDMA_ECC = 220
SOC21_INTSRC_SDMA_TRAP = 49
SOC21_INTSRC_SDMA_ECC = 62
SOC15_CLIENT_ID_FROM_IH_ENTRY = lambda entry: ((entry[0]) & 0xff) # type: ignore
SOC15_SOURCE_ID_FROM_IH_ENTRY = lambda entry: ((entry[0]) >> 8 & 0xff) # type: ignore
SOC15_RING_ID_FROM_IH_ENTRY = lambda entry: ((entry[0]) >> 16 & 0xff) # type: ignore
SOC15_VMID_FROM_IH_ENTRY = lambda entry: ((entry[0]) >> 24 & 0xf) # type: ignore
SOC15_VMID_TYPE_FROM_IH_ENTRY = lambda entry: ((entry[0]) >> 31 & 0x1) # type: ignore
SOC15_PASID_FROM_IH_ENTRY = lambda entry: ((entry[3]) & 0xffff) # type: ignore
SOC15_NODEID_FROM_IH_ENTRY = lambda entry: ((entry[3]) >> 16 & 0xff) # type: ignore
SOC15_CONTEXT_ID0_FROM_IH_ENTRY = lambda entry: ((entry[4])) # type: ignore
SOC15_CONTEXT_ID1_FROM_IH_ENTRY = lambda entry: ((entry[5])) # type: ignore
SOC15_CONTEXT_ID2_FROM_IH_ENTRY = lambda entry: ((entry[6])) # type: ignore
SOC15_CONTEXT_ID3_FROM_IH_ENTRY = lambda entry: ((entry[7])) # type: ignore
GFX_9_0__SRCID__CP_RB_INTERRUPT_PKT = 176
GFX_9_0__SRCID__CP_IB1_INTERRUPT_PKT = 177
GFX_9_0__SRCID__CP_IB2_INTERRUPT_PKT = 178
GFX_9_0__SRCID__CP_PM4_PKT_RSVD_BIT_ERROR = 180
GFX_9_0__SRCID__CP_EOP_INTERRUPT = 181
GFX_9_0__SRCID__CP_BAD_OPCODE_ERROR = 183
GFX_9_0__SRCID__CP_PRIV_REG_FAULT = 184
GFX_9_0__SRCID__CP_PRIV_INSTR_FAULT = 185
GFX_9_0__SRCID__CP_WAIT_MEM_SEM_FAULT = 186
GFX_9_0__SRCID__CP_CTX_EMPTY_INTERRUPT = 187
GFX_9_0__SRCID__CP_CTX_BUSY_INTERRUPT = 188
GFX_9_0__SRCID__CP_ME_WAIT_REG_MEM_POLL_TIMEOUT = 192
GFX_9_0__SRCID__CP_SIG_INCOMPLETE = 193
GFX_9_0__SRCID__CP_PREEMPT_ACK = 194
GFX_9_0__SRCID__CP_GPF = 195
GFX_9_0__SRCID__CP_GDS_ALLOC_ERROR = 196
GFX_9_0__SRCID__CP_ECC_ERROR = 197
GFX_9_0__SRCID__CP_COMPUTE_QUERY_STATUS = 199
GFX_9_0__SRCID__CP_VM_DOORBELL = 200
GFX_9_0__SRCID__CP_FUE_ERROR = 201
GFX_9_0__SRCID__RLC_STRM_PERF_MONITOR_INTERRUPT = 202
GFX_9_0__SRCID__GRBM_RD_TIMEOUT_ERROR = 232
GFX_9_0__SRCID__GRBM_REG_GUI_IDLE = 233
GFX_9_0__SRCID__SQ_INTERRUPT_ID = 239
GFX_11_0_0__SRCID__UTCL2_FAULT = 0
GFX_11_0_0__SRCID__UTCL2_DATA_POISONING = 1
GFX_11_0_0__SRCID__MEM_ACCES_MON = 10
GFX_11_0_0__SRCID__SDMA_ATOMIC_RTN_DONE = 48
GFX_11_0_0__SRCID__SDMA_TRAP = 49
GFX_11_0_0__SRCID__SDMA_SRBMWRITE = 50
GFX_11_0_0__SRCID__SDMA_CTXEMPTY = 51
GFX_11_0_0__SRCID__SDMA_PREEMPT = 52
GFX_11_0_0__SRCID__SDMA_IB_PREEMPT = 53
GFX_11_0_0__SRCID__SDMA_DOORBELL_INVALID = 54
GFX_11_0_0__SRCID__SDMA_QUEUE_HANG = 55
GFX_11_0_0__SRCID__SDMA_ATOMIC_TIMEOUT = 56
GFX_11_0_0__SRCID__SDMA_POLL_TIMEOUT = 57
GFX_11_0_0__SRCID__SDMA_PAGE_TIMEOUT = 58
GFX_11_0_0__SRCID__SDMA_PAGE_NULL = 59
GFX_11_0_0__SRCID__SDMA_PAGE_FAULT = 60
GFX_11_0_0__SRCID__SDMA_VM_HOLE = 61
GFX_11_0_0__SRCID__SDMA_ECC = 62
GFX_11_0_0__SRCID__SDMA_FROZEN = 63
GFX_11_0_0__SRCID__SDMA_SRAM_ECC = 64
GFX_11_0_0__SRCID__SDMA_SEM_INCOMPLETE_TIMEOUT = 65
GFX_11_0_0__SRCID__SDMA_SEM_WAIT_FAIL_TIMEOUT = 66
GFX_11_0_0__SRCID__SDMA_FENCE = 67
GFX_11_0_0__SRCID__RLC_GC_FED_INTERRUPT = 128
GFX_11_0_0__SRCID__CP_GENERIC_INT = 177
GFX_11_0_0__SRCID__CP_PM4_PKT_RSVD_BIT_ERROR = 180
GFX_11_0_0__SRCID__CP_EOP_INTERRUPT = 181
GFX_11_0_0__SRCID__CP_BAD_OPCODE_ERROR = 183
GFX_11_0_0__SRCID__CP_PRIV_REG_FAULT = 184
GFX_11_0_0__SRCID__CP_PRIV_INSTR_FAULT = 185
GFX_11_0_0__SRCID__CP_WAIT_MEM_SEM_FAULT = 186
GFX_11_0_0__SRCID__CP_CTX_EMPTY_INTERRUPT = 187
GFX_11_0_0__SRCID__CP_CTX_BUSY_INTERRUPT = 188
GFX_11_0_0__SRCID__CP_ME_WAIT_REG_MEM_POLL_TIMEOUT = 192
GFX_11_0_0__SRCID__CP_SIG_INCOMPLETE = 193
GFX_11_0_0__SRCID__CP_PREEMPT_ACK = 194
GFX_11_0_0__SRCID__CP_GPF = 195
GFX_11_0_0__SRCID__CP_GDS_ALLOC_ERROR = 196
GFX_11_0_0__SRCID__CP_ECC_ERROR = 197
GFX_11_0_0__SRCID__CP_COMPUTE_QUERY_STATUS = 199
GFX_11_0_0__SRCID__CP_VM_DOORBELL = 200
GFX_11_0_0__SRCID__CP_FUE_ERROR = 201
GFX_11_0_0__SRCID__RLC_STRM_PERF_MONITOR_INTERRUPT = 202
GFX_11_0_0__SRCID__GRBM_RD_TIMEOUT_ERROR = 232
GFX_11_0_0__SRCID__GRBM_REG_GUI_IDLE = 233
GFX_11_0_0__SRCID__SQ_INTERRUPT_ID = 239
GFX_12_0_0__SRCID__UTCL2_FAULT = 0
GFX_12_0_0__SRCID__UTCL2_DATA_POISONING = 1
GFX_12_0_0__SRCID__MEM_ACCES_MON = 10
GFX_12_0_0__SRCID__SDMA_ATOMIC_RTN_DONE = 48
GFX_12_0_0__SRCID__SDMA_TRAP = 49
GFX_12_0_0__SRCID__SDMA_SRBMWRITE = 50
GFX_12_0_0__SRCID__SDMA_CTXEMPTY = 51
GFX_12_0_0__SRCID__SDMA_PREEMPT = 52
GFX_12_0_0__SRCID__SDMA_IB_PREEMPT = 53
GFX_12_0_0__SRCID__SDMA_DOORBELL_INVALID = 54
GFX_12_0_0__SRCID__SDMA_QUEUE_HANG = 55
GFX_12_0_0__SRCID__SDMA_ATOMIC_TIMEOUT = 56
GFX_12_0_0__SRCID__SDMA_POLL_TIMEOUT = 57
GFX_12_0_0__SRCID__SDMA_PAGE_TIMEOUT = 58
GFX_12_0_0__SRCID__SDMA_PAGE_NULL = 59
GFX_12_0_0__SRCID__SDMA_PAGE_FAULT = 60
GFX_12_0_0__SRCID__SDMA_VM_HOLE = 61
GFX_12_0_0__SRCID__SDMA_ECC = 62
GFX_12_0_0__SRCID__SDMA_FROZEN = 63
GFX_12_0_0__SRCID__SDMA_SRAM_ECC = 64
GFX_12_0_0__SRCID__SDMA_SEM_INCOMPLETE_TIMEOUT = 65
GFX_12_0_0__SRCID__SDMA_SEM_WAIT_FAIL_TIMEOUT = 66
GFX_12_0_0__SRCID__SDMA_FENCE = 70
GFX_12_0_0__SRCID__RLC_GC_FED_INTERRUPT = 128
GFX_12_0_0__SRCID__CP_GENERIC_INT = 177
GFX_12_0_0__SRCID__CP_PM4_PKT_RSVD_BIT_ERROR = 180
GFX_12_0_0__SRCID__CP_EOP_INTERRUPT = 181
GFX_12_0_0__SRCID__CP_BAD_OPCODE_ERROR = 183
GFX_12_0_0__SRCID__CP_PRIV_REG_FAULT = 184
GFX_12_0_0__SRCID__CP_PRIV_INSTR_FAULT = 185
GFX_12_0_0__SRCID__CP_WAIT_MEM_SEM_FAULT = 186
GFX_12_0_0__SRCID__CP_CTX_EMPTY_INTERRUPT = 187
GFX_12_0_0__SRCID__CP_CTX_BUSY_INTERRUPT = 188
GFX_12_0_0__SRCID__CP_ME_WAIT_REG_MEM_POLL_TIMEOUT = 192
GFX_12_0_0__SRCID__CP_SIG_INCOMPLETE = 193
GFX_12_0_0__SRCID__CP_PREEMPT_ACK = 194
GFX_12_0_0__SRCID__CP_GPF = 195
GFX_12_0_0__SRCID__CP_GDS_ALLOC_ERROR = 196
GFX_12_0_0__SRCID__CP_ECC_ERROR = 197
GFX_12_0_0__SRCID__CP_COMPUTE_QUERY_STATUS = 199
GFX_12_0_0__SRCID__CP_VM_DOORBELL = 200
GFX_12_0_0__SRCID__CP_FUE_ERROR = 201
GFX_12_0_0__SRCID__RLC_STRM_PERF_MONITOR_INTERRUPT = 202
GFX_12_0_0__SRCID__GRBM_RD_TIMEOUT_ERROR = 232
GFX_12_0_0__SRCID__GRBM_REG_GUI_IDLE = 233
GFX_12_0_0__SRCID__SQ_INTERRUPT_ID = 239
SDMA0_4_0__SRCID__SDMA_ATOMIC_RTN_DONE = 217
SDMA0_4_0__SRCID__SDMA_ATOMIC_TIMEOUT = 218
SDMA0_4_0__SRCID__SDMA_IB_PREEMPT = 219
SDMA0_4_0__SRCID__SDMA_ECC = 220
SDMA0_4_0__SRCID__SDMA_PAGE_FAULT = 221
SDMA0_4_0__SRCID__SDMA_PAGE_NULL = 222
SDMA0_4_0__SRCID__SDMA_XNACK = 223
SDMA0_4_0__SRCID__SDMA_TRAP = 224
SDMA0_4_0__SRCID__SDMA_SEM_INCOMPLETE_TIMEOUT = 225
SDMA0_4_0__SRCID__SDMA_SEM_WAIT_FAIL_TIMEOUT = 226
SDMA0_4_0__SRCID__SDMA_SRAM_ECC = 228
SDMA0_4_0__SRCID__SDMA_PREEMPT = 240
SDMA0_4_0__SRCID__SDMA_VM_HOLE = 242
SDMA0_4_0__SRCID__SDMA_CTXEMPTY = 243
SDMA0_4_0__SRCID__SDMA_DOORBELL_INVALID = 244
SDMA0_4_0__SRCID__SDMA_FROZEN = 245
SDMA0_4_0__SRCID__SDMA_POLL_TIMEOUT = 246
SDMA0_4_0__SRCID__SDMA_SRBMWRITE = 247
SDMA0_5_0__SRCID__SDMA_ATOMIC_RTN_DONE = 217
SDMA0_5_0__SRCID__SDMA_ATOMIC_TIMEOUT = 218
SDMA0_5_0__SRCID__SDMA_IB_PREEMPT = 219
SDMA0_5_0__SRCID__SDMA_ECC = 220
SDMA0_5_0__SRCID__SDMA_PAGE_FAULT = 221
SDMA0_5_0__SRCID__SDMA_PAGE_NULL = 222
SDMA0_5_0__SRCID__SDMA_XNACK = 223
SDMA0_5_0__SRCID__SDMA_TRAP = 224
SDMA0_5_0__SRCID__SDMA_SEM_INCOMPLETE_TIMEOUT = 225
SDMA0_5_0__SRCID__SDMA_SEM_WAIT_FAIL_TIMEOUT = 226
SDMA0_5_0__SRCID__SDMA_SRAM_ECC = 228
SDMA0_5_0__SRCID__SDMA_PREEMPT = 240
SDMA0_5_0__SRCID__SDMA_VM_HOLE = 242
SDMA0_5_0__SRCID__SDMA_CTXEMPTY = 243
SDMA0_5_0__SRCID__SDMA_DOORBELL_INVALID = 244
SDMA0_5_0__SRCID__SDMA_FROZEN = 245
SDMA0_5_0__SRCID__SDMA_POLL_TIMEOUT = 246
SDMA0_5_0__SRCID__SDMA_SRBMWRITE = 247
NV_MAILBOX_POLL_ACK_TIMEDOUT = 500
NV_MAILBOX_POLL_MSG_TIMEDOUT = 15000
NV_MAILBOX_POLL_FLR_TIMEDOUT = 10000
NV_MAILBOX_POLL_MSG_REP_MAX = 11
mmMAILBOX_CONTROL = 0xE5E
NV_MAIBOX_CONTROL_TRN_OFFSET_BYTE = (mmMAILBOX_CONTROL * 4)
NV_MAIBOX_CONTROL_RCV_OFFSET_BYTE = (NV_MAIBOX_CONTROL_TRN_OFFSET_BYTE + 1)
mmMAILBOX_MSGBUF_TRN_DW0 = 0xE56
mmMAILBOX_MSGBUF_TRN_DW1 = 0xE57
mmMAILBOX_MSGBUF_TRN_DW2 = 0xE58
mmMAILBOX_MSGBUF_TRN_DW3 = 0xE59
mmMAILBOX_MSGBUF_RCV_DW0 = 0xE5A
mmMAILBOX_MSGBUF_RCV_DW1 = 0xE5B
mmMAILBOX_MSGBUF_RCV_DW2 = 0xE5C
mmMAILBOX_MSGBUF_RCV_DW3 = 0xE5D
mmMAILBOX_INT_CNTL = 0xE5F
AMDGPU_SRIOV_CAPS_SRIOV_VBIOS = (1 << 0)
AMDGPU_SRIOV_CAPS_ENABLE_IOV = (1 << 1)
AMDGPU_SRIOV_CAPS_IS_VF = (1 << 2)
AMDGPU_PASSTHROUGH_MODE = (1 << 3)
AMDGPU_SRIOV_CAPS_RUNTIME = (1 << 4)
AMDGPU_VF_MMIO_ACCESS_PROTECT = (1 << 5)
AMDGPU_RLCG_GC_WRITE_LEGACY = (0x8 << 28)
AMDGPU_RLCG_GC_WRITE = (0x0 << 28)
AMDGPU_RLCG_GC_READ = (0x1 << 28)
AMDGPU_RLCG_MMHUB_WRITE = (0x2 << 28)
AMDGPU_RLCG_VFGATE_DISABLED = 0x4000000
AMDGPU_RLCG_WRONG_OPERATION_TYPE = 0x2000000
AMDGPU_RLCG_REG_NOT_IN_RANGE = 0x1000000
AMDGPU_RLCG_SCRATCH1_ADDRESS_MASK = 0xFFFFF
AMDGPU_RLCG_SCRATCH1_ERROR_MASK = 0xF000000
mmRCC_IOV_FUNC_IDENTIFIER = 0xDE5
mmBIF_IOV_FUNC_IDENTIFIER = 0x1503
AMDGPU_VF2PF_UPDATE_MAX_RETRY_LIMIT = 2
AMDGPU_SRIOV_CRIT_DATA_SIGNATURE = "INDA"
AMDGPU_SRIOV_CRIT_DATA_SIG_LEN = 4
AMDGPU_VF_ERROR_ENTRY_SIZE = 16
AMDGIM_DATAEXCHANGE_OFFSET = (64 * 1024)
AMDGIM_GET_STRUCTURE_RESERVED_SIZE = lambda total,u8,u16,u32,u64: (total - (((u8)+3) / 4 + ((u16)+1) / 2 + (u32) + (u64)*2)) # type: ignore
AMDGPU_VIRT_CAPS_LIST = lambda X: X(AMDGPU_VIRT_CAP_POWER_LIMIT) # type: ignore
amdgpu_sriov_fullaccess = lambda adev: (amdgpu_sriov_vf((adev)) and not amdgpu_sriov_runtime((adev))) # type: ignore
amdgpu_sriov_rlcg_error_report_enabled = lambda adev: (amdgpu_sriov_reg_indirect_mmhub(adev) or amdgpu_sriov_reg_indirect_gc(adev)) # type: ignore
amdgpu_sriov_multi_vf_mode = lambda adev: (amdgpu_sriov_vf(adev) and not amdgpu_sriov_is_pp_one_vf(adev)) # type: ignore