autogen: explicit types (#15679)

This commit is contained in:
Christopher Milan 2026-04-13 13:54:39 -07:00 committed by GitHub
commit d83707ec29
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
52 changed files with 54651 additions and 64614 deletions

View file

@ -1,7 +1,6 @@
import ctypes, struct, subprocess, tempfile, unittest
from typing import Annotated
from tinygrad.helpers import OSX, WIN
from tinygrad.runtime.support.c import DLL, record, init_records
from tinygrad.runtime.support.c import DLL, record, Field
from tinygrad.runtime.support import c
from tinygrad.runtime.support.autogen import gen
@ -14,10 +13,9 @@ class TestC(unittest.TestCase):
def test_struct_array_init(self):
@record
class Foo:
class Foo(c.Struct):
SIZE = 12
a: Annotated[ctypes.c_int * 3, 0]
init_records()
a = Field(ctypes.c_int * 3, 0)
f = Foo((1,2,3))
assert f.a[0] == 1
@ -30,11 +28,10 @@ class TestC(unittest.TestCase):
def test_field_ranges(self):
@record
class Foo:
class Foo(c.Struct):
SIZE = 2
s: Annotated[ctypes.c_int8, 0]
u: Annotated[ctypes.c_uint8, 1]
init_records()
s = Field(ctypes.c_int8, 0)
u = Field(ctypes.c_uint8, 1)
f = Foo()
f.s = -1
@ -45,10 +42,9 @@ class TestC(unittest.TestCase):
# this syntax is inherited from ctypes, but it seems a bit nonsensical?
def test_voidp_none(self):
@record
class Foo:
class Foo(c.Struct):
SIZE = 8
p: Annotated[ctypes.c_void_p, 0]
init_records()
p = Field(ctypes.c_void_p, 0)
f = Foo(None)
assert f.p is None
@ -59,13 +55,12 @@ class TestC(unittest.TestCase):
def test_packed_struct(self):
@record
class Baz:
class Baz(c.Struct):
SIZE = 8
a: Annotated[ctypes.c_uint, 0, 30]
b: Annotated[ctypes.c_uint, 3, 30, 6]
c: Annotated[ctypes.c_uint, 7, 2, 4]
d: Annotated[ctypes.c_uint, 7, 2, 6]
init_records()
a = Field(ctypes.c_uint, 0, 30)
b = Field(ctypes.c_uint, 3, 30, 6)
c = Field(ctypes.c_uint, 7, 2, 4)
d = Field(ctypes.c_uint, 7, 2, 6)
b = Baz(0x3AAADEAD, 0xBEEF, 1, 0)
assert b.a == 0x3AAADEAD
@ -81,13 +76,12 @@ class TestC(unittest.TestCase):
def test_packed_struct_interop(self):
@record
class Baz:
class Baz(c.Struct):
SIZE = 8
a: Annotated[ctypes.c_int, 0, 30]
b: Annotated[ctypes.c_int, 3, 30, 6]
c: Annotated[ctypes.c_int, 7, 2, 4]
d: Annotated[ctypes.c_int, 7, 2, 6]
init_records()
a = Field(ctypes.c_int, 0, 30)
b = Field(ctypes.c_int, 3, 30, 6)
c = Field(ctypes.c_int, 7, 2, 4)
d = Field(ctypes.c_int, 7, 2, 6)
src = '''
struct __attribute__((packed)) baz {
@ -103,24 +97,23 @@ class TestC(unittest.TestCase):
'''
dll = self.compile(src)
b = Baz(0xAA000, 0x00BB0, 0, 1)
@dll.bind
@dll.bind(ctypes.c_int, Baz)
def test(x:Baz) -> ctypes.c_int: ...
self.assertEqual(test(b), b.a + b.b + b.c + b.d)
# https://github.com/python/cpython/issues/90914
def test_bitfield_interop(self):
@record
class Baz:
class Baz(c.Struct):
SIZE = 1
a: Annotated[ctypes.c_bool, 0, 1, 0]
b: Annotated[ctypes.c_bool, 0, 1, 1]
c: Annotated[ctypes.c_bool, 0, 1, 2]
d: Annotated[ctypes.c_bool, 0, 1, 3]
e: Annotated[ctypes.c_bool, 0, 1, 4]
f: Annotated[ctypes.c_bool, 0, 1, 5]
g: Annotated[ctypes.c_bool, 0, 1, 6]
h: Annotated[ctypes.c_bool, 0, 1, 7]
init_records()
a = Field(ctypes.c_bool, 0, 1, 0)
b = Field(ctypes.c_bool, 0, 1, 1)
c = Field(ctypes.c_bool, 0, 1, 2)
d = Field(ctypes.c_bool, 0, 1, 3)
e = Field(ctypes.c_bool, 0, 1, 4)
f = Field(ctypes.c_bool, 0, 1, 5)
g = Field(ctypes.c_bool, 0, 1, 6)
h = Field(ctypes.c_bool, 0, 1, 7)
src = '''#include <stdbool.h>
struct baz {
bool a:1, b:1, c:1, d:1, e:1, f:1, g:1, h:1;
@ -131,23 +124,22 @@ class TestC(unittest.TestCase):
}
'''
dll = self.compile(src)
@dll.bind
@dll.bind(ctypes.c_int, Baz)
def test(x:Baz) -> ctypes.c_int: ...
for i in range(8): self.assertEqual(test(Baz(*(j==i for j in range(8)))), i==2)
def test_struct_interop(self):
@record
class Baz:
class Baz(c.Struct):
SIZE = 32
a: Annotated[ctypes.c_int, 0]
b: Annotated[ctypes.c_int, 4]
c: Annotated[ctypes.c_int, 8]
d: Annotated[ctypes.c_int, 12]
e: Annotated[ctypes.c_int, 16]
f: Annotated[ctypes.c_int, 20]
g: Annotated[ctypes.c_int, 24]
h: Annotated[ctypes.c_int, 28]
init_records()
a = Field(ctypes.c_int, 0)
b = Field(ctypes.c_int, 4)
c = Field(ctypes.c_int, 8)
d = Field(ctypes.c_int, 12)
e = Field(ctypes.c_int, 16)
f = Field(ctypes.c_int, 20)
g = Field(ctypes.c_int, 24)
h = Field(ctypes.c_int, 28)
src = '''#include <stdio.h>
struct baz {
int a, b, c, d, e, f, g, h;
@ -158,16 +150,15 @@ class TestC(unittest.TestCase):
}
'''
dll = self.compile(src)
@dll.bind
@dll.bind(Baz, Baz)
def test(x:Baz) -> Baz: ...
self.assertEqual(bytes(test(Baz(*range(8)))), struct.pack("8i", *range(7, -1, -1)))
def test_aos_interop(self):
@record
class Item:
class Item(c.Struct):
SIZE = 4
val: Annotated[ctypes.c_int, 0]
init_records()
val = Field(ctypes.c_int, 0)
src = """
struct item { int val; };
int test(struct item arr[3]) {
@ -177,16 +168,15 @@ class TestC(unittest.TestCase):
}
"""
dll = self.compile(src)
@dll.bind
@dll.bind(ctypes.c_int, Item * 3)
def test(arr:(Item * 3)) -> ctypes.c_int: ...
self.assertEqual(test((Item * 3)(Item(10), Item(20), Item(30))), 60)
def test_soa_interop(self):
@record
class Row:
class Row(c.Struct):
SIZE = 16
data: Annotated[ctypes.c_int * 3, 0]
init_records()
data = Field(ctypes.c_int * 3, 0)
src = """
struct row { int data[3]; };
struct row test(struct row x) {
@ -194,7 +184,7 @@ class TestC(unittest.TestCase):
}
"""
dll = self.compile(src)
@dll.bind
@dll.bind(Row, Row)
def test(x:Row) -> Row: ...
r = test(Row((ctypes.c_int * 3)(10, 20, 30)))
self.assertIsInstance(r, Row)
@ -204,10 +194,9 @@ class TestC(unittest.TestCase):
def test_soa_ptr_interop(self):
@record
class Row:
class Row(c.Struct):
SIZE = 8
data: Annotated[c.POINTER[ctypes.c_int], 0]
init_records()
data = Field(c.POINTER[ctypes.c_int], 0)
src = """
struct row { int *data; };
int test(struct row x) {
@ -215,21 +204,20 @@ class TestC(unittest.TestCase):
}
"""
dll = self.compile(src)
@dll.bind
@dll.bind(ctypes.c_int, Row)
def test(x:Row) -> ctypes.c_int: ...
assert test(Row((ctypes.c_int * 3)(10, 20, 30))) == 60
def test_nested_struct_interop(self):
@record
class Inner:
class Inner(c.Struct):
SIZE = 4
a: Annotated[ctypes.c_int, 0]
a = Field(ctypes.c_int, 0)
@record
class Outer:
class Outer(c.Struct):
SIZE = 8
inner: Annotated[Inner, 0]
b: Annotated[ctypes.c_int, 4]
init_records()
inner = Field(Inner, 0)
b = Field(ctypes.c_int, 4)
src = """
struct i { int a; };
struct o { struct i i; int b; };
@ -238,7 +226,7 @@ class TestC(unittest.TestCase):
}
"""
dll = self.compile(src)
@dll.bind
@dll.bind(Outer, Outer)
def test(x:Outer) -> Outer: ...
o = test(Outer(Inner(10), 20))
self.assertEqual(o.inner.a, 20)
@ -246,11 +234,10 @@ class TestC(unittest.TestCase):
def test_struct_pointer_interop(self):
@record
class Foo:
class Foo(c.Struct):
SIZE = 8
a: Annotated[ctypes.c_int, 0]
b: Annotated[ctypes.c_int, 4]
init_records()
a = Field(ctypes.c_int, 0)
b = Field(ctypes.c_int, 4)
src = """
struct foo { int a, b; };
struct foo *test(struct foo *f) {
@ -261,7 +248,7 @@ class TestC(unittest.TestCase):
}
"""
dll = self.compile(src)
@dll.bind
@dll.bind(ctypes.POINTER(Foo), ctypes.POINTER(Foo))
def test(f:ctypes.POINTER(Foo)) -> ctypes.POINTER(Foo): ...
inp = ctypes.pointer(Foo(10, 20))
out = test(inp)
@ -273,16 +260,15 @@ class TestC(unittest.TestCase):
# Mimics how mesa.struct_lp_build_tgsi_params.mask is used
from tinygrad.runtime.support.c import POINTER
@record
class Inner:
class Inner(c.Struct):
SIZE = 8
value: Annotated[ctypes.c_int, 0]
flag: Annotated[ctypes.c_int, 4]
value = Field(ctypes.c_int, 0)
flag = Field(ctypes.c_int, 4)
@record
class Outer:
class Outer(c.Struct):
SIZE = 16
x: Annotated[ctypes.c_int, 0]
inner_ptr: Annotated[POINTER[Inner], 8]
init_records()
x = Field(ctypes.c_int, 0)
inner_ptr = Field(POINTER[Inner], 8)
src = """
struct inner { int value; int flag; };
@ -292,7 +278,7 @@ class TestC(unittest.TestCase):
}
"""
dll = self.compile(src)
@dll.bind
@dll.bind(ctypes.c_int, ctypes.POINTER(Inner))
def test(p:POINTER[Inner]) -> ctypes.c_int: ...
inner = Inner(value=42, flag=10)
@ -306,17 +292,16 @@ class TestC(unittest.TestCase):
# This causes the pointed-to object to be garbage collected, leading to use-after-free.
from tinygrad.runtime.support.c import POINTER
@record
class MaskContext:
class MaskContext(c.Struct):
SIZE = 16
value: Annotated[ctypes.c_int, 0]
initialized: Annotated[ctypes.c_int, 4]
ptr: Annotated[ctypes.c_void_p, 8]
value = Field(ctypes.c_int, 0)
initialized = Field(ctypes.c_int, 4)
ptr = Field(ctypes.c_void_p, 8)
@record
class Params:
class Params(c.Struct):
SIZE = 16
x: Annotated[ctypes.c_int, 0]
mask: Annotated[POINTER[MaskContext], 8]
init_records()
x = Field(ctypes.c_int, 0)
mask = Field(POINTER[MaskContext], 8)
src = """
struct mask_ctx { int value; int initialized; void *ptr; };
@ -324,9 +309,9 @@ class TestC(unittest.TestCase):
int mask_end(struct mask_ctx *m) { return m->value + m->initialized; }
"""
dll = self.compile(src)
@dll.bind
@dll.bind(None, ctypes.POINTER(MaskContext), ctypes.c_int)
def mask_begin(m:POINTER[MaskContext], val:ctypes.c_int) -> None: ...
@dll.bind
@dll.bind(ctypes.c_int, ctypes.POINTER(MaskContext))
def mask_end(m:POINTER[MaskContext]) -> ctypes.c_int: ...
# When MaskContext() is created inline, it gets garbage collected after the pointer
@ -444,6 +429,10 @@ typedef struct
self.assertTrue(hasattr(rect, 'height'))
self.assertTrue(hasattr(rect, 'color'))
p2 = Point(10, 20)
self.assertEqual(p2.x, 10)
self.assertEqual(p2.y, 20)
def test_struct_ordering(self):
namespace = self.run_gen("""
struct A;

File diff suppressed because one or more lines are too long

View file

@ -1,139 +1,42 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
class union_PM4_MES_TYPE_3_HEADER(c.Struct): SIZE = 0
class enum_mes_set_resources_queue_type_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_type__mes_set_resources__kernel_interface_queue_kiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__kernel_interface_queue_kiq', 0)
queue_type__mes_set_resources__hsa_interface_queue_hiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_interface_queue_hiq', 1)
queue_type__mes_set_resources__hsa_debug_interface_queue = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_debug_interface_queue', 4)
class struct_pm4_mes_set_resources(c.Struct): SIZE = 0
class struct_pm4_mes_runlist(c.Struct): SIZE = 0
class struct_pm4_mes_map_process(c.Struct): SIZE = 0
class struct_PM4_MES_MAP_PROCESS_VM(c.Struct): SIZE = 0
class enum_mes_map_queues_queue_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_sel__mes_map_queues__map_to_specified_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_specified_queue_slots_vi', 0)
queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi', 1)
class enum_mes_map_queues_queue_type_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_type__mes_map_queues__normal_compute_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__normal_compute_vi', 0)
queue_type__mes_map_queues__debug_interface_queue_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__debug_interface_queue_vi', 1)
queue_type__mes_map_queues__normal_latency_static_queue_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__normal_latency_static_queue_vi', 2)
queue_type__mes_map_queues__low_latency_static_queue_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__low_latency_static_queue_vi', 3)
class enum_mes_map_queues_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
engine_sel__mes_map_queues__compute_vi = enum_mes_map_queues_engine_sel_enum.define('engine_sel__mes_map_queues__compute_vi', 0)
engine_sel__mes_map_queues__sdma0_vi = enum_mes_map_queues_engine_sel_enum.define('engine_sel__mes_map_queues__sdma0_vi', 2)
engine_sel__mes_map_queues__sdma1_vi = enum_mes_map_queues_engine_sel_enum.define('engine_sel__mes_map_queues__sdma1_vi', 3)
class enum_mes_map_queues_extended_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
extended_engine_sel__mes_map_queues__legacy_engine_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__legacy_engine_sel', 0)
extended_engine_sel__mes_map_queues__sdma0_to_7_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__sdma0_to_7_sel', 1)
extended_engine_sel__mes_map_queues__sdma8_to_15_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__sdma8_to_15_sel', 2)
class struct_pm4_mes_map_queues(c.Struct): SIZE = 0
class enum_mes_query_status_interrupt_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
interrupt_sel__mes_query_status__completion_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__completion_status', 0)
interrupt_sel__mes_query_status__process_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__process_status', 1)
interrupt_sel__mes_query_status__queue_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__queue_status', 2)
class enum_mes_query_status_command_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
command__mes_query_status__interrupt_only = enum_mes_query_status_command_enum.define('command__mes_query_status__interrupt_only', 0)
command__mes_query_status__fence_only_immediate = enum_mes_query_status_command_enum.define('command__mes_query_status__fence_only_immediate', 1)
command__mes_query_status__fence_only_after_write_ack = enum_mes_query_status_command_enum.define('command__mes_query_status__fence_only_after_write_ack', 2)
command__mes_query_status__fence_wait_for_write_ack_send_interrupt = enum_mes_query_status_command_enum.define('command__mes_query_status__fence_wait_for_write_ack_send_interrupt', 3)
class enum_mes_query_status_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
engine_sel__mes_query_status__compute = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__compute', 0)
engine_sel__mes_query_status__sdma0_queue = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__sdma0_queue', 2)
engine_sel__mes_query_status__sdma1_queue = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__sdma1_queue', 3)
class struct_pm4_mes_query_status(c.Struct): SIZE = 0
class enum_mes_unmap_queues_action_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
action__mes_unmap_queues__preempt_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__preempt_queues', 0)
action__mes_unmap_queues__reset_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__reset_queues', 1)
action__mes_unmap_queues__disable_process_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__disable_process_queues', 2)
action__mes_unmap_queues__reserved = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__reserved', 3)
class enum_mes_unmap_queues_queue_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_sel__mes_unmap_queues__perform_request_on_specified_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__perform_request_on_specified_queues', 0)
queue_sel__mes_unmap_queues__perform_request_on_pasid_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__perform_request_on_pasid_queues', 1)
queue_sel__mes_unmap_queues__unmap_all_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__unmap_all_queues', 2)
queue_sel__mes_unmap_queues__unmap_all_non_static_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__unmap_all_non_static_queues', 3)
class enum_mes_unmap_queues_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
engine_sel__mes_unmap_queues__compute = enum_mes_unmap_queues_engine_sel_enum.define('engine_sel__mes_unmap_queues__compute', 0)
engine_sel__mes_unmap_queues__sdma0 = enum_mes_unmap_queues_engine_sel_enum.define('engine_sel__mes_unmap_queues__sdma0', 2)
engine_sel__mes_unmap_queues__sdmal = enum_mes_unmap_queues_engine_sel_enum.define('engine_sel__mes_unmap_queues__sdmal', 3)
class enum_mes_unmap_queues_extended_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
extended_engine_sel__mes_unmap_queues__legacy_engine_sel = enum_mes_unmap_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_unmap_queues__legacy_engine_sel', 0)
extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel = enum_mes_unmap_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel', 1)
class struct_pm4_mes_unmap_queues(c.Struct): SIZE = 0
class enum_mec_release_mem_event_index_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
event_index__mec_release_mem__end_of_pipe = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__end_of_pipe', 5)
event_index__mec_release_mem__shader_done = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__shader_done', 6)
class enum_mec_release_mem_cache_policy_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
cache_policy__mec_release_mem__lru = enum_mec_release_mem_cache_policy_enum.define('cache_policy__mec_release_mem__lru', 0)
cache_policy__mec_release_mem__stream = enum_mec_release_mem_cache_policy_enum.define('cache_policy__mec_release_mem__stream', 1)
class enum_mec_release_mem_pq_exe_status_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
pq_exe_status__mec_release_mem__default = enum_mec_release_mem_pq_exe_status_enum.define('pq_exe_status__mec_release_mem__default', 0)
pq_exe_status__mec_release_mem__phase_update = enum_mec_release_mem_pq_exe_status_enum.define('pq_exe_status__mec_release_mem__phase_update', 1)
class enum_mec_release_mem_dst_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
dst_sel__mec_release_mem__memory_controller = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__memory_controller', 0)
dst_sel__mec_release_mem__tc_l2 = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__tc_l2', 1)
dst_sel__mec_release_mem__queue_write_pointer_register = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__queue_write_pointer_register', 2)
dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit', 3)
class enum_mec_release_mem_int_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
int_sel__mec_release_mem__none = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__none', 0)
int_sel__mec_release_mem__send_interrupt_only = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__send_interrupt_only', 1)
int_sel__mec_release_mem__send_interrupt_after_write_confirm = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__send_interrupt_after_write_confirm', 2)
int_sel__mec_release_mem__send_data_after_write_confirm = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__send_data_after_write_confirm', 3)
int_sel__mec_release_mem__unconditionally_send_int_ctxid = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__unconditionally_send_int_ctxid', 4)
int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare', 5)
int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare', 6)
class enum_mec_release_mem_data_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
data_sel__mec_release_mem__none = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__none', 0)
data_sel__mec_release_mem__send_32_bit_low = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_32_bit_low', 1)
data_sel__mec_release_mem__send_64_bit_data = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_64_bit_data', 2)
data_sel__mec_release_mem__send_gpu_clock_counter = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_gpu_clock_counter', 3)
data_sel__mec_release_mem__send_cp_perfcounter_hi_lo = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_cp_perfcounter_hi_lo', 4)
data_sel__mec_release_mem__store_gds_data_to_memory = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__store_gds_data_to_memory', 5)
class struct_pm4_mec_release_mem(c.Struct): SIZE = 0
class enum_WRITE_DATA_dst_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
dst_sel___write_data__mem_mapped_register = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__mem_mapped_register', 0)
dst_sel___write_data__tc_l2 = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__tc_l2', 2)
dst_sel___write_data__gds = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__gds', 3)
dst_sel___write_data__memory = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__memory', 5)
dst_sel___write_data__memory_mapped_adc_persistent_state = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__memory_mapped_adc_persistent_state', 6)
class enum_WRITE_DATA_addr_incr_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
addr_incr___write_data__increment_address = enum_WRITE_DATA_addr_incr_enum.define('addr_incr___write_data__increment_address', 0)
addr_incr___write_data__do_not_increment_address = enum_WRITE_DATA_addr_incr_enum.define('addr_incr___write_data__do_not_increment_address', 1)
class enum_WRITE_DATA_wr_confirm_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
wr_confirm___write_data__do_not_wait_for_write_confirmation = enum_WRITE_DATA_wr_confirm_enum.define('wr_confirm___write_data__do_not_wait_for_write_confirmation', 0)
wr_confirm___write_data__wait_for_write_confirmation = enum_WRITE_DATA_wr_confirm_enum.define('wr_confirm___write_data__wait_for_write_confirmation', 1)
class enum_WRITE_DATA_cache_policy_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
cache_policy___write_data__lru = enum_WRITE_DATA_cache_policy_enum.define('cache_policy___write_data__lru', 0)
cache_policy___write_data__stream = enum_WRITE_DATA_cache_policy_enum.define('cache_policy___write_data__stream', 1)
class struct_pm4_mec_write_data_mmio(c.Struct): SIZE = 0
class _anonenum0(Annotated[int, ctypes.c_uint32], c.Enum): pass
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum0.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
c.init_records()
class union_PM4_MES_TYPE_3_HEADER(c.Struct): pass
enum_mes_set_resources_queue_type_enum: dict[int, str] = {(queue_type__mes_set_resources__kernel_interface_queue_kiq:=0): 'queue_type__mes_set_resources__kernel_interface_queue_kiq', (queue_type__mes_set_resources__hsa_interface_queue_hiq:=1): 'queue_type__mes_set_resources__hsa_interface_queue_hiq', (queue_type__mes_set_resources__hsa_debug_interface_queue:=4): 'queue_type__mes_set_resources__hsa_debug_interface_queue'}
class struct_pm4_mes_set_resources(c.Struct): pass
class struct_pm4_mes_runlist(c.Struct): pass
class struct_pm4_mes_map_process(c.Struct): pass
class struct_PM4_MES_MAP_PROCESS_VM(c.Struct): pass
enum_mes_map_queues_queue_sel_enum: dict[int, str] = {(queue_sel__mes_map_queues__map_to_specified_queue_slots_vi:=0): 'queue_sel__mes_map_queues__map_to_specified_queue_slots_vi', (queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi:=1): 'queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi'}
enum_mes_map_queues_queue_type_enum: dict[int, str] = {(queue_type__mes_map_queues__normal_compute_vi:=0): 'queue_type__mes_map_queues__normal_compute_vi', (queue_type__mes_map_queues__debug_interface_queue_vi:=1): 'queue_type__mes_map_queues__debug_interface_queue_vi', (queue_type__mes_map_queues__normal_latency_static_queue_vi:=2): 'queue_type__mes_map_queues__normal_latency_static_queue_vi', (queue_type__mes_map_queues__low_latency_static_queue_vi:=3): 'queue_type__mes_map_queues__low_latency_static_queue_vi'}
enum_mes_map_queues_engine_sel_enum: dict[int, str] = {(engine_sel__mes_map_queues__compute_vi:=0): 'engine_sel__mes_map_queues__compute_vi', (engine_sel__mes_map_queues__sdma0_vi:=2): 'engine_sel__mes_map_queues__sdma0_vi', (engine_sel__mes_map_queues__sdma1_vi:=3): 'engine_sel__mes_map_queues__sdma1_vi'}
enum_mes_map_queues_extended_engine_sel_enum: dict[int, str] = {(extended_engine_sel__mes_map_queues__legacy_engine_sel:=0): 'extended_engine_sel__mes_map_queues__legacy_engine_sel', (extended_engine_sel__mes_map_queues__sdma0_to_7_sel:=1): 'extended_engine_sel__mes_map_queues__sdma0_to_7_sel', (extended_engine_sel__mes_map_queues__sdma8_to_15_sel:=2): 'extended_engine_sel__mes_map_queues__sdma8_to_15_sel'}
class struct_pm4_mes_map_queues(c.Struct): pass
enum_mes_query_status_interrupt_sel_enum: dict[int, str] = {(interrupt_sel__mes_query_status__completion_status:=0): 'interrupt_sel__mes_query_status__completion_status', (interrupt_sel__mes_query_status__process_status:=1): 'interrupt_sel__mes_query_status__process_status', (interrupt_sel__mes_query_status__queue_status:=2): 'interrupt_sel__mes_query_status__queue_status'}
enum_mes_query_status_command_enum: dict[int, str] = {(command__mes_query_status__interrupt_only:=0): 'command__mes_query_status__interrupt_only', (command__mes_query_status__fence_only_immediate:=1): 'command__mes_query_status__fence_only_immediate', (command__mes_query_status__fence_only_after_write_ack:=2): 'command__mes_query_status__fence_only_after_write_ack', (command__mes_query_status__fence_wait_for_write_ack_send_interrupt:=3): 'command__mes_query_status__fence_wait_for_write_ack_send_interrupt'}
enum_mes_query_status_engine_sel_enum: dict[int, str] = {(engine_sel__mes_query_status__compute:=0): 'engine_sel__mes_query_status__compute', (engine_sel__mes_query_status__sdma0_queue:=2): 'engine_sel__mes_query_status__sdma0_queue', (engine_sel__mes_query_status__sdma1_queue:=3): 'engine_sel__mes_query_status__sdma1_queue'}
class struct_pm4_mes_query_status(c.Struct): pass
enum_mes_unmap_queues_action_enum: dict[int, str] = {(action__mes_unmap_queues__preempt_queues:=0): 'action__mes_unmap_queues__preempt_queues', (action__mes_unmap_queues__reset_queues:=1): 'action__mes_unmap_queues__reset_queues', (action__mes_unmap_queues__disable_process_queues:=2): 'action__mes_unmap_queues__disable_process_queues', (action__mes_unmap_queues__reserved:=3): 'action__mes_unmap_queues__reserved'}
enum_mes_unmap_queues_queue_sel_enum: dict[int, str] = {(queue_sel__mes_unmap_queues__perform_request_on_specified_queues:=0): 'queue_sel__mes_unmap_queues__perform_request_on_specified_queues', (queue_sel__mes_unmap_queues__perform_request_on_pasid_queues:=1): 'queue_sel__mes_unmap_queues__perform_request_on_pasid_queues', (queue_sel__mes_unmap_queues__unmap_all_queues:=2): 'queue_sel__mes_unmap_queues__unmap_all_queues', (queue_sel__mes_unmap_queues__unmap_all_non_static_queues:=3): 'queue_sel__mes_unmap_queues__unmap_all_non_static_queues'}
enum_mes_unmap_queues_engine_sel_enum: dict[int, str] = {(engine_sel__mes_unmap_queues__compute:=0): 'engine_sel__mes_unmap_queues__compute', (engine_sel__mes_unmap_queues__sdma0:=2): 'engine_sel__mes_unmap_queues__sdma0', (engine_sel__mes_unmap_queues__sdmal:=3): 'engine_sel__mes_unmap_queues__sdmal'}
enum_mes_unmap_queues_extended_engine_sel_enum: dict[int, str] = {(extended_engine_sel__mes_unmap_queues__legacy_engine_sel:=0): 'extended_engine_sel__mes_unmap_queues__legacy_engine_sel', (extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel:=1): 'extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel'}
class struct_pm4_mes_unmap_queues(c.Struct): pass
enum_mec_release_mem_event_index_enum: dict[int, str] = {(event_index__mec_release_mem__end_of_pipe:=5): 'event_index__mec_release_mem__end_of_pipe', (event_index__mec_release_mem__shader_done:=6): 'event_index__mec_release_mem__shader_done'}
enum_mec_release_mem_cache_policy_enum: dict[int, str] = {(cache_policy__mec_release_mem__lru:=0): 'cache_policy__mec_release_mem__lru', (cache_policy__mec_release_mem__stream:=1): 'cache_policy__mec_release_mem__stream'}
enum_mec_release_mem_pq_exe_status_enum: dict[int, str] = {(pq_exe_status__mec_release_mem__default:=0): 'pq_exe_status__mec_release_mem__default', (pq_exe_status__mec_release_mem__phase_update:=1): 'pq_exe_status__mec_release_mem__phase_update'}
enum_mec_release_mem_dst_sel_enum: dict[int, str] = {(dst_sel__mec_release_mem__memory_controller:=0): 'dst_sel__mec_release_mem__memory_controller', (dst_sel__mec_release_mem__tc_l2:=1): 'dst_sel__mec_release_mem__tc_l2', (dst_sel__mec_release_mem__queue_write_pointer_register:=2): 'dst_sel__mec_release_mem__queue_write_pointer_register', (dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit:=3): 'dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit'}
enum_mec_release_mem_int_sel_enum: dict[int, str] = {(int_sel__mec_release_mem__none:=0): 'int_sel__mec_release_mem__none', (int_sel__mec_release_mem__send_interrupt_only:=1): 'int_sel__mec_release_mem__send_interrupt_only', (int_sel__mec_release_mem__send_interrupt_after_write_confirm:=2): 'int_sel__mec_release_mem__send_interrupt_after_write_confirm', (int_sel__mec_release_mem__send_data_after_write_confirm:=3): 'int_sel__mec_release_mem__send_data_after_write_confirm', (int_sel__mec_release_mem__unconditionally_send_int_ctxid:=4): 'int_sel__mec_release_mem__unconditionally_send_int_ctxid', (int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare:=5): 'int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare', (int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare:=6): 'int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare'}
enum_mec_release_mem_data_sel_enum: dict[int, str] = {(data_sel__mec_release_mem__none:=0): 'data_sel__mec_release_mem__none', (data_sel__mec_release_mem__send_32_bit_low:=1): 'data_sel__mec_release_mem__send_32_bit_low', (data_sel__mec_release_mem__send_64_bit_data:=2): 'data_sel__mec_release_mem__send_64_bit_data', (data_sel__mec_release_mem__send_gpu_clock_counter:=3): 'data_sel__mec_release_mem__send_gpu_clock_counter', (data_sel__mec_release_mem__send_cp_perfcounter_hi_lo:=4): 'data_sel__mec_release_mem__send_cp_perfcounter_hi_lo', (data_sel__mec_release_mem__store_gds_data_to_memory:=5): 'data_sel__mec_release_mem__store_gds_data_to_memory'}
class struct_pm4_mec_release_mem(c.Struct): pass
enum_WRITE_DATA_dst_sel_enum: dict[int, str] = {(dst_sel___write_data__mem_mapped_register:=0): 'dst_sel___write_data__mem_mapped_register', (dst_sel___write_data__tc_l2:=2): 'dst_sel___write_data__tc_l2', (dst_sel___write_data__gds:=3): 'dst_sel___write_data__gds', (dst_sel___write_data__memory:=5): 'dst_sel___write_data__memory', (dst_sel___write_data__memory_mapped_adc_persistent_state:=6): 'dst_sel___write_data__memory_mapped_adc_persistent_state'}
enum_WRITE_DATA_addr_incr_enum: dict[int, str] = {(addr_incr___write_data__increment_address:=0): 'addr_incr___write_data__increment_address', (addr_incr___write_data__do_not_increment_address:=1): 'addr_incr___write_data__do_not_increment_address'}
enum_WRITE_DATA_wr_confirm_enum: dict[int, str] = {(wr_confirm___write_data__do_not_wait_for_write_confirmation:=0): 'wr_confirm___write_data__do_not_wait_for_write_confirmation', (wr_confirm___write_data__wait_for_write_confirmation:=1): 'wr_confirm___write_data__wait_for_write_confirmation'}
enum_WRITE_DATA_cache_policy_enum: dict[int, str] = {(cache_policy___write_data__lru:=0): 'cache_policy___write_data__lru', (cache_policy___write_data__stream:=1): 'cache_policy___write_data__stream'}
class struct_pm4_mec_write_data_mmio(c.Struct): pass
_anonenum0: dict[int, str] = {(CACHE_FLUSH_AND_INV_TS_EVENT:=20): 'CACHE_FLUSH_AND_INV_TS_EVENT'}
PACKET_TYPE0 = 0 # type: ignore
PACKET_TYPE1 = 1 # type: ignore
PACKET_TYPE2 = 2 # type: ignore

View file

@ -1,139 +1,42 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
class union_PM4_MES_TYPE_3_HEADER(c.Struct): SIZE = 0
class enum_mes_set_resources_queue_type_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_type__mes_set_resources__kernel_interface_queue_kiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__kernel_interface_queue_kiq', 0)
queue_type__mes_set_resources__hsa_interface_queue_hiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_interface_queue_hiq', 1)
queue_type__mes_set_resources__hsa_debug_interface_queue = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_debug_interface_queue', 4)
class struct_pm4_mes_set_resources(c.Struct): SIZE = 0
class struct_pm4_mes_runlist(c.Struct): SIZE = 0
class struct_pm4_mes_map_process(c.Struct): SIZE = 0
class struct_PM4_MES_MAP_PROCESS_VM(c.Struct): SIZE = 0
class enum_mes_map_queues_queue_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_sel__mes_map_queues__map_to_specified_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_specified_queue_slots_vi', 0)
queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi', 1)
class enum_mes_map_queues_queue_type_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_type__mes_map_queues__normal_compute_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__normal_compute_vi', 0)
queue_type__mes_map_queues__debug_interface_queue_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__debug_interface_queue_vi', 1)
queue_type__mes_map_queues__normal_latency_static_queue_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__normal_latency_static_queue_vi', 2)
queue_type__mes_map_queues__low_latency_static_queue_vi = enum_mes_map_queues_queue_type_enum.define('queue_type__mes_map_queues__low_latency_static_queue_vi', 3)
class enum_mes_map_queues_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
engine_sel__mes_map_queues__compute_vi = enum_mes_map_queues_engine_sel_enum.define('engine_sel__mes_map_queues__compute_vi', 0)
engine_sel__mes_map_queues__sdma0_vi = enum_mes_map_queues_engine_sel_enum.define('engine_sel__mes_map_queues__sdma0_vi', 2)
engine_sel__mes_map_queues__sdma1_vi = enum_mes_map_queues_engine_sel_enum.define('engine_sel__mes_map_queues__sdma1_vi', 3)
class enum_mes_map_queues_extended_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
extended_engine_sel__mes_map_queues__legacy_engine_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__legacy_engine_sel', 0)
extended_engine_sel__mes_map_queues__sdma0_to_7_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__sdma0_to_7_sel', 1)
extended_engine_sel__mes_map_queues__sdma8_to_15_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__sdma8_to_15_sel', 2)
class struct_pm4_mes_map_queues(c.Struct): SIZE = 0
class enum_mes_query_status_interrupt_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
interrupt_sel__mes_query_status__completion_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__completion_status', 0)
interrupt_sel__mes_query_status__process_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__process_status', 1)
interrupt_sel__mes_query_status__queue_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__queue_status', 2)
class enum_mes_query_status_command_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
command__mes_query_status__interrupt_only = enum_mes_query_status_command_enum.define('command__mes_query_status__interrupt_only', 0)
command__mes_query_status__fence_only_immediate = enum_mes_query_status_command_enum.define('command__mes_query_status__fence_only_immediate', 1)
command__mes_query_status__fence_only_after_write_ack = enum_mes_query_status_command_enum.define('command__mes_query_status__fence_only_after_write_ack', 2)
command__mes_query_status__fence_wait_for_write_ack_send_interrupt = enum_mes_query_status_command_enum.define('command__mes_query_status__fence_wait_for_write_ack_send_interrupt', 3)
class enum_mes_query_status_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
engine_sel__mes_query_status__compute = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__compute', 0)
engine_sel__mes_query_status__sdma0_queue = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__sdma0_queue', 2)
engine_sel__mes_query_status__sdma1_queue = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__sdma1_queue', 3)
class struct_pm4_mes_query_status(c.Struct): SIZE = 0
class enum_mes_unmap_queues_action_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
action__mes_unmap_queues__preempt_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__preempt_queues', 0)
action__mes_unmap_queues__reset_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__reset_queues', 1)
action__mes_unmap_queues__disable_process_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__disable_process_queues', 2)
action__mes_unmap_queues__reserved = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__reserved', 3)
class enum_mes_unmap_queues_queue_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
queue_sel__mes_unmap_queues__perform_request_on_specified_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__perform_request_on_specified_queues', 0)
queue_sel__mes_unmap_queues__perform_request_on_pasid_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__perform_request_on_pasid_queues', 1)
queue_sel__mes_unmap_queues__unmap_all_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__unmap_all_queues', 2)
queue_sel__mes_unmap_queues__unmap_all_non_static_queues = enum_mes_unmap_queues_queue_sel_enum.define('queue_sel__mes_unmap_queues__unmap_all_non_static_queues', 3)
class enum_mes_unmap_queues_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
engine_sel__mes_unmap_queues__compute = enum_mes_unmap_queues_engine_sel_enum.define('engine_sel__mes_unmap_queues__compute', 0)
engine_sel__mes_unmap_queues__sdma0 = enum_mes_unmap_queues_engine_sel_enum.define('engine_sel__mes_unmap_queues__sdma0', 2)
engine_sel__mes_unmap_queues__sdmal = enum_mes_unmap_queues_engine_sel_enum.define('engine_sel__mes_unmap_queues__sdmal', 3)
class enum_mes_unmap_queues_extended_engine_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
extended_engine_sel__mes_unmap_queues__legacy_engine_sel = enum_mes_unmap_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_unmap_queues__legacy_engine_sel', 0)
extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel = enum_mes_unmap_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel', 1)
class struct_pm4_mes_unmap_queues(c.Struct): SIZE = 0
class enum_mec_release_mem_event_index_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
event_index__mec_release_mem__end_of_pipe = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__end_of_pipe', 5)
event_index__mec_release_mem__shader_done = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__shader_done', 6)
class enum_mec_release_mem_cache_policy_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
cache_policy__mec_release_mem__lru = enum_mec_release_mem_cache_policy_enum.define('cache_policy__mec_release_mem__lru', 0)
cache_policy__mec_release_mem__stream = enum_mec_release_mem_cache_policy_enum.define('cache_policy__mec_release_mem__stream', 1)
class enum_mec_release_mem_pq_exe_status_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
pq_exe_status__mec_release_mem__default = enum_mec_release_mem_pq_exe_status_enum.define('pq_exe_status__mec_release_mem__default', 0)
pq_exe_status__mec_release_mem__phase_update = enum_mec_release_mem_pq_exe_status_enum.define('pq_exe_status__mec_release_mem__phase_update', 1)
class enum_mec_release_mem_dst_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
dst_sel__mec_release_mem__memory_controller = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__memory_controller', 0)
dst_sel__mec_release_mem__tc_l2 = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__tc_l2', 1)
dst_sel__mec_release_mem__queue_write_pointer_register = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__queue_write_pointer_register', 2)
dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit = enum_mec_release_mem_dst_sel_enum.define('dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit', 3)
class enum_mec_release_mem_int_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
int_sel__mec_release_mem__none = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__none', 0)
int_sel__mec_release_mem__send_interrupt_only = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__send_interrupt_only', 1)
int_sel__mec_release_mem__send_interrupt_after_write_confirm = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__send_interrupt_after_write_confirm', 2)
int_sel__mec_release_mem__send_data_after_write_confirm = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__send_data_after_write_confirm', 3)
int_sel__mec_release_mem__unconditionally_send_int_ctxid = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__unconditionally_send_int_ctxid', 4)
int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare', 5)
int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare = enum_mec_release_mem_int_sel_enum.define('int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare', 6)
class enum_mec_release_mem_data_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
data_sel__mec_release_mem__none = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__none', 0)
data_sel__mec_release_mem__send_32_bit_low = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_32_bit_low', 1)
data_sel__mec_release_mem__send_64_bit_data = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_64_bit_data', 2)
data_sel__mec_release_mem__send_gpu_clock_counter = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_gpu_clock_counter', 3)
data_sel__mec_release_mem__send_cp_perfcounter_hi_lo = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__send_cp_perfcounter_hi_lo', 4)
data_sel__mec_release_mem__store_gds_data_to_memory = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__store_gds_data_to_memory', 5)
class struct_pm4_mec_release_mem(c.Struct): SIZE = 0
class enum_WRITE_DATA_dst_sel_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
dst_sel___write_data__mem_mapped_register = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__mem_mapped_register', 0)
dst_sel___write_data__tc_l2 = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__tc_l2', 2)
dst_sel___write_data__gds = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__gds', 3)
dst_sel___write_data__memory = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__memory', 5)
dst_sel___write_data__memory_mapped_adc_persistent_state = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__memory_mapped_adc_persistent_state', 6)
class enum_WRITE_DATA_addr_incr_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
addr_incr___write_data__increment_address = enum_WRITE_DATA_addr_incr_enum.define('addr_incr___write_data__increment_address', 0)
addr_incr___write_data__do_not_increment_address = enum_WRITE_DATA_addr_incr_enum.define('addr_incr___write_data__do_not_increment_address', 1)
class enum_WRITE_DATA_wr_confirm_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
wr_confirm___write_data__do_not_wait_for_write_confirmation = enum_WRITE_DATA_wr_confirm_enum.define('wr_confirm___write_data__do_not_wait_for_write_confirmation', 0)
wr_confirm___write_data__wait_for_write_confirmation = enum_WRITE_DATA_wr_confirm_enum.define('wr_confirm___write_data__wait_for_write_confirmation', 1)
class enum_WRITE_DATA_cache_policy_enum(Annotated[int, ctypes.c_uint32], c.Enum): pass
cache_policy___write_data__lru = enum_WRITE_DATA_cache_policy_enum.define('cache_policy___write_data__lru', 0)
cache_policy___write_data__stream = enum_WRITE_DATA_cache_policy_enum.define('cache_policy___write_data__stream', 1)
class struct_pm4_mec_write_data_mmio(c.Struct): SIZE = 0
class _anonenum0(Annotated[int, ctypes.c_uint32], c.Enum): pass
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum0.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
c.init_records()
class union_PM4_MES_TYPE_3_HEADER(c.Struct): pass
enum_mes_set_resources_queue_type_enum: dict[int, str] = {(queue_type__mes_set_resources__kernel_interface_queue_kiq:=0): 'queue_type__mes_set_resources__kernel_interface_queue_kiq', (queue_type__mes_set_resources__hsa_interface_queue_hiq:=1): 'queue_type__mes_set_resources__hsa_interface_queue_hiq', (queue_type__mes_set_resources__hsa_debug_interface_queue:=4): 'queue_type__mes_set_resources__hsa_debug_interface_queue'}
class struct_pm4_mes_set_resources(c.Struct): pass
class struct_pm4_mes_runlist(c.Struct): pass
class struct_pm4_mes_map_process(c.Struct): pass
class struct_PM4_MES_MAP_PROCESS_VM(c.Struct): pass
enum_mes_map_queues_queue_sel_enum: dict[int, str] = {(queue_sel__mes_map_queues__map_to_specified_queue_slots_vi:=0): 'queue_sel__mes_map_queues__map_to_specified_queue_slots_vi', (queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi:=1): 'queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi'}
enum_mes_map_queues_queue_type_enum: dict[int, str] = {(queue_type__mes_map_queues__normal_compute_vi:=0): 'queue_type__mes_map_queues__normal_compute_vi', (queue_type__mes_map_queues__debug_interface_queue_vi:=1): 'queue_type__mes_map_queues__debug_interface_queue_vi', (queue_type__mes_map_queues__normal_latency_static_queue_vi:=2): 'queue_type__mes_map_queues__normal_latency_static_queue_vi', (queue_type__mes_map_queues__low_latency_static_queue_vi:=3): 'queue_type__mes_map_queues__low_latency_static_queue_vi'}
enum_mes_map_queues_engine_sel_enum: dict[int, str] = {(engine_sel__mes_map_queues__compute_vi:=0): 'engine_sel__mes_map_queues__compute_vi', (engine_sel__mes_map_queues__sdma0_vi:=2): 'engine_sel__mes_map_queues__sdma0_vi', (engine_sel__mes_map_queues__sdma1_vi:=3): 'engine_sel__mes_map_queues__sdma1_vi'}
enum_mes_map_queues_extended_engine_sel_enum: dict[int, str] = {(extended_engine_sel__mes_map_queues__legacy_engine_sel:=0): 'extended_engine_sel__mes_map_queues__legacy_engine_sel', (extended_engine_sel__mes_map_queues__sdma0_to_7_sel:=1): 'extended_engine_sel__mes_map_queues__sdma0_to_7_sel', (extended_engine_sel__mes_map_queues__sdma8_to_15_sel:=2): 'extended_engine_sel__mes_map_queues__sdma8_to_15_sel'}
class struct_pm4_mes_map_queues(c.Struct): pass
enum_mes_query_status_interrupt_sel_enum: dict[int, str] = {(interrupt_sel__mes_query_status__completion_status:=0): 'interrupt_sel__mes_query_status__completion_status', (interrupt_sel__mes_query_status__process_status:=1): 'interrupt_sel__mes_query_status__process_status', (interrupt_sel__mes_query_status__queue_status:=2): 'interrupt_sel__mes_query_status__queue_status'}
enum_mes_query_status_command_enum: dict[int, str] = {(command__mes_query_status__interrupt_only:=0): 'command__mes_query_status__interrupt_only', (command__mes_query_status__fence_only_immediate:=1): 'command__mes_query_status__fence_only_immediate', (command__mes_query_status__fence_only_after_write_ack:=2): 'command__mes_query_status__fence_only_after_write_ack', (command__mes_query_status__fence_wait_for_write_ack_send_interrupt:=3): 'command__mes_query_status__fence_wait_for_write_ack_send_interrupt'}
enum_mes_query_status_engine_sel_enum: dict[int, str] = {(engine_sel__mes_query_status__compute:=0): 'engine_sel__mes_query_status__compute', (engine_sel__mes_query_status__sdma0_queue:=2): 'engine_sel__mes_query_status__sdma0_queue', (engine_sel__mes_query_status__sdma1_queue:=3): 'engine_sel__mes_query_status__sdma1_queue'}
class struct_pm4_mes_query_status(c.Struct): pass
enum_mes_unmap_queues_action_enum: dict[int, str] = {(action__mes_unmap_queues__preempt_queues:=0): 'action__mes_unmap_queues__preempt_queues', (action__mes_unmap_queues__reset_queues:=1): 'action__mes_unmap_queues__reset_queues', (action__mes_unmap_queues__disable_process_queues:=2): 'action__mes_unmap_queues__disable_process_queues', (action__mes_unmap_queues__reserved:=3): 'action__mes_unmap_queues__reserved'}
enum_mes_unmap_queues_queue_sel_enum: dict[int, str] = {(queue_sel__mes_unmap_queues__perform_request_on_specified_queues:=0): 'queue_sel__mes_unmap_queues__perform_request_on_specified_queues', (queue_sel__mes_unmap_queues__perform_request_on_pasid_queues:=1): 'queue_sel__mes_unmap_queues__perform_request_on_pasid_queues', (queue_sel__mes_unmap_queues__unmap_all_queues:=2): 'queue_sel__mes_unmap_queues__unmap_all_queues', (queue_sel__mes_unmap_queues__unmap_all_non_static_queues:=3): 'queue_sel__mes_unmap_queues__unmap_all_non_static_queues'}
enum_mes_unmap_queues_engine_sel_enum: dict[int, str] = {(engine_sel__mes_unmap_queues__compute:=0): 'engine_sel__mes_unmap_queues__compute', (engine_sel__mes_unmap_queues__sdma0:=2): 'engine_sel__mes_unmap_queues__sdma0', (engine_sel__mes_unmap_queues__sdmal:=3): 'engine_sel__mes_unmap_queues__sdmal'}
enum_mes_unmap_queues_extended_engine_sel_enum: dict[int, str] = {(extended_engine_sel__mes_unmap_queues__legacy_engine_sel:=0): 'extended_engine_sel__mes_unmap_queues__legacy_engine_sel', (extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel:=1): 'extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel'}
class struct_pm4_mes_unmap_queues(c.Struct): pass
enum_mec_release_mem_event_index_enum: dict[int, str] = {(event_index__mec_release_mem__end_of_pipe:=5): 'event_index__mec_release_mem__end_of_pipe', (event_index__mec_release_mem__shader_done:=6): 'event_index__mec_release_mem__shader_done'}
enum_mec_release_mem_cache_policy_enum: dict[int, str] = {(cache_policy__mec_release_mem__lru:=0): 'cache_policy__mec_release_mem__lru', (cache_policy__mec_release_mem__stream:=1): 'cache_policy__mec_release_mem__stream'}
enum_mec_release_mem_pq_exe_status_enum: dict[int, str] = {(pq_exe_status__mec_release_mem__default:=0): 'pq_exe_status__mec_release_mem__default', (pq_exe_status__mec_release_mem__phase_update:=1): 'pq_exe_status__mec_release_mem__phase_update'}
enum_mec_release_mem_dst_sel_enum: dict[int, str] = {(dst_sel__mec_release_mem__memory_controller:=0): 'dst_sel__mec_release_mem__memory_controller', (dst_sel__mec_release_mem__tc_l2:=1): 'dst_sel__mec_release_mem__tc_l2', (dst_sel__mec_release_mem__queue_write_pointer_register:=2): 'dst_sel__mec_release_mem__queue_write_pointer_register', (dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit:=3): 'dst_sel__mec_release_mem__queue_write_pointer_poll_mask_bit'}
enum_mec_release_mem_int_sel_enum: dict[int, str] = {(int_sel__mec_release_mem__none:=0): 'int_sel__mec_release_mem__none', (int_sel__mec_release_mem__send_interrupt_only:=1): 'int_sel__mec_release_mem__send_interrupt_only', (int_sel__mec_release_mem__send_interrupt_after_write_confirm:=2): 'int_sel__mec_release_mem__send_interrupt_after_write_confirm', (int_sel__mec_release_mem__send_data_after_write_confirm:=3): 'int_sel__mec_release_mem__send_data_after_write_confirm', (int_sel__mec_release_mem__unconditionally_send_int_ctxid:=4): 'int_sel__mec_release_mem__unconditionally_send_int_ctxid', (int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare:=5): 'int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_32_bit_compare', (int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare:=6): 'int_sel__mec_release_mem__conditionally_send_int_ctxid_based_on_64_bit_compare'}
enum_mec_release_mem_data_sel_enum: dict[int, str] = {(data_sel__mec_release_mem__none:=0): 'data_sel__mec_release_mem__none', (data_sel__mec_release_mem__send_32_bit_low:=1): 'data_sel__mec_release_mem__send_32_bit_low', (data_sel__mec_release_mem__send_64_bit_data:=2): 'data_sel__mec_release_mem__send_64_bit_data', (data_sel__mec_release_mem__send_gpu_clock_counter:=3): 'data_sel__mec_release_mem__send_gpu_clock_counter', (data_sel__mec_release_mem__send_cp_perfcounter_hi_lo:=4): 'data_sel__mec_release_mem__send_cp_perfcounter_hi_lo', (data_sel__mec_release_mem__store_gds_data_to_memory:=5): 'data_sel__mec_release_mem__store_gds_data_to_memory'}
class struct_pm4_mec_release_mem(c.Struct): pass
enum_WRITE_DATA_dst_sel_enum: dict[int, str] = {(dst_sel___write_data__mem_mapped_register:=0): 'dst_sel___write_data__mem_mapped_register', (dst_sel___write_data__tc_l2:=2): 'dst_sel___write_data__tc_l2', (dst_sel___write_data__gds:=3): 'dst_sel___write_data__gds', (dst_sel___write_data__memory:=5): 'dst_sel___write_data__memory', (dst_sel___write_data__memory_mapped_adc_persistent_state:=6): 'dst_sel___write_data__memory_mapped_adc_persistent_state'}
enum_WRITE_DATA_addr_incr_enum: dict[int, str] = {(addr_incr___write_data__increment_address:=0): 'addr_incr___write_data__increment_address', (addr_incr___write_data__do_not_increment_address:=1): 'addr_incr___write_data__do_not_increment_address'}
enum_WRITE_DATA_wr_confirm_enum: dict[int, str] = {(wr_confirm___write_data__do_not_wait_for_write_confirmation:=0): 'wr_confirm___write_data__do_not_wait_for_write_confirmation', (wr_confirm___write_data__wait_for_write_confirmation:=1): 'wr_confirm___write_data__wait_for_write_confirmation'}
enum_WRITE_DATA_cache_policy_enum: dict[int, str] = {(cache_policy___write_data__lru:=0): 'cache_policy___write_data__lru', (cache_policy___write_data__stream:=1): 'cache_policy___write_data__stream'}
class struct_pm4_mec_write_data_mmio(c.Struct): pass
_anonenum0: dict[int, str] = {(CACHE_FLUSH_AND_INV_TS_EVENT:=20): 'CACHE_FLUSH_AND_INV_TS_EVENT'}
GFX9_NUM_GFX_RINGS = 1 # type: ignore
GFX9_NUM_COMPUTE_RINGS = 8 # type: ignore
PACKET_TYPE0 = 0 # type: ignore

View file

@ -1,453 +1,515 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG(c.Struct):
SIZE = 28
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4]
PARAMETER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION
PARAMETER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
extra_info: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
extra_info: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('extra_info', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION(c.Struct):
SIZE = 4
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
reserved_0: int
dst_swap: int
reserved_1: int
src_swap: int
reserved_2: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION.register_fields([('reserved_0', ctypes.c_uint32, 0, 16, 0), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_1', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_2', ctypes.c_uint32, 3, 6, 2), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0), ('COUNT_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4), ('PARAMETER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24)])
rocr_AMD_SDMA_PKT_COPY_LINEAR: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG(c.Struct):
SIZE = 52
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8]
SRC_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12]
SRC_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16]
SRC_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28]
DST_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32]
DST_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36]
DST_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40]
RECT_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44]
RECT_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION
SRC_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION
SRC_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION
SRC_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION
DST_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION
DST_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION
DST_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION
RECT_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION
RECT_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 2, 13, 0]
element: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 5]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved: int
element: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved', ctypes.c_uint32, 2, 13, 0), ('element', ctypes.c_uint32, 3, 3, 5), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION(c.Struct):
SIZE = 4
src_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
src_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_x: int
reserved_1: int
src_offset_y: int
reserved_2: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION.register_fields([('src_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('src_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION(c.Struct):
SIZE = 4
src_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
src_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_z: int
reserved_1: int
src_pitch: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION.register_fields([('src_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('src_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION(c.Struct):
SIZE = 4
src_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_slice_pitch: int
reserved_1: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION.register_fields([('src_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_7_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION(c.Struct):
SIZE = 4
dst_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
dst_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_8_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_x: int
reserved_1: int
dst_offset_y: int
reserved_2: int
DW_8_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION.register_fields([('dst_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('dst_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_8_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION(c.Struct):
SIZE = 4
dst_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
dst_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_9_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_z: int
reserved_1: int
dst_pitch: int
DW_9_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION.register_fields([('dst_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('dst_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_9_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION(c.Struct):
SIZE = 4
dst_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_10_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_slice_pitch: int
reserved_1: int
DW_10_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION.register_fields([('dst_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_10_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION(c.Struct):
SIZE = 4
rect_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
rect_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_11_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_x: int
reserved_1: int
rect_y: int
reserved_2: int
DW_11_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION.register_fields([('rect_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('rect_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_11_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION(c.Struct):
SIZE = 4
rect_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 5, 3]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_3: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_12_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_z: int
reserved_1: int
dst_swap: int
reserved_2: int
src_swap: int
reserved_3: int
DW_12_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION.register_fields([('rect_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 5, 3), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_2', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_3', ctypes.c_uint32, 3, 6, 2), ('DW_12_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8), ('SRC_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12), ('SRC_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16), ('SRC_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28), ('DST_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32), ('DST_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36), ('DST_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40), ('RECT_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44), ('RECT_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
sw: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 2]
fillsize: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
sw: int
reserved_0: int
fillsize: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('sw', ctypes.c_uint32, 2, 2, 0), ('reserved_0', ctypes.c_uint32, 2, 12, 2), ('fillsize', ctypes.c_uint32, 3, 2, 6), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12), ('COUNT_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL: TypeAlias = rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG(c.Struct):
SIZE = 16
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12]
HEADER_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
mtype: Annotated[Annotated[int, ctypes.c_uint32], 2, 3, 0]
gcc: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 3]
sys: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
pad1: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
snp: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
gpa: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
l2_policy: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
mtype: int
gcc: int
sys: int
pad1: int
snp: int
gpa: int
l2_policy: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('mtype', ctypes.c_uint32, 2, 3, 0), ('gcc', ctypes.c_uint32, 2, 1, 3), ('sys', ctypes.c_uint32, 2, 1, 4), ('pad1', ctypes.c_uint32, 2, 1, 5), ('snp', ctypes.c_uint32, 2, 1, 6), ('gpa', ctypes.c_uint32, 2, 1, 7), ('l2_policy', ctypes.c_uint32, 3, 2, 0), ('reserved_0', ctypes.c_uint32, 3, 6, 2), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION(c.Struct):
SIZE = 4
data: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
data: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION.register_fields([('data', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_FENCE_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12)])
rocr_AMD_SDMA_PKT_FENCE: TypeAlias = rocr_AMD_SDMA_PKT_FENCE_TAG
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG(c.Struct):
SIZE = 24
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8]
VALUE_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12]
MASK_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16]
DW5_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20]
HEADER_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION
VALUE_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION
MASK_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION
DW5_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 0]
hdp_flush: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 3]
func: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 4]
mem_poll: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
hdp_flush: int
reserved_1: int
func: int
mem_poll: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 0), ('hdp_flush', ctypes.c_uint32, 3, 1, 2), ('reserved_1', ctypes.c_uint32, 3, 1, 3), ('func', ctypes.c_uint32, 3, 3, 4), ('mem_poll', ctypes.c_uint32, 3, 1, 7), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION(c.Struct):
SIZE = 4
value: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
value: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION.register_fields([('value', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION(c.Struct):
SIZE = 4
mask: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
mask: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION.register_fields([('mask', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION(c.Struct):
SIZE = 4
interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
retry_count: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
interval: int
retry_count: int
reserved_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION.register_fields([('interval', ctypes.c_uint32, 0, 16, 0), ('retry_count', ctypes.c_uint32, 2, 12, 0), ('reserved_0', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8), ('VALUE_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12), ('MASK_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16), ('DW5_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20)])
rocr_AMD_SDMA_PKT_POLL_REGMEM: TypeAlias = rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG(c.Struct):
SIZE = 32
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8]
SRC_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12]
SRC_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16]
CMP_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20]
CMP_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24]
LOOP_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28]
HEADER_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION
SRC_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION
SRC_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION
CMP_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION
CMP_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION
LOOP_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
l: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 8, 1]
operation: Annotated[Annotated[int, ctypes.c_uint32], 3, 7, 1]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
l: int
reserved_0: int
operation: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('l', ctypes.c_uint32, 2, 1, 0), ('reserved_0', ctypes.c_uint32, 2, 8, 1), ('operation', ctypes.c_uint32, 3, 7, 1), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION(c.Struct):
SIZE = 4
src_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION.register_fields([('src_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION(c.Struct):
SIZE = 4
cmp_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION.register_fields([('cmp_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION(c.Struct):
SIZE = 4
cmp_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION.register_fields([('cmp_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION(c.Struct):
SIZE = 4
loop_interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 13, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
loop_interval: int
reserved_0: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION.register_fields([('loop_interval', ctypes.c_uint32, 0, 13, 0), ('reserved_0', ctypes.c_uint32, 1, 19, 5), ('DW_7_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_ATOMIC_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8), ('SRC_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12), ('SRC_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16), ('CMP_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20), ('CMP_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24), ('LOOP_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28)])
rocr_AMD_SDMA_PKT_ATOMIC: TypeAlias = rocr_AMD_SDMA_PKT_ATOMIC_TAG
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG(c.Struct):
SIZE = 12
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8]
HEADER_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8)])
rocr_AMD_SDMA_PKT_TIMESTAMP: TypeAlias = rocr_AMD_SDMA_PKT_TIMESTAMP_TAG
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG(c.Struct):
SIZE = 8
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0]
INT_CONTEXT_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4]
HEADER_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION
INT_CONTEXT_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION(c.Struct):
SIZE = 4
int_ctx: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
int_ctx: int
reserved_1: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION.register_fields([('int_ctx', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_1_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TRAP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0), ('INT_CONTEXT_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4)])
rocr_AMD_SDMA_PKT_TRAP: TypeAlias = rocr_AMD_SDMA_PKT_TRAP_TAG
@c.record
class rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG(c.Struct):
SIZE = 24
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 4]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 8]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 12]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 16]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 20]
DW_0_DATA: int
DW_1_DATA: int
DW_2_DATA: int
DW_3_DATA: int
DW_4_DATA: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG.register_fields([('DW_0_DATA', ctypes.c_uint32, 0), ('DW_1_DATA', ctypes.c_uint32, 4), ('DW_2_DATA', ctypes.c_uint32, 8), ('DW_3_DATA', ctypes.c_uint32, 12), ('DW_4_DATA', ctypes.c_uint32, 16), ('DW_5_DATA', ctypes.c_uint32, 20)])
rocr_AMD_SDMA_PKT_HDP_FLUSH: TypeAlias = rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0]
WORD1_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4]
WORD2_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8]
WORD3_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12]
WORD4_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION
WORD1_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION
WORD2_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION
WORD3_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION
WORD4_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION(c.Struct):
SIZE = 4
BaseVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_LO: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION.register_fields([('BaseVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION(c.Struct):
SIZE = 4
BaseVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
GCR_CONTROL_GLI_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
GCR_CONTROL_GL1_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 2]
GCR_CONTROL_GLM_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
GCR_CONTROL_GLM_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
GCR_CONTROL_GLK_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
GCR_CONTROL_GLK_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
GCR_CONTROL_GLV_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 0]
GCR_CONTROL_GL1_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 1]
GCR_CONTROL_GL2_US: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
GCR_CONTROL_GL2_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 3]
GCR_CONTROL_GL2_DISCARD: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 5]
GCR_CONTROL_GL2_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 6]
GCR_CONTROL_GL2_WB: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_HI: int
GCR_CONTROL_GLI_INV: int
GCR_CONTROL_GL1_RANGE: int
GCR_CONTROL_GLM_WB: int
GCR_CONTROL_GLM_INV: int
GCR_CONTROL_GLK_WB: int
GCR_CONTROL_GLK_INV: int
GCR_CONTROL_GLV_INV: int
GCR_CONTROL_GL1_INV: int
GCR_CONTROL_GL2_US: int
GCR_CONTROL_GL2_RANGE: int
GCR_CONTROL_GL2_DISCARD: int
GCR_CONTROL_GL2_INV: int
GCR_CONTROL_GL2_WB: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION.register_fields([('BaseVA_HI', ctypes.c_uint32, 0, 16, 0), ('GCR_CONTROL_GLI_INV', ctypes.c_uint32, 2, 2, 0), ('GCR_CONTROL_GL1_RANGE', ctypes.c_uint32, 2, 2, 2), ('GCR_CONTROL_GLM_WB', ctypes.c_uint32, 2, 1, 4), ('GCR_CONTROL_GLM_INV', ctypes.c_uint32, 2, 1, 5), ('GCR_CONTROL_GLK_WB', ctypes.c_uint32, 2, 1, 6), ('GCR_CONTROL_GLK_INV', ctypes.c_uint32, 2, 1, 7), ('GCR_CONTROL_GLV_INV', ctypes.c_uint32, 3, 1, 0), ('GCR_CONTROL_GL1_INV', ctypes.c_uint32, 3, 1, 1), ('GCR_CONTROL_GL2_US', ctypes.c_uint32, 3, 1, 2), ('GCR_CONTROL_GL2_RANGE', ctypes.c_uint32, 3, 2, 3), ('GCR_CONTROL_GL2_DISCARD', ctypes.c_uint32, 3, 1, 5), ('GCR_CONTROL_GL2_INV', ctypes.c_uint32, 3, 1, 6), ('GCR_CONTROL_GL2_WB', ctypes.c_uint32, 3, 1, 7), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION(c.Struct):
SIZE = 4
GCR_CONTROL_RANGE_IS_PA: Annotated[Annotated[int, ctypes.c_uint32], 0, 1, 0]
GCR_CONTROL_SEQ: Annotated[Annotated[int, ctypes.c_uint32], 0, 2, 1]
LimitVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
GCR_CONTROL_RANGE_IS_PA: int
GCR_CONTROL_SEQ: int
LimitVA_LO: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION.register_fields([('GCR_CONTROL_RANGE_IS_PA', ctypes.c_uint32, 0, 1, 0), ('GCR_CONTROL_SEQ', ctypes.c_uint32, 0, 2, 1), ('LimitVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION(c.Struct):
SIZE = 4
LimitVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
VMID: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
LimitVA_HI: int
VMID: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION.register_fields([('LimitVA_HI', ctypes.c_uint32, 0, 16, 0), ('VMID', ctypes.c_uint32, 3, 4, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_GCR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0), ('WORD1_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4), ('WORD2_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8), ('WORD3_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12), ('WORD4_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16)])
rocr_AMD_SDMA_PKT_GCR: TypeAlias = rocr_AMD_SDMA_PKT_GCR_TAG
c.init_records()
SDMA_OP_COPY = 1 # type: ignore
SDMA_OP_FENCE = 5 # type: ignore
SDMA_OP_TRAP = 6 # type: ignore

View file

@ -1,453 +1,515 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG(c.Struct):
SIZE = 28
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4]
PARAMETER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION
PARAMETER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
extra_info: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
extra_info: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('extra_info', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION(c.Struct):
SIZE = 4
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
reserved_0: int
dst_swap: int
reserved_1: int
src_swap: int
reserved_2: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION.register_fields([('reserved_0', ctypes.c_uint32, 0, 16, 0), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_1', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_2', ctypes.c_uint32, 3, 6, 2), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0), ('COUNT_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4), ('PARAMETER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24)])
rocr_AMD_SDMA_PKT_COPY_LINEAR: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG(c.Struct):
SIZE = 52
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8]
SRC_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12]
SRC_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16]
SRC_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28]
DST_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32]
DST_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36]
DST_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40]
RECT_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44]
RECT_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION
SRC_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION
SRC_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION
SRC_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION
DST_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION
DST_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION
DST_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION
RECT_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION
RECT_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 2, 13, 0]
element: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 5]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved: int
element: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved', ctypes.c_uint32, 2, 13, 0), ('element', ctypes.c_uint32, 3, 3, 5), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION(c.Struct):
SIZE = 4
src_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
src_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_x: int
reserved_1: int
src_offset_y: int
reserved_2: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION.register_fields([('src_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('src_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION(c.Struct):
SIZE = 4
src_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
src_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_z: int
reserved_1: int
src_pitch: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION.register_fields([('src_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('src_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION(c.Struct):
SIZE = 4
src_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_slice_pitch: int
reserved_1: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION.register_fields([('src_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_7_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION(c.Struct):
SIZE = 4
dst_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
dst_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_8_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_x: int
reserved_1: int
dst_offset_y: int
reserved_2: int
DW_8_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION.register_fields([('dst_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('dst_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_8_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION(c.Struct):
SIZE = 4
dst_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
dst_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_9_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_z: int
reserved_1: int
dst_pitch: int
DW_9_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION.register_fields([('dst_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('dst_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_9_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION(c.Struct):
SIZE = 4
dst_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_10_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_slice_pitch: int
reserved_1: int
DW_10_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION.register_fields([('dst_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_10_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION(c.Struct):
SIZE = 4
rect_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
rect_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_11_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_x: int
reserved_1: int
rect_y: int
reserved_2: int
DW_11_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION.register_fields([('rect_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('rect_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_11_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION(c.Struct):
SIZE = 4
rect_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 5, 3]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_3: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_12_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_z: int
reserved_1: int
dst_swap: int
reserved_2: int
src_swap: int
reserved_3: int
DW_12_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION.register_fields([('rect_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 5, 3), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_2', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_3', ctypes.c_uint32, 3, 6, 2), ('DW_12_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8), ('SRC_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12), ('SRC_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16), ('SRC_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28), ('DST_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32), ('DST_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36), ('DST_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40), ('RECT_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44), ('RECT_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
sw: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 2]
fillsize: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
sw: int
reserved_0: int
fillsize: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('sw', ctypes.c_uint32, 2, 2, 0), ('reserved_0', ctypes.c_uint32, 2, 12, 2), ('fillsize', ctypes.c_uint32, 3, 2, 6), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12), ('COUNT_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL: TypeAlias = rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG(c.Struct):
SIZE = 16
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12]
HEADER_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
mtype: Annotated[Annotated[int, ctypes.c_uint32], 2, 3, 0]
gcc: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 3]
sys: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
pad1: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
snp: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
gpa: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
l2_policy: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
mtype: int
gcc: int
sys: int
pad1: int
snp: int
gpa: int
l2_policy: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('mtype', ctypes.c_uint32, 2, 3, 0), ('gcc', ctypes.c_uint32, 2, 1, 3), ('sys', ctypes.c_uint32, 2, 1, 4), ('pad1', ctypes.c_uint32, 2, 1, 5), ('snp', ctypes.c_uint32, 2, 1, 6), ('gpa', ctypes.c_uint32, 2, 1, 7), ('l2_policy', ctypes.c_uint32, 3, 2, 0), ('reserved_0', ctypes.c_uint32, 3, 6, 2), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION(c.Struct):
SIZE = 4
data: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
data: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION.register_fields([('data', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_FENCE_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12)])
rocr_AMD_SDMA_PKT_FENCE: TypeAlias = rocr_AMD_SDMA_PKT_FENCE_TAG
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG(c.Struct):
SIZE = 24
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8]
VALUE_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12]
MASK_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16]
DW5_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20]
HEADER_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION
VALUE_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION
MASK_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION
DW5_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 0]
hdp_flush: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 3]
func: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 4]
mem_poll: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
hdp_flush: int
reserved_1: int
func: int
mem_poll: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 0), ('hdp_flush', ctypes.c_uint32, 3, 1, 2), ('reserved_1', ctypes.c_uint32, 3, 1, 3), ('func', ctypes.c_uint32, 3, 3, 4), ('mem_poll', ctypes.c_uint32, 3, 1, 7), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION(c.Struct):
SIZE = 4
value: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
value: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION.register_fields([('value', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION(c.Struct):
SIZE = 4
mask: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
mask: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION.register_fields([('mask', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION(c.Struct):
SIZE = 4
interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
retry_count: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
interval: int
retry_count: int
reserved_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION.register_fields([('interval', ctypes.c_uint32, 0, 16, 0), ('retry_count', ctypes.c_uint32, 2, 12, 0), ('reserved_0', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8), ('VALUE_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12), ('MASK_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16), ('DW5_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20)])
rocr_AMD_SDMA_PKT_POLL_REGMEM: TypeAlias = rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG(c.Struct):
SIZE = 32
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8]
SRC_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12]
SRC_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16]
CMP_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20]
CMP_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24]
LOOP_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28]
HEADER_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION
SRC_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION
SRC_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION
CMP_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION
CMP_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION
LOOP_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
l: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 8, 1]
operation: Annotated[Annotated[int, ctypes.c_uint32], 3, 7, 1]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
l: int
reserved_0: int
operation: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('l', ctypes.c_uint32, 2, 1, 0), ('reserved_0', ctypes.c_uint32, 2, 8, 1), ('operation', ctypes.c_uint32, 3, 7, 1), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION(c.Struct):
SIZE = 4
src_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION.register_fields([('src_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION(c.Struct):
SIZE = 4
cmp_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION.register_fields([('cmp_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION(c.Struct):
SIZE = 4
cmp_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION.register_fields([('cmp_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION(c.Struct):
SIZE = 4
loop_interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 13, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
loop_interval: int
reserved_0: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION.register_fields([('loop_interval', ctypes.c_uint32, 0, 13, 0), ('reserved_0', ctypes.c_uint32, 1, 19, 5), ('DW_7_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_ATOMIC_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8), ('SRC_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12), ('SRC_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16), ('CMP_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20), ('CMP_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24), ('LOOP_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28)])
rocr_AMD_SDMA_PKT_ATOMIC: TypeAlias = rocr_AMD_SDMA_PKT_ATOMIC_TAG
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG(c.Struct):
SIZE = 12
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8]
HEADER_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8)])
rocr_AMD_SDMA_PKT_TIMESTAMP: TypeAlias = rocr_AMD_SDMA_PKT_TIMESTAMP_TAG
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG(c.Struct):
SIZE = 8
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0]
INT_CONTEXT_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4]
HEADER_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION
INT_CONTEXT_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION(c.Struct):
SIZE = 4
int_ctx: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
int_ctx: int
reserved_1: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION.register_fields([('int_ctx', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_1_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TRAP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0), ('INT_CONTEXT_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4)])
rocr_AMD_SDMA_PKT_TRAP: TypeAlias = rocr_AMD_SDMA_PKT_TRAP_TAG
@c.record
class rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG(c.Struct):
SIZE = 24
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 4]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 8]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 12]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 16]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 20]
DW_0_DATA: int
DW_1_DATA: int
DW_2_DATA: int
DW_3_DATA: int
DW_4_DATA: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG.register_fields([('DW_0_DATA', ctypes.c_uint32, 0), ('DW_1_DATA', ctypes.c_uint32, 4), ('DW_2_DATA', ctypes.c_uint32, 8), ('DW_3_DATA', ctypes.c_uint32, 12), ('DW_4_DATA', ctypes.c_uint32, 16), ('DW_5_DATA', ctypes.c_uint32, 20)])
rocr_AMD_SDMA_PKT_HDP_FLUSH: TypeAlias = rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0]
WORD1_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4]
WORD2_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8]
WORD3_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12]
WORD4_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION
WORD1_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION
WORD2_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION
WORD3_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION
WORD4_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION(c.Struct):
SIZE = 4
BaseVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_LO: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION.register_fields([('BaseVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION(c.Struct):
SIZE = 4
BaseVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
GCR_CONTROL_GLI_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
GCR_CONTROL_GL1_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 2]
GCR_CONTROL_GLM_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
GCR_CONTROL_GLM_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
GCR_CONTROL_GLK_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
GCR_CONTROL_GLK_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
GCR_CONTROL_GLV_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 0]
GCR_CONTROL_GL1_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 1]
GCR_CONTROL_GL2_US: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
GCR_CONTROL_GL2_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 3]
GCR_CONTROL_GL2_DISCARD: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 5]
GCR_CONTROL_GL2_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 6]
GCR_CONTROL_GL2_WB: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_HI: int
GCR_CONTROL_GLI_INV: int
GCR_CONTROL_GL1_RANGE: int
GCR_CONTROL_GLM_WB: int
GCR_CONTROL_GLM_INV: int
GCR_CONTROL_GLK_WB: int
GCR_CONTROL_GLK_INV: int
GCR_CONTROL_GLV_INV: int
GCR_CONTROL_GL1_INV: int
GCR_CONTROL_GL2_US: int
GCR_CONTROL_GL2_RANGE: int
GCR_CONTROL_GL2_DISCARD: int
GCR_CONTROL_GL2_INV: int
GCR_CONTROL_GL2_WB: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION.register_fields([('BaseVA_HI', ctypes.c_uint32, 0, 16, 0), ('GCR_CONTROL_GLI_INV', ctypes.c_uint32, 2, 2, 0), ('GCR_CONTROL_GL1_RANGE', ctypes.c_uint32, 2, 2, 2), ('GCR_CONTROL_GLM_WB', ctypes.c_uint32, 2, 1, 4), ('GCR_CONTROL_GLM_INV', ctypes.c_uint32, 2, 1, 5), ('GCR_CONTROL_GLK_WB', ctypes.c_uint32, 2, 1, 6), ('GCR_CONTROL_GLK_INV', ctypes.c_uint32, 2, 1, 7), ('GCR_CONTROL_GLV_INV', ctypes.c_uint32, 3, 1, 0), ('GCR_CONTROL_GL1_INV', ctypes.c_uint32, 3, 1, 1), ('GCR_CONTROL_GL2_US', ctypes.c_uint32, 3, 1, 2), ('GCR_CONTROL_GL2_RANGE', ctypes.c_uint32, 3, 2, 3), ('GCR_CONTROL_GL2_DISCARD', ctypes.c_uint32, 3, 1, 5), ('GCR_CONTROL_GL2_INV', ctypes.c_uint32, 3, 1, 6), ('GCR_CONTROL_GL2_WB', ctypes.c_uint32, 3, 1, 7), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION(c.Struct):
SIZE = 4
GCR_CONTROL_RANGE_IS_PA: Annotated[Annotated[int, ctypes.c_uint32], 0, 1, 0]
GCR_CONTROL_SEQ: Annotated[Annotated[int, ctypes.c_uint32], 0, 2, 1]
LimitVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
GCR_CONTROL_RANGE_IS_PA: int
GCR_CONTROL_SEQ: int
LimitVA_LO: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION.register_fields([('GCR_CONTROL_RANGE_IS_PA', ctypes.c_uint32, 0, 1, 0), ('GCR_CONTROL_SEQ', ctypes.c_uint32, 0, 2, 1), ('LimitVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION(c.Struct):
SIZE = 4
LimitVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
VMID: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
LimitVA_HI: int
VMID: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION.register_fields([('LimitVA_HI', ctypes.c_uint32, 0, 16, 0), ('VMID', ctypes.c_uint32, 3, 4, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_GCR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0), ('WORD1_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4), ('WORD2_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8), ('WORD3_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12), ('WORD4_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16)])
rocr_AMD_SDMA_PKT_GCR: TypeAlias = rocr_AMD_SDMA_PKT_GCR_TAG
c.init_records()
SDMA_OP_COPY = 1 # type: ignore
SDMA_OP_FENCE = 5 # type: ignore
SDMA_OP_TRAP = 6 # type: ignore

View file

@ -1,453 +1,515 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG(c.Struct):
SIZE = 28
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4]
PARAMETER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION
PARAMETER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
extra_info: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
extra_info: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('extra_info', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION(c.Struct):
SIZE = 4
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
reserved_0: int
dst_swap: int
reserved_1: int
src_swap: int
reserved_2: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION.register_fields([('reserved_0', ctypes.c_uint32, 0, 16, 0), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_1', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_2', ctypes.c_uint32, 3, 6, 2), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0), ('COUNT_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4), ('PARAMETER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24)])
rocr_AMD_SDMA_PKT_COPY_LINEAR: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG(c.Struct):
SIZE = 52
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8]
SRC_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12]
SRC_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16]
SRC_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28]
DST_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32]
DST_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36]
DST_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40]
RECT_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44]
RECT_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION
SRC_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION
SRC_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION
SRC_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION
DST_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION
DST_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION
DST_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION
RECT_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION
RECT_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 2, 13, 0]
element: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 5]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved: int
element: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved', ctypes.c_uint32, 2, 13, 0), ('element', ctypes.c_uint32, 3, 3, 5), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION(c.Struct):
SIZE = 4
src_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
src_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_x: int
reserved_1: int
src_offset_y: int
reserved_2: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION.register_fields([('src_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('src_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION(c.Struct):
SIZE = 4
src_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
src_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_z: int
reserved_1: int
src_pitch: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION.register_fields([('src_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('src_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION(c.Struct):
SIZE = 4
src_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_slice_pitch: int
reserved_1: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION.register_fields([('src_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_7_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION(c.Struct):
SIZE = 4
dst_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
dst_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_8_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_x: int
reserved_1: int
dst_offset_y: int
reserved_2: int
DW_8_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION.register_fields([('dst_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('dst_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_8_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION(c.Struct):
SIZE = 4
dst_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
dst_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_9_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_z: int
reserved_1: int
dst_pitch: int
DW_9_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION.register_fields([('dst_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('dst_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_9_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION(c.Struct):
SIZE = 4
dst_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_10_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_slice_pitch: int
reserved_1: int
DW_10_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION.register_fields([('dst_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_10_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION(c.Struct):
SIZE = 4
rect_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
rect_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_11_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_x: int
reserved_1: int
rect_y: int
reserved_2: int
DW_11_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION.register_fields([('rect_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('rect_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_11_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION(c.Struct):
SIZE = 4
rect_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 5, 3]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_3: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_12_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_z: int
reserved_1: int
dst_swap: int
reserved_2: int
src_swap: int
reserved_3: int
DW_12_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION.register_fields([('rect_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 5, 3), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_2', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_3', ctypes.c_uint32, 3, 6, 2), ('DW_12_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8), ('SRC_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12), ('SRC_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16), ('SRC_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28), ('DST_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32), ('DST_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36), ('DST_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40), ('RECT_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44), ('RECT_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
sw: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 2]
fillsize: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
sw: int
reserved_0: int
fillsize: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('sw', ctypes.c_uint32, 2, 2, 0), ('reserved_0', ctypes.c_uint32, 2, 12, 2), ('fillsize', ctypes.c_uint32, 3, 2, 6), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12), ('COUNT_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL: TypeAlias = rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG(c.Struct):
SIZE = 16
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12]
HEADER_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
mtype: Annotated[Annotated[int, ctypes.c_uint32], 2, 3, 0]
gcc: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 3]
sys: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
pad1: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
snp: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
gpa: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
l2_policy: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
mtype: int
gcc: int
sys: int
pad1: int
snp: int
gpa: int
l2_policy: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('mtype', ctypes.c_uint32, 2, 3, 0), ('gcc', ctypes.c_uint32, 2, 1, 3), ('sys', ctypes.c_uint32, 2, 1, 4), ('pad1', ctypes.c_uint32, 2, 1, 5), ('snp', ctypes.c_uint32, 2, 1, 6), ('gpa', ctypes.c_uint32, 2, 1, 7), ('l2_policy', ctypes.c_uint32, 3, 2, 0), ('reserved_0', ctypes.c_uint32, 3, 6, 2), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION(c.Struct):
SIZE = 4
data: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
data: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION.register_fields([('data', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_FENCE_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12)])
rocr_AMD_SDMA_PKT_FENCE: TypeAlias = rocr_AMD_SDMA_PKT_FENCE_TAG
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG(c.Struct):
SIZE = 24
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8]
VALUE_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12]
MASK_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16]
DW5_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20]
HEADER_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION
VALUE_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION
MASK_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION
DW5_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 0]
hdp_flush: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 3]
func: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 4]
mem_poll: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
hdp_flush: int
reserved_1: int
func: int
mem_poll: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 0), ('hdp_flush', ctypes.c_uint32, 3, 1, 2), ('reserved_1', ctypes.c_uint32, 3, 1, 3), ('func', ctypes.c_uint32, 3, 3, 4), ('mem_poll', ctypes.c_uint32, 3, 1, 7), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION(c.Struct):
SIZE = 4
value: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
value: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION.register_fields([('value', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION(c.Struct):
SIZE = 4
mask: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
mask: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION.register_fields([('mask', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION(c.Struct):
SIZE = 4
interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
retry_count: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
interval: int
retry_count: int
reserved_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION.register_fields([('interval', ctypes.c_uint32, 0, 16, 0), ('retry_count', ctypes.c_uint32, 2, 12, 0), ('reserved_0', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8), ('VALUE_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12), ('MASK_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16), ('DW5_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20)])
rocr_AMD_SDMA_PKT_POLL_REGMEM: TypeAlias = rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG(c.Struct):
SIZE = 32
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8]
SRC_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12]
SRC_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16]
CMP_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20]
CMP_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24]
LOOP_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28]
HEADER_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION
SRC_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION
SRC_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION
CMP_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION
CMP_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION
LOOP_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
l: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 8, 1]
operation: Annotated[Annotated[int, ctypes.c_uint32], 3, 7, 1]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
l: int
reserved_0: int
operation: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('l', ctypes.c_uint32, 2, 1, 0), ('reserved_0', ctypes.c_uint32, 2, 8, 1), ('operation', ctypes.c_uint32, 3, 7, 1), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION(c.Struct):
SIZE = 4
src_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION.register_fields([('src_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION(c.Struct):
SIZE = 4
cmp_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION.register_fields([('cmp_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION(c.Struct):
SIZE = 4
cmp_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION.register_fields([('cmp_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION(c.Struct):
SIZE = 4
loop_interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 13, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
loop_interval: int
reserved_0: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION.register_fields([('loop_interval', ctypes.c_uint32, 0, 13, 0), ('reserved_0', ctypes.c_uint32, 1, 19, 5), ('DW_7_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_ATOMIC_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8), ('SRC_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12), ('SRC_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16), ('CMP_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20), ('CMP_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24), ('LOOP_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28)])
rocr_AMD_SDMA_PKT_ATOMIC: TypeAlias = rocr_AMD_SDMA_PKT_ATOMIC_TAG
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG(c.Struct):
SIZE = 12
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8]
HEADER_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8)])
rocr_AMD_SDMA_PKT_TIMESTAMP: TypeAlias = rocr_AMD_SDMA_PKT_TIMESTAMP_TAG
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG(c.Struct):
SIZE = 8
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0]
INT_CONTEXT_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4]
HEADER_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION
INT_CONTEXT_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION(c.Struct):
SIZE = 4
int_ctx: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
int_ctx: int
reserved_1: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION.register_fields([('int_ctx', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_1_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TRAP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0), ('INT_CONTEXT_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4)])
rocr_AMD_SDMA_PKT_TRAP: TypeAlias = rocr_AMD_SDMA_PKT_TRAP_TAG
@c.record
class rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG(c.Struct):
SIZE = 24
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 4]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 8]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 12]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 16]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 20]
DW_0_DATA: int
DW_1_DATA: int
DW_2_DATA: int
DW_3_DATA: int
DW_4_DATA: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG.register_fields([('DW_0_DATA', ctypes.c_uint32, 0), ('DW_1_DATA', ctypes.c_uint32, 4), ('DW_2_DATA', ctypes.c_uint32, 8), ('DW_3_DATA', ctypes.c_uint32, 12), ('DW_4_DATA', ctypes.c_uint32, 16), ('DW_5_DATA', ctypes.c_uint32, 20)])
rocr_AMD_SDMA_PKT_HDP_FLUSH: TypeAlias = rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0]
WORD1_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4]
WORD2_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8]
WORD3_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12]
WORD4_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION
WORD1_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION
WORD2_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION
WORD3_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION
WORD4_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION(c.Struct):
SIZE = 4
BaseVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_LO: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION.register_fields([('BaseVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION(c.Struct):
SIZE = 4
BaseVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
GCR_CONTROL_GLI_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
GCR_CONTROL_GL1_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 2]
GCR_CONTROL_GLM_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
GCR_CONTROL_GLM_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
GCR_CONTROL_GLK_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
GCR_CONTROL_GLK_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
GCR_CONTROL_GLV_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 0]
GCR_CONTROL_GL1_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 1]
GCR_CONTROL_GL2_US: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
GCR_CONTROL_GL2_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 3]
GCR_CONTROL_GL2_DISCARD: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 5]
GCR_CONTROL_GL2_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 6]
GCR_CONTROL_GL2_WB: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_HI: int
GCR_CONTROL_GLI_INV: int
GCR_CONTROL_GL1_RANGE: int
GCR_CONTROL_GLM_WB: int
GCR_CONTROL_GLM_INV: int
GCR_CONTROL_GLK_WB: int
GCR_CONTROL_GLK_INV: int
GCR_CONTROL_GLV_INV: int
GCR_CONTROL_GL1_INV: int
GCR_CONTROL_GL2_US: int
GCR_CONTROL_GL2_RANGE: int
GCR_CONTROL_GL2_DISCARD: int
GCR_CONTROL_GL2_INV: int
GCR_CONTROL_GL2_WB: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION.register_fields([('BaseVA_HI', ctypes.c_uint32, 0, 16, 0), ('GCR_CONTROL_GLI_INV', ctypes.c_uint32, 2, 2, 0), ('GCR_CONTROL_GL1_RANGE', ctypes.c_uint32, 2, 2, 2), ('GCR_CONTROL_GLM_WB', ctypes.c_uint32, 2, 1, 4), ('GCR_CONTROL_GLM_INV', ctypes.c_uint32, 2, 1, 5), ('GCR_CONTROL_GLK_WB', ctypes.c_uint32, 2, 1, 6), ('GCR_CONTROL_GLK_INV', ctypes.c_uint32, 2, 1, 7), ('GCR_CONTROL_GLV_INV', ctypes.c_uint32, 3, 1, 0), ('GCR_CONTROL_GL1_INV', ctypes.c_uint32, 3, 1, 1), ('GCR_CONTROL_GL2_US', ctypes.c_uint32, 3, 1, 2), ('GCR_CONTROL_GL2_RANGE', ctypes.c_uint32, 3, 2, 3), ('GCR_CONTROL_GL2_DISCARD', ctypes.c_uint32, 3, 1, 5), ('GCR_CONTROL_GL2_INV', ctypes.c_uint32, 3, 1, 6), ('GCR_CONTROL_GL2_WB', ctypes.c_uint32, 3, 1, 7), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION(c.Struct):
SIZE = 4
GCR_CONTROL_RANGE_IS_PA: Annotated[Annotated[int, ctypes.c_uint32], 0, 1, 0]
GCR_CONTROL_SEQ: Annotated[Annotated[int, ctypes.c_uint32], 0, 2, 1]
LimitVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
GCR_CONTROL_RANGE_IS_PA: int
GCR_CONTROL_SEQ: int
LimitVA_LO: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION.register_fields([('GCR_CONTROL_RANGE_IS_PA', ctypes.c_uint32, 0, 1, 0), ('GCR_CONTROL_SEQ', ctypes.c_uint32, 0, 2, 1), ('LimitVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION(c.Struct):
SIZE = 4
LimitVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
VMID: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
LimitVA_HI: int
VMID: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION.register_fields([('LimitVA_HI', ctypes.c_uint32, 0, 16, 0), ('VMID', ctypes.c_uint32, 3, 4, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_GCR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0), ('WORD1_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4), ('WORD2_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8), ('WORD3_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12), ('WORD4_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16)])
rocr_AMD_SDMA_PKT_GCR: TypeAlias = rocr_AMD_SDMA_PKT_GCR_TAG
c.init_records()
SDMA_OP_COPY = 1 # type: ignore
SDMA_OP_FENCE = 5 # type: ignore
SDMA_OP_TRAP = 6 # type: ignore

File diff suppressed because one or more lines are too long

View file

@ -1,647 +1,344 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
PPSMC_Result: TypeAlias = Annotated[int, ctypes.c_uint32]
PPSMC_MSG: TypeAlias = Annotated[int, ctypes.c_uint32]
class FEATURE_LIST_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
FEATURE_DATA_CALCULATION = FEATURE_LIST_e.define('FEATURE_DATA_CALCULATION', 0)
FEATURE_DPM_FCLK = FEATURE_LIST_e.define('FEATURE_DPM_FCLK', 1)
FEATURE_DPM_GFXCLK = FEATURE_LIST_e.define('FEATURE_DPM_GFXCLK', 2)
FEATURE_DPM_LCLK = FEATURE_LIST_e.define('FEATURE_DPM_LCLK', 3)
FEATURE_DPM_SOCCLK = FEATURE_LIST_e.define('FEATURE_DPM_SOCCLK', 4)
FEATURE_DPM_UCLK = FEATURE_LIST_e.define('FEATURE_DPM_UCLK', 5)
FEATURE_DPM_VCN = FEATURE_LIST_e.define('FEATURE_DPM_VCN', 6)
FEATURE_DPM_XGMI = FEATURE_LIST_e.define('FEATURE_DPM_XGMI', 7)
FEATURE_DS_FCLK = FEATURE_LIST_e.define('FEATURE_DS_FCLK', 8)
FEATURE_DS_GFXCLK = FEATURE_LIST_e.define('FEATURE_DS_GFXCLK', 9)
FEATURE_DS_LCLK = FEATURE_LIST_e.define('FEATURE_DS_LCLK', 10)
FEATURE_DS_MP0CLK = FEATURE_LIST_e.define('FEATURE_DS_MP0CLK', 11)
FEATURE_DS_MP1CLK = FEATURE_LIST_e.define('FEATURE_DS_MP1CLK', 12)
FEATURE_DS_MPIOCLK = FEATURE_LIST_e.define('FEATURE_DS_MPIOCLK', 13)
FEATURE_DS_SOCCLK = FEATURE_LIST_e.define('FEATURE_DS_SOCCLK', 14)
FEATURE_DS_VCN = FEATURE_LIST_e.define('FEATURE_DS_VCN', 15)
FEATURE_APCC_DFLL = FEATURE_LIST_e.define('FEATURE_APCC_DFLL', 16)
FEATURE_APCC_PLUS = FEATURE_LIST_e.define('FEATURE_APCC_PLUS', 17)
FEATURE_PPT = FEATURE_LIST_e.define('FEATURE_PPT', 18)
FEATURE_TDC = FEATURE_LIST_e.define('FEATURE_TDC', 19)
FEATURE_THERMAL = FEATURE_LIST_e.define('FEATURE_THERMAL', 20)
FEATURE_SOC_PCC = FEATURE_LIST_e.define('FEATURE_SOC_PCC', 21)
FEATURE_PROCHOT = FEATURE_LIST_e.define('FEATURE_PROCHOT', 22)
FEATURE_FDD_AID_HBM = FEATURE_LIST_e.define('FEATURE_FDD_AID_HBM', 23)
FEATURE_FDD_AID_SOC = FEATURE_LIST_e.define('FEATURE_FDD_AID_SOC', 24)
FEATURE_FDD_XCD_EDC = FEATURE_LIST_e.define('FEATURE_FDD_XCD_EDC', 25)
FEATURE_FDD_XCD_XVMIN = FEATURE_LIST_e.define('FEATURE_FDD_XCD_XVMIN', 26)
FEATURE_FW_CTF = FEATURE_LIST_e.define('FEATURE_FW_CTF', 27)
FEATURE_SMU_CG = FEATURE_LIST_e.define('FEATURE_SMU_CG', 28)
FEATURE_PSI7 = FEATURE_LIST_e.define('FEATURE_PSI7', 29)
FEATURE_XGMI_PER_LINK_PWR_DOWN = FEATURE_LIST_e.define('FEATURE_XGMI_PER_LINK_PWR_DOWN', 30)
FEATURE_SOC_DC_RTC = FEATURE_LIST_e.define('FEATURE_SOC_DC_RTC', 31)
FEATURE_GFX_DC_RTC = FEATURE_LIST_e.define('FEATURE_GFX_DC_RTC', 32)
FEATURE_DVM_MIN_PSM = FEATURE_LIST_e.define('FEATURE_DVM_MIN_PSM', 33)
FEATURE_PRC = FEATURE_LIST_e.define('FEATURE_PRC', 34)
FEATURE_PSM_SQ_THROTTLER = FEATURE_LIST_e.define('FEATURE_PSM_SQ_THROTTLER', 35)
FEATURE_PIT = FEATURE_LIST_e.define('FEATURE_PIT', 36)
FEATURE_DVO = FEATURE_LIST_e.define('FEATURE_DVO', 37)
FEATURE_XVMINORPSM_CLKSTOP_DS = FEATURE_LIST_e.define('FEATURE_XVMINORPSM_CLKSTOP_DS', 38)
FEATURE_GLOBAL_DPM = FEATURE_LIST_e.define('FEATURE_GLOBAL_DPM', 39)
FEATURE_HROM_EN = FEATURE_LIST_e.define('FEATURE_HROM_EN', 40)
NUM_FEATURES = FEATURE_LIST_e.define('NUM_FEATURES', 41)
class PCIE_LINK_SPEED_INDEX_TABLE_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
PCIE_LINK_SPEED_INDEX_TABLE_RESERVED = PCIE_LINK_SPEED_INDEX_TABLE_e.define('PCIE_LINK_SPEED_INDEX_TABLE_RESERVED', 0)
PCIE_LINK_SPEED_INDEX_TABLE_GEN1 = PCIE_LINK_SPEED_INDEX_TABLE_e.define('PCIE_LINK_SPEED_INDEX_TABLE_GEN1', 1)
PCIE_LINK_SPEED_INDEX_TABLE_GEN2 = PCIE_LINK_SPEED_INDEX_TABLE_e.define('PCIE_LINK_SPEED_INDEX_TABLE_GEN2', 2)
PCIE_LINK_SPEED_INDEX_TABLE_GEN3 = PCIE_LINK_SPEED_INDEX_TABLE_e.define('PCIE_LINK_SPEED_INDEX_TABLE_GEN3', 3)
PCIE_LINK_SPEED_INDEX_TABLE_GEN4 = PCIE_LINK_SPEED_INDEX_TABLE_e.define('PCIE_LINK_SPEED_INDEX_TABLE_GEN4', 4)
PCIE_LINK_SPEED_INDEX_TABLE_GEN5 = PCIE_LINK_SPEED_INDEX_TABLE_e.define('PCIE_LINK_SPEED_INDEX_TABLE_GEN5', 5)
PCIE_LINK_SPEED_INDEX_TABLE_COUNT = PCIE_LINK_SPEED_INDEX_TABLE_e.define('PCIE_LINK_SPEED_INDEX_TABLE_COUNT', 6)
class GFX_GUARDBAND_OFFSET_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
GFX_GUARDBAND_OFFSET_0 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_0', 0)
GFX_GUARDBAND_OFFSET_1 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_1', 1)
GFX_GUARDBAND_OFFSET_2 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_2', 2)
GFX_GUARDBAND_OFFSET_3 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_3', 3)
GFX_GUARDBAND_OFFSET_4 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_4', 4)
GFX_GUARDBAND_OFFSET_5 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_5', 5)
GFX_GUARDBAND_OFFSET_6 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_6', 6)
GFX_GUARDBAND_OFFSET_7 = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_7', 7)
GFX_GUARDBAND_OFFSET_COUNT = GFX_GUARDBAND_OFFSET_e.define('GFX_GUARDBAND_OFFSET_COUNT', 8)
class GFX_DVM_MARGIN_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
GFX_DVM_MARGINHI_0 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_0', 0)
GFX_DVM_MARGINHI_1 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_1', 1)
GFX_DVM_MARGINHI_2 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_2', 2)
GFX_DVM_MARGINHI_3 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_3', 3)
GFX_DVM_MARGINHI_4 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_4', 4)
GFX_DVM_MARGINHI_5 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_5', 5)
GFX_DVM_MARGINHI_6 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_6', 6)
GFX_DVM_MARGINHI_7 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINHI_7', 7)
GFX_DVM_MARGINLO_0 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_0', 8)
GFX_DVM_MARGINLO_1 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_1', 9)
GFX_DVM_MARGINLO_2 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_2', 10)
GFX_DVM_MARGINLO_3 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_3', 11)
GFX_DVM_MARGINLO_4 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_4', 12)
GFX_DVM_MARGINLO_5 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_5', 13)
GFX_DVM_MARGINLO_6 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_6', 14)
GFX_DVM_MARGINLO_7 = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGINLO_7', 15)
GFX_DVM_MARGIN_COUNT = GFX_DVM_MARGIN_e.define('GFX_DVM_MARGIN_COUNT', 16)
class SYSTEM_TEMP_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
SYSTEM_TEMP_UBB_FPGA = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_FPGA', 0)
SYSTEM_TEMP_UBB_FRONT = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_FRONT', 1)
SYSTEM_TEMP_UBB_BACK = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_BACK', 2)
SYSTEM_TEMP_UBB_OAM7 = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_OAM7', 3)
SYSTEM_TEMP_UBB_IBC = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_IBC', 4)
SYSTEM_TEMP_UBB_UFPGA = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_UFPGA', 5)
SYSTEM_TEMP_UBB_OAM1 = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_OAM1', 6)
SYSTEM_TEMP_OAM_0_1_HSC = SYSTEM_TEMP_e.define('SYSTEM_TEMP_OAM_0_1_HSC', 7)
SYSTEM_TEMP_OAM_2_3_HSC = SYSTEM_TEMP_e.define('SYSTEM_TEMP_OAM_2_3_HSC', 8)
SYSTEM_TEMP_OAM_4_5_HSC = SYSTEM_TEMP_e.define('SYSTEM_TEMP_OAM_4_5_HSC', 9)
SYSTEM_TEMP_OAM_6_7_HSC = SYSTEM_TEMP_e.define('SYSTEM_TEMP_OAM_6_7_HSC', 10)
SYSTEM_TEMP_UBB_FPGA_0V72_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_FPGA_0V72_VR', 11)
SYSTEM_TEMP_UBB_FPGA_3V3_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_UBB_FPGA_3V3_VR', 12)
SYSTEM_TEMP_RETIMER_0_1_2_3_1V2_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_RETIMER_0_1_2_3_1V2_VR', 13)
SYSTEM_TEMP_RETIMER_4_5_6_7_1V2_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_RETIMER_4_5_6_7_1V2_VR', 14)
SYSTEM_TEMP_RETIMER_0_1_0V9_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_RETIMER_0_1_0V9_VR', 15)
SYSTEM_TEMP_RETIMER_4_5_0V9_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_RETIMER_4_5_0V9_VR', 16)
SYSTEM_TEMP_RETIMER_2_3_0V9_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_RETIMER_2_3_0V9_VR', 17)
SYSTEM_TEMP_RETIMER_6_7_0V9_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_RETIMER_6_7_0V9_VR', 18)
SYSTEM_TEMP_OAM_0_1_2_3_3V3_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_OAM_0_1_2_3_3V3_VR', 19)
SYSTEM_TEMP_OAM_4_5_6_7_3V3_VR = SYSTEM_TEMP_e.define('SYSTEM_TEMP_OAM_4_5_6_7_3V3_VR', 20)
SYSTEM_TEMP_IBC_HSC = SYSTEM_TEMP_e.define('SYSTEM_TEMP_IBC_HSC', 21)
SYSTEM_TEMP_IBC = SYSTEM_TEMP_e.define('SYSTEM_TEMP_IBC', 22)
SYSTEM_TEMP_MAX_ENTRIES = SYSTEM_TEMP_e.define('SYSTEM_TEMP_MAX_ENTRIES', 32)
class NODE_TEMP_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
NODE_TEMP_RETIMER = NODE_TEMP_e.define('NODE_TEMP_RETIMER', 0)
NODE_TEMP_IBC_TEMP = NODE_TEMP_e.define('NODE_TEMP_IBC_TEMP', 1)
NODE_TEMP_IBC_2_TEMP = NODE_TEMP_e.define('NODE_TEMP_IBC_2_TEMP', 2)
NODE_TEMP_VDD18_VR_TEMP = NODE_TEMP_e.define('NODE_TEMP_VDD18_VR_TEMP', 3)
NODE_TEMP_04_HBM_B_VR_TEMP = NODE_TEMP_e.define('NODE_TEMP_04_HBM_B_VR_TEMP', 4)
NODE_TEMP_04_HBM_D_VR_TEMP = NODE_TEMP_e.define('NODE_TEMP_04_HBM_D_VR_TEMP', 5)
NODE_TEMP_MAX_TEMP_ENTRIES = NODE_TEMP_e.define('NODE_TEMP_MAX_TEMP_ENTRIES', 12)
class SVI_TEMP_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
SVI_VDDCR_VDD0_TEMP = SVI_TEMP_e.define('SVI_VDDCR_VDD0_TEMP', 0)
SVI_VDDCR_VDD1_TEMP = SVI_TEMP_e.define('SVI_VDDCR_VDD1_TEMP', 1)
SVI_VDDCR_VDD2_TEMP = SVI_TEMP_e.define('SVI_VDDCR_VDD2_TEMP', 2)
SVI_VDDCR_VDD3_TEMP = SVI_TEMP_e.define('SVI_VDDCR_VDD3_TEMP', 3)
SVI_VDDCR_SOC_A_TEMP = SVI_TEMP_e.define('SVI_VDDCR_SOC_A_TEMP', 4)
SVI_VDDCR_SOC_C_TEMP = SVI_TEMP_e.define('SVI_VDDCR_SOC_C_TEMP', 5)
SVI_VDDCR_SOCIO_A_TEMP = SVI_TEMP_e.define('SVI_VDDCR_SOCIO_A_TEMP', 6)
SVI_VDDCR_SOCIO_C_TEMP = SVI_TEMP_e.define('SVI_VDDCR_SOCIO_C_TEMP', 7)
SVI_VDD_085_HBM_TEMP = SVI_TEMP_e.define('SVI_VDD_085_HBM_TEMP', 8)
SVI_VDDCR_11_HBM_B_TEMP = SVI_TEMP_e.define('SVI_VDDCR_11_HBM_B_TEMP', 9)
SVI_VDDCR_11_HBM_D_TEMP = SVI_TEMP_e.define('SVI_VDDCR_11_HBM_D_TEMP', 10)
SVI_VDD_USR_TEMP = SVI_TEMP_e.define('SVI_VDD_USR_TEMP', 11)
SVI_VDDIO_11_E32_TEMP = SVI_TEMP_e.define('SVI_VDDIO_11_E32_TEMP', 12)
SVI_MAX_TEMP_ENTRIES = SVI_TEMP_e.define('SVI_MAX_TEMP_ENTRIES', 13)
PPSMC_Result: TypeAlias = ctypes.c_uint32
PPSMC_MSG: TypeAlias = ctypes.c_uint32
FEATURE_LIST_e: dict[int, str] = {(FEATURE_DATA_CALCULATION:=0): 'FEATURE_DATA_CALCULATION', (FEATURE_DPM_FCLK:=1): 'FEATURE_DPM_FCLK', (FEATURE_DPM_GFXCLK:=2): 'FEATURE_DPM_GFXCLK', (FEATURE_DPM_LCLK:=3): 'FEATURE_DPM_LCLK', (FEATURE_DPM_SOCCLK:=4): 'FEATURE_DPM_SOCCLK', (FEATURE_DPM_UCLK:=5): 'FEATURE_DPM_UCLK', (FEATURE_DPM_VCN:=6): 'FEATURE_DPM_VCN', (FEATURE_DPM_XGMI:=7): 'FEATURE_DPM_XGMI', (FEATURE_DS_FCLK:=8): 'FEATURE_DS_FCLK', (FEATURE_DS_GFXCLK:=9): 'FEATURE_DS_GFXCLK', (FEATURE_DS_LCLK:=10): 'FEATURE_DS_LCLK', (FEATURE_DS_MP0CLK:=11): 'FEATURE_DS_MP0CLK', (FEATURE_DS_MP1CLK:=12): 'FEATURE_DS_MP1CLK', (FEATURE_DS_MPIOCLK:=13): 'FEATURE_DS_MPIOCLK', (FEATURE_DS_SOCCLK:=14): 'FEATURE_DS_SOCCLK', (FEATURE_DS_VCN:=15): 'FEATURE_DS_VCN', (FEATURE_APCC_DFLL:=16): 'FEATURE_APCC_DFLL', (FEATURE_APCC_PLUS:=17): 'FEATURE_APCC_PLUS', (FEATURE_PPT:=18): 'FEATURE_PPT', (FEATURE_TDC:=19): 'FEATURE_TDC', (FEATURE_THERMAL:=20): 'FEATURE_THERMAL', (FEATURE_SOC_PCC:=21): 'FEATURE_SOC_PCC', (FEATURE_PROCHOT:=22): 'FEATURE_PROCHOT', (FEATURE_FDD_AID_HBM:=23): 'FEATURE_FDD_AID_HBM', (FEATURE_FDD_AID_SOC:=24): 'FEATURE_FDD_AID_SOC', (FEATURE_FDD_XCD_EDC:=25): 'FEATURE_FDD_XCD_EDC', (FEATURE_FDD_XCD_XVMIN:=26): 'FEATURE_FDD_XCD_XVMIN', (FEATURE_FW_CTF:=27): 'FEATURE_FW_CTF', (FEATURE_SMU_CG:=28): 'FEATURE_SMU_CG', (FEATURE_PSI7:=29): 'FEATURE_PSI7', (FEATURE_XGMI_PER_LINK_PWR_DOWN:=30): 'FEATURE_XGMI_PER_LINK_PWR_DOWN', (FEATURE_SOC_DC_RTC:=31): 'FEATURE_SOC_DC_RTC', (FEATURE_GFX_DC_RTC:=32): 'FEATURE_GFX_DC_RTC', (FEATURE_DVM_MIN_PSM:=33): 'FEATURE_DVM_MIN_PSM', (FEATURE_PRC:=34): 'FEATURE_PRC', (FEATURE_PSM_SQ_THROTTLER:=35): 'FEATURE_PSM_SQ_THROTTLER', (FEATURE_PIT:=36): 'FEATURE_PIT', (FEATURE_DVO:=37): 'FEATURE_DVO', (FEATURE_XVMINORPSM_CLKSTOP_DS:=38): 'FEATURE_XVMINORPSM_CLKSTOP_DS', (FEATURE_GLOBAL_DPM:=39): 'FEATURE_GLOBAL_DPM', (FEATURE_HROM_EN:=40): 'FEATURE_HROM_EN', (NUM_FEATURES:=41): 'NUM_FEATURES'}
PCIE_LINK_SPEED_INDEX_TABLE_e: dict[int, str] = {(PCIE_LINK_SPEED_INDEX_TABLE_RESERVED:=0): 'PCIE_LINK_SPEED_INDEX_TABLE_RESERVED', (PCIE_LINK_SPEED_INDEX_TABLE_GEN1:=1): 'PCIE_LINK_SPEED_INDEX_TABLE_GEN1', (PCIE_LINK_SPEED_INDEX_TABLE_GEN2:=2): 'PCIE_LINK_SPEED_INDEX_TABLE_GEN2', (PCIE_LINK_SPEED_INDEX_TABLE_GEN3:=3): 'PCIE_LINK_SPEED_INDEX_TABLE_GEN3', (PCIE_LINK_SPEED_INDEX_TABLE_GEN4:=4): 'PCIE_LINK_SPEED_INDEX_TABLE_GEN4', (PCIE_LINK_SPEED_INDEX_TABLE_GEN5:=5): 'PCIE_LINK_SPEED_INDEX_TABLE_GEN5', (PCIE_LINK_SPEED_INDEX_TABLE_COUNT:=6): 'PCIE_LINK_SPEED_INDEX_TABLE_COUNT'}
GFX_GUARDBAND_OFFSET_e: dict[int, str] = {(GFX_GUARDBAND_OFFSET_0:=0): 'GFX_GUARDBAND_OFFSET_0', (GFX_GUARDBAND_OFFSET_1:=1): 'GFX_GUARDBAND_OFFSET_1', (GFX_GUARDBAND_OFFSET_2:=2): 'GFX_GUARDBAND_OFFSET_2', (GFX_GUARDBAND_OFFSET_3:=3): 'GFX_GUARDBAND_OFFSET_3', (GFX_GUARDBAND_OFFSET_4:=4): 'GFX_GUARDBAND_OFFSET_4', (GFX_GUARDBAND_OFFSET_5:=5): 'GFX_GUARDBAND_OFFSET_5', (GFX_GUARDBAND_OFFSET_6:=6): 'GFX_GUARDBAND_OFFSET_6', (GFX_GUARDBAND_OFFSET_7:=7): 'GFX_GUARDBAND_OFFSET_7', (GFX_GUARDBAND_OFFSET_COUNT:=8): 'GFX_GUARDBAND_OFFSET_COUNT'}
GFX_DVM_MARGIN_e: dict[int, str] = {(GFX_DVM_MARGINHI_0:=0): 'GFX_DVM_MARGINHI_0', (GFX_DVM_MARGINHI_1:=1): 'GFX_DVM_MARGINHI_1', (GFX_DVM_MARGINHI_2:=2): 'GFX_DVM_MARGINHI_2', (GFX_DVM_MARGINHI_3:=3): 'GFX_DVM_MARGINHI_3', (GFX_DVM_MARGINHI_4:=4): 'GFX_DVM_MARGINHI_4', (GFX_DVM_MARGINHI_5:=5): 'GFX_DVM_MARGINHI_5', (GFX_DVM_MARGINHI_6:=6): 'GFX_DVM_MARGINHI_6', (GFX_DVM_MARGINHI_7:=7): 'GFX_DVM_MARGINHI_7', (GFX_DVM_MARGINLO_0:=8): 'GFX_DVM_MARGINLO_0', (GFX_DVM_MARGINLO_1:=9): 'GFX_DVM_MARGINLO_1', (GFX_DVM_MARGINLO_2:=10): 'GFX_DVM_MARGINLO_2', (GFX_DVM_MARGINLO_3:=11): 'GFX_DVM_MARGINLO_3', (GFX_DVM_MARGINLO_4:=12): 'GFX_DVM_MARGINLO_4', (GFX_DVM_MARGINLO_5:=13): 'GFX_DVM_MARGINLO_5', (GFX_DVM_MARGINLO_6:=14): 'GFX_DVM_MARGINLO_6', (GFX_DVM_MARGINLO_7:=15): 'GFX_DVM_MARGINLO_7', (GFX_DVM_MARGIN_COUNT:=16): 'GFX_DVM_MARGIN_COUNT'}
SYSTEM_TEMP_e: dict[int, str] = {(SYSTEM_TEMP_UBB_FPGA:=0): 'SYSTEM_TEMP_UBB_FPGA', (SYSTEM_TEMP_UBB_FRONT:=1): 'SYSTEM_TEMP_UBB_FRONT', (SYSTEM_TEMP_UBB_BACK:=2): 'SYSTEM_TEMP_UBB_BACK', (SYSTEM_TEMP_UBB_OAM7:=3): 'SYSTEM_TEMP_UBB_OAM7', (SYSTEM_TEMP_UBB_IBC:=4): 'SYSTEM_TEMP_UBB_IBC', (SYSTEM_TEMP_UBB_UFPGA:=5): 'SYSTEM_TEMP_UBB_UFPGA', (SYSTEM_TEMP_UBB_OAM1:=6): 'SYSTEM_TEMP_UBB_OAM1', (SYSTEM_TEMP_OAM_0_1_HSC:=7): 'SYSTEM_TEMP_OAM_0_1_HSC', (SYSTEM_TEMP_OAM_2_3_HSC:=8): 'SYSTEM_TEMP_OAM_2_3_HSC', (SYSTEM_TEMP_OAM_4_5_HSC:=9): 'SYSTEM_TEMP_OAM_4_5_HSC', (SYSTEM_TEMP_OAM_6_7_HSC:=10): 'SYSTEM_TEMP_OAM_6_7_HSC', (SYSTEM_TEMP_UBB_FPGA_0V72_VR:=11): 'SYSTEM_TEMP_UBB_FPGA_0V72_VR', (SYSTEM_TEMP_UBB_FPGA_3V3_VR:=12): 'SYSTEM_TEMP_UBB_FPGA_3V3_VR', (SYSTEM_TEMP_RETIMER_0_1_2_3_1V2_VR:=13): 'SYSTEM_TEMP_RETIMER_0_1_2_3_1V2_VR', (SYSTEM_TEMP_RETIMER_4_5_6_7_1V2_VR:=14): 'SYSTEM_TEMP_RETIMER_4_5_6_7_1V2_VR', (SYSTEM_TEMP_RETIMER_0_1_0V9_VR:=15): 'SYSTEM_TEMP_RETIMER_0_1_0V9_VR', (SYSTEM_TEMP_RETIMER_4_5_0V9_VR:=16): 'SYSTEM_TEMP_RETIMER_4_5_0V9_VR', (SYSTEM_TEMP_RETIMER_2_3_0V9_VR:=17): 'SYSTEM_TEMP_RETIMER_2_3_0V9_VR', (SYSTEM_TEMP_RETIMER_6_7_0V9_VR:=18): 'SYSTEM_TEMP_RETIMER_6_7_0V9_VR', (SYSTEM_TEMP_OAM_0_1_2_3_3V3_VR:=19): 'SYSTEM_TEMP_OAM_0_1_2_3_3V3_VR', (SYSTEM_TEMP_OAM_4_5_6_7_3V3_VR:=20): 'SYSTEM_TEMP_OAM_4_5_6_7_3V3_VR', (SYSTEM_TEMP_IBC_HSC:=21): 'SYSTEM_TEMP_IBC_HSC', (SYSTEM_TEMP_IBC:=22): 'SYSTEM_TEMP_IBC', (SYSTEM_TEMP_MAX_ENTRIES:=32): 'SYSTEM_TEMP_MAX_ENTRIES'}
NODE_TEMP_e: dict[int, str] = {(NODE_TEMP_RETIMER:=0): 'NODE_TEMP_RETIMER', (NODE_TEMP_IBC_TEMP:=1): 'NODE_TEMP_IBC_TEMP', (NODE_TEMP_IBC_2_TEMP:=2): 'NODE_TEMP_IBC_2_TEMP', (NODE_TEMP_VDD18_VR_TEMP:=3): 'NODE_TEMP_VDD18_VR_TEMP', (NODE_TEMP_04_HBM_B_VR_TEMP:=4): 'NODE_TEMP_04_HBM_B_VR_TEMP', (NODE_TEMP_04_HBM_D_VR_TEMP:=5): 'NODE_TEMP_04_HBM_D_VR_TEMP', (NODE_TEMP_MAX_TEMP_ENTRIES:=12): 'NODE_TEMP_MAX_TEMP_ENTRIES'}
SVI_TEMP_e: dict[int, str] = {(SVI_VDDCR_VDD0_TEMP:=0): 'SVI_VDDCR_VDD0_TEMP', (SVI_VDDCR_VDD1_TEMP:=1): 'SVI_VDDCR_VDD1_TEMP', (SVI_VDDCR_VDD2_TEMP:=2): 'SVI_VDDCR_VDD2_TEMP', (SVI_VDDCR_VDD3_TEMP:=3): 'SVI_VDDCR_VDD3_TEMP', (SVI_VDDCR_SOC_A_TEMP:=4): 'SVI_VDDCR_SOC_A_TEMP', (SVI_VDDCR_SOC_C_TEMP:=5): 'SVI_VDDCR_SOC_C_TEMP', (SVI_VDDCR_SOCIO_A_TEMP:=6): 'SVI_VDDCR_SOCIO_A_TEMP', (SVI_VDDCR_SOCIO_C_TEMP:=7): 'SVI_VDDCR_SOCIO_C_TEMP', (SVI_VDD_085_HBM_TEMP:=8): 'SVI_VDD_085_HBM_TEMP', (SVI_VDDCR_11_HBM_B_TEMP:=9): 'SVI_VDDCR_11_HBM_B_TEMP', (SVI_VDDCR_11_HBM_D_TEMP:=10): 'SVI_VDDCR_11_HBM_D_TEMP', (SVI_VDD_USR_TEMP:=11): 'SVI_VDD_USR_TEMP', (SVI_VDDIO_11_E32_TEMP:=12): 'SVI_VDDIO_11_E32_TEMP', (SVI_MAX_TEMP_ENTRIES:=13): 'SVI_MAX_TEMP_ENTRIES'}
@c.record
class MetricsTable_t(c.Struct):
SIZE = 1284
AccumulationCounter: Annotated[uint64_t, 0]
MaxSocketTemperature: Annotated[uint32_t, 8]
MaxVrTemperature: Annotated[uint32_t, 12]
MaxHbmTemperature: Annotated[uint32_t, 16]
MaxSocketTemperatureAcc: Annotated[uint64_t, 20]
MaxVrTemperatureAcc: Annotated[uint64_t, 28]
MaxHbmTemperatureAcc: Annotated[uint64_t, 36]
SocketPowerLimit: Annotated[uint32_t, 44]
SocketPower: Annotated[uint32_t, 48]
Timestamp: Annotated[uint64_t, 52]
SocketEnergyAcc: Annotated[uint64_t, 60]
XcdEnergyAcc: Annotated[uint64_t, 68]
AidEnergyAcc: Annotated[uint64_t, 76]
HbmEnergyAcc: Annotated[uint64_t, 84]
GfxclkFrequencyLimit: Annotated[uint32_t, 92]
FclkFrequency: Annotated[uint32_t, 96]
UclkFrequency: Annotated[uint32_t, 100]
SocclkFrequency: Annotated[c.Array[uint32_t, Literal[4]], 104]
VclkFrequency: Annotated[c.Array[uint32_t, Literal[4]], 120]
DclkFrequency: Annotated[c.Array[uint32_t, Literal[4]], 136]
LclkFrequency: Annotated[c.Array[uint32_t, Literal[4]], 152]
GfxclkFrequencyAcc: Annotated[c.Array[uint64_t, Literal[8]], 168]
MaxLclkDpmRange: Annotated[uint32_t, 232]
MinLclkDpmRange: Annotated[uint32_t, 236]
XgmiWidth: Annotated[uint32_t, 240]
XgmiBitrate: Annotated[uint32_t, 244]
XgmiReadBandwidthAcc: Annotated[c.Array[uint64_t, Literal[8]], 248]
XgmiWriteBandwidthAcc: Annotated[c.Array[uint64_t, Literal[8]], 312]
SocketGfxBusy: Annotated[uint32_t, 376]
DramBandwidthUtilization: Annotated[uint32_t, 380]
SocketGfxBusyAcc: Annotated[uint64_t, 384]
DramBandwidthAcc: Annotated[uint64_t, 392]
MaxDramBandwidth: Annotated[uint32_t, 400]
DramBandwidthUtilizationAcc: Annotated[uint64_t, 404]
PcieBandwidthAcc: Annotated[c.Array[uint64_t, Literal[4]], 412]
ProchotResidencyAcc: Annotated[uint32_t, 444]
PptResidencyAcc: Annotated[uint32_t, 448]
SocketThmResidencyAcc: Annotated[uint32_t, 452]
VrThmResidencyAcc: Annotated[uint32_t, 456]
HbmThmResidencyAcc: Annotated[uint32_t, 460]
GfxLockXCDMak: Annotated[uint32_t, 464]
GfxclkFrequency: Annotated[c.Array[uint32_t, Literal[8]], 468]
XgmiReadDataSizeAcc: Annotated[c.Array[uint64_t, Literal[8]], 500]
XgmiWriteDataSizeAcc: Annotated[c.Array[uint64_t, Literal[8]], 564]
PcieBandwidth: Annotated[c.Array[uint32_t, Literal[4]], 628]
PCIeL0ToRecoveryCountAcc: Annotated[uint32_t, 644]
PCIenReplayAAcc: Annotated[uint32_t, 648]
PCIenReplayARolloverCountAcc: Annotated[uint32_t, 652]
PCIeNAKSentCountAcc: Annotated[uint32_t, 656]
PCIeNAKReceivedCountAcc: Annotated[uint32_t, 660]
VcnBusy: Annotated[c.Array[uint32_t, Literal[4]], 664]
JpegBusy: Annotated[c.Array[uint32_t, Literal[40]], 680]
PCIeLinkSpeed: Annotated[uint32_t, 840]
PCIeLinkWidth: Annotated[uint32_t, 844]
GfxBusy: Annotated[c.Array[uint32_t, Literal[8]], 848]
GfxBusyAcc: Annotated[c.Array[uint64_t, Literal[8]], 880]
PCIeOtherEndRecoveryAcc: Annotated[uint32_t, 944]
GfxclkBelowHostLimitPptAcc: Annotated[c.Array[uint64_t, Literal[8]], 948]
GfxclkBelowHostLimitThmAcc: Annotated[c.Array[uint64_t, Literal[8]], 1012]
GfxclkBelowHostLimitTotalAcc: Annotated[c.Array[uint64_t, Literal[8]], 1076]
GfxclkLowUtilizationAcc: Annotated[c.Array[uint64_t, Literal[8]], 1140]
AidTemperature: Annotated[c.Array[uint32_t, Literal[4]], 1204]
XcdTemperature: Annotated[c.Array[uint32_t, Literal[8]], 1220]
HbmTemperature: Annotated[c.Array[uint32_t, Literal[8]], 1252]
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
AccumulationCounter: int
MaxSocketTemperature: int
MaxVrTemperature: int
MaxHbmTemperature: int
MaxSocketTemperatureAcc: int
MaxVrTemperatureAcc: int
MaxHbmTemperatureAcc: int
SocketPowerLimit: int
SocketPower: int
Timestamp: int
SocketEnergyAcc: int
XcdEnergyAcc: int
AidEnergyAcc: int
HbmEnergyAcc: int
GfxclkFrequencyLimit: int
FclkFrequency: int
UclkFrequency: int
SocclkFrequency: c.Array[ctypes.c_uint32, Literal[4]]
VclkFrequency: c.Array[ctypes.c_uint32, Literal[4]]
DclkFrequency: c.Array[ctypes.c_uint32, Literal[4]]
LclkFrequency: c.Array[ctypes.c_uint32, Literal[4]]
GfxclkFrequencyAcc: c.Array[ctypes.c_uint64, Literal[8]]
MaxLclkDpmRange: int
MinLclkDpmRange: int
XgmiWidth: int
XgmiBitrate: int
XgmiReadBandwidthAcc: c.Array[ctypes.c_uint64, Literal[8]]
XgmiWriteBandwidthAcc: c.Array[ctypes.c_uint64, Literal[8]]
SocketGfxBusy: int
DramBandwidthUtilization: int
SocketGfxBusyAcc: int
DramBandwidthAcc: int
MaxDramBandwidth: int
DramBandwidthUtilizationAcc: int
PcieBandwidthAcc: c.Array[ctypes.c_uint64, Literal[4]]
ProchotResidencyAcc: int
PptResidencyAcc: int
SocketThmResidencyAcc: int
VrThmResidencyAcc: int
HbmThmResidencyAcc: int
GfxLockXCDMak: int
GfxclkFrequency: c.Array[ctypes.c_uint32, Literal[8]]
XgmiReadDataSizeAcc: c.Array[ctypes.c_uint64, Literal[8]]
XgmiWriteDataSizeAcc: c.Array[ctypes.c_uint64, Literal[8]]
PcieBandwidth: c.Array[ctypes.c_uint32, Literal[4]]
PCIeL0ToRecoveryCountAcc: int
PCIenReplayAAcc: int
PCIenReplayARolloverCountAcc: int
PCIeNAKSentCountAcc: int
PCIeNAKReceivedCountAcc: int
VcnBusy: c.Array[ctypes.c_uint32, Literal[4]]
JpegBusy: c.Array[ctypes.c_uint32, Literal[40]]
PCIeLinkSpeed: int
PCIeLinkWidth: int
GfxBusy: c.Array[ctypes.c_uint32, Literal[8]]
GfxBusyAcc: c.Array[ctypes.c_uint64, Literal[8]]
PCIeOtherEndRecoveryAcc: int
GfxclkBelowHostLimitPptAcc: c.Array[ctypes.c_uint64, Literal[8]]
GfxclkBelowHostLimitThmAcc: c.Array[ctypes.c_uint64, Literal[8]]
GfxclkBelowHostLimitTotalAcc: c.Array[ctypes.c_uint64, Literal[8]]
GfxclkLowUtilizationAcc: c.Array[ctypes.c_uint64, Literal[8]]
AidTemperature: c.Array[ctypes.c_uint32, Literal[4]]
XcdTemperature: c.Array[ctypes.c_uint32, Literal[8]]
HbmTemperature: c.Array[ctypes.c_uint32, Literal[8]]
uint64_t: TypeAlias = ctypes.c_uint64
uint32_t: TypeAlias = ctypes.c_uint32
MetricsTable_t.register_fields([('AccumulationCounter', uint64_t, 0), ('MaxSocketTemperature', uint32_t, 8), ('MaxVrTemperature', uint32_t, 12), ('MaxHbmTemperature', uint32_t, 16), ('MaxSocketTemperatureAcc', uint64_t, 20), ('MaxVrTemperatureAcc', uint64_t, 28), ('MaxHbmTemperatureAcc', uint64_t, 36), ('SocketPowerLimit', uint32_t, 44), ('SocketPower', uint32_t, 48), ('Timestamp', uint64_t, 52), ('SocketEnergyAcc', uint64_t, 60), ('XcdEnergyAcc', uint64_t, 68), ('AidEnergyAcc', uint64_t, 76), ('HbmEnergyAcc', uint64_t, 84), ('GfxclkFrequencyLimit', uint32_t, 92), ('FclkFrequency', uint32_t, 96), ('UclkFrequency', uint32_t, 100), ('SocclkFrequency', c.Array[uint32_t, Literal[4]], 104), ('VclkFrequency', c.Array[uint32_t, Literal[4]], 120), ('DclkFrequency', c.Array[uint32_t, Literal[4]], 136), ('LclkFrequency', c.Array[uint32_t, Literal[4]], 152), ('GfxclkFrequencyAcc', c.Array[uint64_t, Literal[8]], 168), ('MaxLclkDpmRange', uint32_t, 232), ('MinLclkDpmRange', uint32_t, 236), ('XgmiWidth', uint32_t, 240), ('XgmiBitrate', uint32_t, 244), ('XgmiReadBandwidthAcc', c.Array[uint64_t, Literal[8]], 248), ('XgmiWriteBandwidthAcc', c.Array[uint64_t, Literal[8]], 312), ('SocketGfxBusy', uint32_t, 376), ('DramBandwidthUtilization', uint32_t, 380), ('SocketGfxBusyAcc', uint64_t, 384), ('DramBandwidthAcc', uint64_t, 392), ('MaxDramBandwidth', uint32_t, 400), ('DramBandwidthUtilizationAcc', uint64_t, 404), ('PcieBandwidthAcc', c.Array[uint64_t, Literal[4]], 412), ('ProchotResidencyAcc', uint32_t, 444), ('PptResidencyAcc', uint32_t, 448), ('SocketThmResidencyAcc', uint32_t, 452), ('VrThmResidencyAcc', uint32_t, 456), ('HbmThmResidencyAcc', uint32_t, 460), ('GfxLockXCDMak', uint32_t, 464), ('GfxclkFrequency', c.Array[uint32_t, Literal[8]], 468), ('XgmiReadDataSizeAcc', c.Array[uint64_t, Literal[8]], 500), ('XgmiWriteDataSizeAcc', c.Array[uint64_t, Literal[8]], 564), ('PcieBandwidth', c.Array[uint32_t, Literal[4]], 628), ('PCIeL0ToRecoveryCountAcc', uint32_t, 644), ('PCIenReplayAAcc', uint32_t, 648), ('PCIenReplayARolloverCountAcc', uint32_t, 652), ('PCIeNAKSentCountAcc', uint32_t, 656), ('PCIeNAKReceivedCountAcc', uint32_t, 660), ('VcnBusy', c.Array[uint32_t, Literal[4]], 664), ('JpegBusy', c.Array[uint32_t, Literal[40]], 680), ('PCIeLinkSpeed', uint32_t, 840), ('PCIeLinkWidth', uint32_t, 844), ('GfxBusy', c.Array[uint32_t, Literal[8]], 848), ('GfxBusyAcc', c.Array[uint64_t, Literal[8]], 880), ('PCIeOtherEndRecoveryAcc', uint32_t, 944), ('GfxclkBelowHostLimitPptAcc', c.Array[uint64_t, Literal[8]], 948), ('GfxclkBelowHostLimitThmAcc', c.Array[uint64_t, Literal[8]], 1012), ('GfxclkBelowHostLimitTotalAcc', c.Array[uint64_t, Literal[8]], 1076), ('GfxclkLowUtilizationAcc', c.Array[uint64_t, Literal[8]], 1140), ('AidTemperature', c.Array[uint32_t, Literal[4]], 1204), ('XcdTemperature', c.Array[uint32_t, Literal[8]], 1220), ('HbmTemperature', c.Array[uint32_t, Literal[8]], 1252)])
@c.record
class SystemMetricsTable_t(c.Struct):
SIZE = 152
AccumulationCounter: Annotated[uint64_t, 0]
LabelVersion: Annotated[uint16_t, 8]
NodeIdentifier: Annotated[uint16_t, 10]
SystemTemperatures: Annotated[c.Array[int16_t, Literal[32]], 12]
NodeTemperatures: Annotated[c.Array[int16_t, Literal[12]], 76]
VrTemperatures: Annotated[c.Array[int16_t, Literal[13]], 100]
spare: Annotated[c.Array[int16_t, Literal[7]], 126]
NodePowerLimit: Annotated[uint32_t, 140]
NodePower: Annotated[uint32_t, 144]
GlobalPPTResidencyAcc: Annotated[uint32_t, 148]
uint16_t: TypeAlias = Annotated[int, ctypes.c_uint16]
int16_t: TypeAlias = Annotated[int, ctypes.c_int16]
AccumulationCounter: int
LabelVersion: int
NodeIdentifier: int
SystemTemperatures: c.Array[ctypes.c_int16, Literal[32]]
NodeTemperatures: c.Array[ctypes.c_int16, Literal[12]]
VrTemperatures: c.Array[ctypes.c_int16, Literal[13]]
spare: c.Array[ctypes.c_int16, Literal[7]]
NodePowerLimit: int
NodePower: int
GlobalPPTResidencyAcc: int
uint16_t: TypeAlias = ctypes.c_uint16
int16_t: TypeAlias = ctypes.c_int16
SystemMetricsTable_t.register_fields([('AccumulationCounter', uint64_t, 0), ('LabelVersion', uint16_t, 8), ('NodeIdentifier', uint16_t, 10), ('SystemTemperatures', c.Array[int16_t, Literal[32]], 12), ('NodeTemperatures', c.Array[int16_t, Literal[12]], 76), ('VrTemperatures', c.Array[int16_t, Literal[13]], 100), ('spare', c.Array[int16_t, Literal[7]], 126), ('NodePowerLimit', uint32_t, 140), ('NodePower', uint32_t, 144), ('GlobalPPTResidencyAcc', uint32_t, 148)])
@c.record
class VfMetricsTable_t(c.Struct):
SIZE = 56
AccumulationCounter: Annotated[uint32_t, 0]
InstGfxclk_TargFreq: Annotated[uint32_t, 4]
AccGfxclk_TargFreq: Annotated[uint64_t, 8]
AccGfxRsmuDpm_Busy: Annotated[uint64_t, 16]
AccGfxclkBelowHostLimitPpt: Annotated[uint64_t, 24]
AccGfxclkBelowHostLimitThm: Annotated[uint64_t, 32]
AccGfxclkBelowHostLimitTotal: Annotated[uint64_t, 40]
AccGfxclkLowUtilization: Annotated[uint64_t, 48]
AccumulationCounter: int
InstGfxclk_TargFreq: int
AccGfxclk_TargFreq: int
AccGfxRsmuDpm_Busy: int
AccGfxclkBelowHostLimitPpt: int
AccGfxclkBelowHostLimitThm: int
AccGfxclkBelowHostLimitTotal: int
AccGfxclkLowUtilization: int
VfMetricsTable_t.register_fields([('AccumulationCounter', uint32_t, 0), ('InstGfxclk_TargFreq', uint32_t, 4), ('AccGfxclk_TargFreq', uint64_t, 8), ('AccGfxRsmuDpm_Busy', uint64_t, 16), ('AccGfxclkBelowHostLimitPpt', uint64_t, 24), ('AccGfxclkBelowHostLimitThm', uint64_t, 32), ('AccGfxclkBelowHostLimitTotal', uint64_t, 40), ('AccGfxclkLowUtilization', uint64_t, 48)])
@c.record
class FRUProductInfo_t(c.Struct):
SIZE = 168
ModelNumber: Annotated[c.Array[uint8_t, Literal[20]], 0]
Name: Annotated[c.Array[uint8_t, Literal[64]], 20]
Serial: Annotated[c.Array[uint8_t, Literal[20]], 84]
ManufacturerName: Annotated[c.Array[uint8_t, Literal[32]], 104]
FruId: Annotated[c.Array[uint8_t, Literal[32]], 136]
uint8_t: TypeAlias = Annotated[int, ctypes.c_ubyte]
ModelNumber: c.Array[ctypes.c_ubyte, Literal[20]]
Name: c.Array[ctypes.c_ubyte, Literal[64]]
Serial: c.Array[ctypes.c_ubyte, Literal[20]]
ManufacturerName: c.Array[ctypes.c_ubyte, Literal[32]]
FruId: c.Array[ctypes.c_ubyte, Literal[32]]
uint8_t: TypeAlias = ctypes.c_ubyte
FRUProductInfo_t.register_fields([('ModelNumber', c.Array[uint8_t, Literal[20]], 0), ('Name', c.Array[uint8_t, Literal[64]], 20), ('Serial', c.Array[uint8_t, Literal[20]], 84), ('ManufacturerName', c.Array[uint8_t, Literal[32]], 104), ('FruId', c.Array[uint8_t, Literal[32]], 136)])
@c.record
class StaticMetricsTable_t(c.Struct):
SIZE = 408
ProductInfo: Annotated[FRUProductInfo_t, 0]
MaxSocketPowerLimit: Annotated[uint32_t, 168]
MaxGfxclkFrequency: Annotated[uint32_t, 172]
MinGfxclkFrequency: Annotated[uint32_t, 176]
FclkFrequencyTable: Annotated[c.Array[uint32_t, Literal[4]], 180]
UclkFrequencyTable: Annotated[c.Array[uint32_t, Literal[4]], 196]
SocclkFrequencyTable: Annotated[c.Array[uint32_t, Literal[4]], 212]
VclkFrequencyTable: Annotated[c.Array[uint32_t, Literal[4]], 228]
DclkFrequencyTable: Annotated[c.Array[uint32_t, Literal[4]], 244]
LclkFrequencyTable: Annotated[c.Array[uint32_t, Literal[4]], 260]
PublicSerialNumber_AID: Annotated[c.Array[uint64_t, Literal[4]], 276]
PublicSerialNumber_XCD: Annotated[c.Array[uint64_t, Literal[8]], 308]
MaxXgmiWidth: Annotated[uint32_t, 372]
MaxXgmiBitrate: Annotated[uint32_t, 376]
InputTelemetryVoltageInmV: Annotated[uint32_t, 380]
pldmVersion: Annotated[c.Array[uint32_t, Literal[2]], 384]
MaxNodePowerLimit: Annotated[uint32_t, 392]
PPT1Max: Annotated[uint32_t, 396]
PPT1Min: Annotated[uint32_t, 400]
PPT1Default: Annotated[uint32_t, 404]
class I2cControllerPort_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
I2C_CONTROLLER_PORT_0 = I2cControllerPort_e.define('I2C_CONTROLLER_PORT_0', 0)
I2C_CONTROLLER_PORT_1 = I2cControllerPort_e.define('I2C_CONTROLLER_PORT_1', 1)
I2C_CONTROLLER_PORT_COUNT = I2cControllerPort_e.define('I2C_CONTROLLER_PORT_COUNT', 2)
class I2cSpeed_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
UNSUPPORTED_1 = I2cSpeed_e.define('UNSUPPORTED_1', 0)
I2C_SPEED_STANDARD_100K = I2cSpeed_e.define('I2C_SPEED_STANDARD_100K', 1)
I2C_SPEED_FAST_400K = I2cSpeed_e.define('I2C_SPEED_FAST_400K', 2)
I2C_SPEED_FAST_PLUS_1M = I2cSpeed_e.define('I2C_SPEED_FAST_PLUS_1M', 3)
UNSUPPORTED_2 = I2cSpeed_e.define('UNSUPPORTED_2', 4)
UNSUPPORTED_3 = I2cSpeed_e.define('UNSUPPORTED_3', 5)
I2C_SPEED_COUNT = I2cSpeed_e.define('I2C_SPEED_COUNT', 6)
class I2cCmdType_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
I2C_CMD_READ = I2cCmdType_e.define('I2C_CMD_READ', 0)
I2C_CMD_WRITE = I2cCmdType_e.define('I2C_CMD_WRITE', 1)
I2C_CMD_COUNT = I2cCmdType_e.define('I2C_CMD_COUNT', 2)
class ERR_CODE_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
CODE_DAGB0 = ERR_CODE_e.define('CODE_DAGB0', 0)
CODE_EA0 = ERR_CODE_e.define('CODE_EA0', 5)
CODE_UTCL2_ROUTER = ERR_CODE_e.define('CODE_UTCL2_ROUTER', 10)
CODE_VML2 = ERR_CODE_e.define('CODE_VML2', 11)
CODE_VML2_WALKER = ERR_CODE_e.define('CODE_VML2_WALKER', 12)
CODE_MMCANE = ERR_CODE_e.define('CODE_MMCANE', 13)
CODE_VIDD = ERR_CODE_e.define('CODE_VIDD', 14)
CODE_VIDV = ERR_CODE_e.define('CODE_VIDV', 15)
CODE_JPEG0S = ERR_CODE_e.define('CODE_JPEG0S', 16)
CODE_JPEG0D = ERR_CODE_e.define('CODE_JPEG0D', 17)
CODE_JPEG1S = ERR_CODE_e.define('CODE_JPEG1S', 18)
CODE_JPEG1D = ERR_CODE_e.define('CODE_JPEG1D', 19)
CODE_JPEG2S = ERR_CODE_e.define('CODE_JPEG2S', 20)
CODE_JPEG2D = ERR_CODE_e.define('CODE_JPEG2D', 21)
CODE_JPEG3S = ERR_CODE_e.define('CODE_JPEG3S', 22)
CODE_JPEG3D = ERR_CODE_e.define('CODE_JPEG3D', 23)
CODE_JPEG4S = ERR_CODE_e.define('CODE_JPEG4S', 24)
CODE_JPEG4D = ERR_CODE_e.define('CODE_JPEG4D', 25)
CODE_JPEG5S = ERR_CODE_e.define('CODE_JPEG5S', 26)
CODE_JPEG5D = ERR_CODE_e.define('CODE_JPEG5D', 27)
CODE_JPEG6S = ERR_CODE_e.define('CODE_JPEG6S', 28)
CODE_JPEG6D = ERR_CODE_e.define('CODE_JPEG6D', 29)
CODE_JPEG7S = ERR_CODE_e.define('CODE_JPEG7S', 30)
CODE_JPEG7D = ERR_CODE_e.define('CODE_JPEG7D', 31)
CODE_MMSCHD = ERR_CODE_e.define('CODE_MMSCHD', 32)
CODE_SDMA0 = ERR_CODE_e.define('CODE_SDMA0', 33)
CODE_SDMA1 = ERR_CODE_e.define('CODE_SDMA1', 34)
CODE_SDMA2 = ERR_CODE_e.define('CODE_SDMA2', 35)
CODE_SDMA3 = ERR_CODE_e.define('CODE_SDMA3', 36)
CODE_HDP = ERR_CODE_e.define('CODE_HDP', 37)
CODE_ATHUB = ERR_CODE_e.define('CODE_ATHUB', 38)
CODE_IH = ERR_CODE_e.define('CODE_IH', 39)
CODE_XHUB_POISON = ERR_CODE_e.define('CODE_XHUB_POISON', 40)
CODE_SMN_SLVERR = ERR_CODE_e.define('CODE_SMN_SLVERR', 40)
CODE_WDT = ERR_CODE_e.define('CODE_WDT', 41)
CODE_UNKNOWN = ERR_CODE_e.define('CODE_UNKNOWN', 42)
CODE_COUNT = ERR_CODE_e.define('CODE_COUNT', 43)
class GC_ERROR_CODE_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
SH_FED_CODE = GC_ERROR_CODE_e.define('SH_FED_CODE', 0)
GCEA_CODE = GC_ERROR_CODE_e.define('GCEA_CODE', 1)
SQ_CODE = GC_ERROR_CODE_e.define('SQ_CODE', 2)
LDS_CODE = GC_ERROR_CODE_e.define('LDS_CODE', 3)
GDS_CODE = GC_ERROR_CODE_e.define('GDS_CODE', 4)
SP0_CODE = GC_ERROR_CODE_e.define('SP0_CODE', 5)
SP1_CODE = GC_ERROR_CODE_e.define('SP1_CODE', 6)
TCC_CODE = GC_ERROR_CODE_e.define('TCC_CODE', 7)
TCA_CODE = GC_ERROR_CODE_e.define('TCA_CODE', 8)
TCX_CODE = GC_ERROR_CODE_e.define('TCX_CODE', 9)
CPC_CODE = GC_ERROR_CODE_e.define('CPC_CODE', 10)
CPF_CODE = GC_ERROR_CODE_e.define('CPF_CODE', 11)
CPG_CODE = GC_ERROR_CODE_e.define('CPG_CODE', 12)
SPI_CODE = GC_ERROR_CODE_e.define('SPI_CODE', 13)
RLC_CODE = GC_ERROR_CODE_e.define('RLC_CODE', 14)
SQC_CODE = GC_ERROR_CODE_e.define('SQC_CODE', 15)
TA_CODE = GC_ERROR_CODE_e.define('TA_CODE', 16)
TD_CODE = GC_ERROR_CODE_e.define('TD_CODE', 17)
TCP_CODE = GC_ERROR_CODE_e.define('TCP_CODE', 18)
TCI_CODE = GC_ERROR_CODE_e.define('TCI_CODE', 19)
GC_ROUTER_CODE = GC_ERROR_CODE_e.define('GC_ROUTER_CODE', 20)
VML2_CODE = GC_ERROR_CODE_e.define('VML2_CODE', 21)
VML2_WALKER_CODE = GC_ERROR_CODE_e.define('VML2_WALKER_CODE', 22)
ATCL2_CODE = GC_ERROR_CODE_e.define('ATCL2_CODE', 23)
GC_CANE_CODE = GC_ERROR_CODE_e.define('GC_CANE_CODE', 24)
MP5_CODE_SMN_SLVERR = GC_ERROR_CODE_e.define('MP5_CODE_SMN_SLVERR', 40)
MP5_CODE_UNKNOWN = GC_ERROR_CODE_e.define('MP5_CODE_UNKNOWN', 42)
ProductInfo: FRUProductInfo_t
MaxSocketPowerLimit: int
MaxGfxclkFrequency: int
MinGfxclkFrequency: int
FclkFrequencyTable: c.Array[ctypes.c_uint32, Literal[4]]
UclkFrequencyTable: c.Array[ctypes.c_uint32, Literal[4]]
SocclkFrequencyTable: c.Array[ctypes.c_uint32, Literal[4]]
VclkFrequencyTable: c.Array[ctypes.c_uint32, Literal[4]]
DclkFrequencyTable: c.Array[ctypes.c_uint32, Literal[4]]
LclkFrequencyTable: c.Array[ctypes.c_uint32, Literal[4]]
PublicSerialNumber_AID: c.Array[ctypes.c_uint64, Literal[4]]
PublicSerialNumber_XCD: c.Array[ctypes.c_uint64, Literal[8]]
MaxXgmiWidth: int
MaxXgmiBitrate: int
InputTelemetryVoltageInmV: int
pldmVersion: c.Array[ctypes.c_uint32, Literal[2]]
MaxNodePowerLimit: int
PPT1Max: int
PPT1Min: int
PPT1Default: int
StaticMetricsTable_t.register_fields([('ProductInfo', FRUProductInfo_t, 0), ('MaxSocketPowerLimit', uint32_t, 168), ('MaxGfxclkFrequency', uint32_t, 172), ('MinGfxclkFrequency', uint32_t, 176), ('FclkFrequencyTable', c.Array[uint32_t, Literal[4]], 180), ('UclkFrequencyTable', c.Array[uint32_t, Literal[4]], 196), ('SocclkFrequencyTable', c.Array[uint32_t, Literal[4]], 212), ('VclkFrequencyTable', c.Array[uint32_t, Literal[4]], 228), ('DclkFrequencyTable', c.Array[uint32_t, Literal[4]], 244), ('LclkFrequencyTable', c.Array[uint32_t, Literal[4]], 260), ('PublicSerialNumber_AID', c.Array[uint64_t, Literal[4]], 276), ('PublicSerialNumber_XCD', c.Array[uint64_t, Literal[8]], 308), ('MaxXgmiWidth', uint32_t, 372), ('MaxXgmiBitrate', uint32_t, 376), ('InputTelemetryVoltageInmV', uint32_t, 380), ('pldmVersion', c.Array[uint32_t, Literal[2]], 384), ('MaxNodePowerLimit', uint32_t, 392), ('PPT1Max', uint32_t, 396), ('PPT1Min', uint32_t, 400), ('PPT1Default', uint32_t, 404)])
I2cControllerPort_e: dict[int, str] = {(I2C_CONTROLLER_PORT_0:=0): 'I2C_CONTROLLER_PORT_0', (I2C_CONTROLLER_PORT_1:=1): 'I2C_CONTROLLER_PORT_1', (I2C_CONTROLLER_PORT_COUNT:=2): 'I2C_CONTROLLER_PORT_COUNT'}
I2cSpeed_e: dict[int, str] = {(UNSUPPORTED_1:=0): 'UNSUPPORTED_1', (I2C_SPEED_STANDARD_100K:=1): 'I2C_SPEED_STANDARD_100K', (I2C_SPEED_FAST_400K:=2): 'I2C_SPEED_FAST_400K', (I2C_SPEED_FAST_PLUS_1M:=3): 'I2C_SPEED_FAST_PLUS_1M', (UNSUPPORTED_2:=4): 'UNSUPPORTED_2', (UNSUPPORTED_3:=5): 'UNSUPPORTED_3', (I2C_SPEED_COUNT:=6): 'I2C_SPEED_COUNT'}
I2cCmdType_e: dict[int, str] = {(I2C_CMD_READ:=0): 'I2C_CMD_READ', (I2C_CMD_WRITE:=1): 'I2C_CMD_WRITE', (I2C_CMD_COUNT:=2): 'I2C_CMD_COUNT'}
ERR_CODE_e: dict[int, str] = {(CODE_DAGB0:=0): 'CODE_DAGB0', (CODE_EA0:=5): 'CODE_EA0', (CODE_UTCL2_ROUTER:=10): 'CODE_UTCL2_ROUTER', (CODE_VML2:=11): 'CODE_VML2', (CODE_VML2_WALKER:=12): 'CODE_VML2_WALKER', (CODE_MMCANE:=13): 'CODE_MMCANE', (CODE_VIDD:=14): 'CODE_VIDD', (CODE_VIDV:=15): 'CODE_VIDV', (CODE_JPEG0S:=16): 'CODE_JPEG0S', (CODE_JPEG0D:=17): 'CODE_JPEG0D', (CODE_JPEG1S:=18): 'CODE_JPEG1S', (CODE_JPEG1D:=19): 'CODE_JPEG1D', (CODE_JPEG2S:=20): 'CODE_JPEG2S', (CODE_JPEG2D:=21): 'CODE_JPEG2D', (CODE_JPEG3S:=22): 'CODE_JPEG3S', (CODE_JPEG3D:=23): 'CODE_JPEG3D', (CODE_JPEG4S:=24): 'CODE_JPEG4S', (CODE_JPEG4D:=25): 'CODE_JPEG4D', (CODE_JPEG5S:=26): 'CODE_JPEG5S', (CODE_JPEG5D:=27): 'CODE_JPEG5D', (CODE_JPEG6S:=28): 'CODE_JPEG6S', (CODE_JPEG6D:=29): 'CODE_JPEG6D', (CODE_JPEG7S:=30): 'CODE_JPEG7S', (CODE_JPEG7D:=31): 'CODE_JPEG7D', (CODE_MMSCHD:=32): 'CODE_MMSCHD', (CODE_SDMA0:=33): 'CODE_SDMA0', (CODE_SDMA1:=34): 'CODE_SDMA1', (CODE_SDMA2:=35): 'CODE_SDMA2', (CODE_SDMA3:=36): 'CODE_SDMA3', (CODE_HDP:=37): 'CODE_HDP', (CODE_ATHUB:=38): 'CODE_ATHUB', (CODE_IH:=39): 'CODE_IH', (CODE_XHUB_POISON:=40): 'CODE_XHUB_POISON', (CODE_SMN_SLVERR:=40): 'CODE_SMN_SLVERR', (CODE_WDT:=41): 'CODE_WDT', (CODE_UNKNOWN:=42): 'CODE_UNKNOWN', (CODE_COUNT:=43): 'CODE_COUNT'}
GC_ERROR_CODE_e: dict[int, str] = {(SH_FED_CODE:=0): 'SH_FED_CODE', (GCEA_CODE:=1): 'GCEA_CODE', (SQ_CODE:=2): 'SQ_CODE', (LDS_CODE:=3): 'LDS_CODE', (GDS_CODE:=4): 'GDS_CODE', (SP0_CODE:=5): 'SP0_CODE', (SP1_CODE:=6): 'SP1_CODE', (TCC_CODE:=7): 'TCC_CODE', (TCA_CODE:=8): 'TCA_CODE', (TCX_CODE:=9): 'TCX_CODE', (CPC_CODE:=10): 'CPC_CODE', (CPF_CODE:=11): 'CPF_CODE', (CPG_CODE:=12): 'CPG_CODE', (SPI_CODE:=13): 'SPI_CODE', (RLC_CODE:=14): 'RLC_CODE', (SQC_CODE:=15): 'SQC_CODE', (TA_CODE:=16): 'TA_CODE', (TD_CODE:=17): 'TD_CODE', (TCP_CODE:=18): 'TCP_CODE', (TCI_CODE:=19): 'TCI_CODE', (GC_ROUTER_CODE:=20): 'GC_ROUTER_CODE', (VML2_CODE:=21): 'VML2_CODE', (VML2_WALKER_CODE:=22): 'VML2_WALKER_CODE', (ATCL2_CODE:=23): 'ATCL2_CODE', (GC_CANE_CODE:=24): 'GC_CANE_CODE', (MP5_CODE_SMN_SLVERR:=40): 'MP5_CODE_SMN_SLVERR', (MP5_CODE_UNKNOWN:=42): 'MP5_CODE_UNKNOWN'}
@c.record
class SwI2cCmd_t(c.Struct):
SIZE = 2
ReadWriteData: Annotated[uint8_t, 0]
CmdConfig: Annotated[uint8_t, 1]
ReadWriteData: int
CmdConfig: int
SwI2cCmd_t.register_fields([('ReadWriteData', uint8_t, 0), ('CmdConfig', uint8_t, 1)])
@c.record
class SwI2cRequest_t(c.Struct):
SIZE = 52
I2CcontrollerPort: Annotated[uint8_t, 0]
I2CSpeed: Annotated[uint8_t, 1]
SlaveAddress: Annotated[uint8_t, 2]
NumCmds: Annotated[uint8_t, 3]
SwI2cCmds: Annotated[c.Array[SwI2cCmd_t, Literal[24]], 4]
I2CcontrollerPort: int
I2CSpeed: int
SlaveAddress: int
NumCmds: int
SwI2cCmds: c.Array[SwI2cCmd_t, Literal[24]]
SwI2cRequest_t.register_fields([('I2CcontrollerPort', uint8_t, 0), ('I2CSpeed', uint8_t, 1), ('SlaveAddress', uint8_t, 2), ('NumCmds', uint8_t, 3), ('SwI2cCmds', c.Array[SwI2cCmd_t, Literal[24]], 4)])
@c.record
class SwI2cRequestExternal_t(c.Struct):
SIZE = 116
SwI2cRequest: Annotated[SwI2cRequest_t, 0]
Spare: Annotated[c.Array[uint32_t, Literal[8]], 52]
MmHubPadding: Annotated[c.Array[uint32_t, Literal[8]], 84]
class PPCLK_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
PPCLK_VCLK = PPCLK_e.define('PPCLK_VCLK', 0)
PPCLK_DCLK = PPCLK_e.define('PPCLK_DCLK', 1)
PPCLK_SOCCLK = PPCLK_e.define('PPCLK_SOCCLK', 2)
PPCLK_UCLK = PPCLK_e.define('PPCLK_UCLK', 3)
PPCLK_FCLK = PPCLK_e.define('PPCLK_FCLK', 4)
PPCLK_LCLK = PPCLK_e.define('PPCLK_LCLK', 5)
PPCLK_COUNT = PPCLK_e.define('PPCLK_COUNT', 6)
class GpioIntPolarity_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
GPIO_INT_POLARITY_ACTIVE_LOW = GpioIntPolarity_e.define('GPIO_INT_POLARITY_ACTIVE_LOW', 0)
GPIO_INT_POLARITY_ACTIVE_HIGH = GpioIntPolarity_e.define('GPIO_INT_POLARITY_ACTIVE_HIGH', 1)
class UCLK_DPM_MODE_e(Annotated[int, ctypes.c_uint32], c.Enum): pass
UCLK_DPM_MODE_BANDWIDTH = UCLK_DPM_MODE_e.define('UCLK_DPM_MODE_BANDWIDTH', 0)
UCLK_DPM_MODE_LATENCY = UCLK_DPM_MODE_e.define('UCLK_DPM_MODE_LATENCY', 1)
SwI2cRequest: SwI2cRequest_t
Spare: c.Array[ctypes.c_uint32, Literal[8]]
MmHubPadding: c.Array[ctypes.c_uint32, Literal[8]]
SwI2cRequestExternal_t.register_fields([('SwI2cRequest', SwI2cRequest_t, 0), ('Spare', c.Array[uint32_t, Literal[8]], 52), ('MmHubPadding', c.Array[uint32_t, Literal[8]], 84)])
PPCLK_e: dict[int, str] = {(PPCLK_VCLK:=0): 'PPCLK_VCLK', (PPCLK_DCLK:=1): 'PPCLK_DCLK', (PPCLK_SOCCLK:=2): 'PPCLK_SOCCLK', (PPCLK_UCLK:=3): 'PPCLK_UCLK', (PPCLK_FCLK:=4): 'PPCLK_FCLK', (PPCLK_LCLK:=5): 'PPCLK_LCLK', (PPCLK_COUNT:=6): 'PPCLK_COUNT'}
GpioIntPolarity_e: dict[int, str] = {(GPIO_INT_POLARITY_ACTIVE_LOW:=0): 'GPIO_INT_POLARITY_ACTIVE_LOW', (GPIO_INT_POLARITY_ACTIVE_HIGH:=1): 'GPIO_INT_POLARITY_ACTIVE_HIGH'}
UCLK_DPM_MODE_e: dict[int, str] = {(UCLK_DPM_MODE_BANDWIDTH:=0): 'UCLK_DPM_MODE_BANDWIDTH', (UCLK_DPM_MODE_LATENCY:=1): 'UCLK_DPM_MODE_LATENCY'}
@c.record
class AvfsDebugTableAid_t(c.Struct):
SIZE = 360
avgPsmCount: Annotated[c.Array[uint16_t, Literal[30]], 0]
minPsmCount: Annotated[c.Array[uint16_t, Literal[30]], 60]
avgPsmVoltage: Annotated[c.Array[Annotated[float, ctypes.c_float], Literal[30]], 120]
minPsmVoltage: Annotated[c.Array[Annotated[float, ctypes.c_float], Literal[30]], 240]
avgPsmCount: c.Array[ctypes.c_uint16, Literal[30]]
minPsmCount: c.Array[ctypes.c_uint16, Literal[30]]
avgPsmVoltage: c.Array[ctypes.c_float, Literal[30]]
minPsmVoltage: c.Array[ctypes.c_float, Literal[30]]
AvfsDebugTableAid_t.register_fields([('avgPsmCount', c.Array[uint16_t, Literal[30]], 0), ('minPsmCount', c.Array[uint16_t, Literal[30]], 60), ('avgPsmVoltage', c.Array[ctypes.c_float, Literal[30]], 120), ('minPsmVoltage', c.Array[ctypes.c_float, Literal[30]], 240)])
@c.record
class AvfsDebugTableXcd_t(c.Struct):
SIZE = 360
avgPsmCount: Annotated[c.Array[uint16_t, Literal[30]], 0]
minPsmCount: Annotated[c.Array[uint16_t, Literal[30]], 60]
avgPsmVoltage: Annotated[c.Array[Annotated[float, ctypes.c_float], Literal[30]], 120]
minPsmVoltage: Annotated[c.Array[Annotated[float, ctypes.c_float], Literal[30]], 240]
avgPsmCount: c.Array[ctypes.c_uint16, Literal[30]]
minPsmCount: c.Array[ctypes.c_uint16, Literal[30]]
avgPsmVoltage: c.Array[ctypes.c_float, Literal[30]]
minPsmVoltage: c.Array[ctypes.c_float, Literal[30]]
AvfsDebugTableXcd_t.register_fields([('avgPsmCount', c.Array[uint16_t, Literal[30]], 0), ('minPsmCount', c.Array[uint16_t, Literal[30]], 60), ('avgPsmVoltage', c.Array[ctypes.c_float, Literal[30]], 120), ('minPsmVoltage', c.Array[ctypes.c_float, Literal[30]], 240)])
@c.record
class struct_smu_hw_power_state(c.Struct):
SIZE = 4
magic: Annotated[Annotated[int, ctypes.c_uint32], 0]
class struct_smu_power_state(c.Struct): SIZE = 0
class enum_smu_state_ui_label(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_STATE_UI_LABEL_NONE = enum_smu_state_ui_label.define('SMU_STATE_UI_LABEL_NONE', 0)
SMU_STATE_UI_LABEL_BATTERY = enum_smu_state_ui_label.define('SMU_STATE_UI_LABEL_BATTERY', 1)
SMU_STATE_UI_TABEL_MIDDLE_LOW = enum_smu_state_ui_label.define('SMU_STATE_UI_TABEL_MIDDLE_LOW', 2)
SMU_STATE_UI_LABEL_BALLANCED = enum_smu_state_ui_label.define('SMU_STATE_UI_LABEL_BALLANCED', 3)
SMU_STATE_UI_LABEL_MIDDLE_HIGHT = enum_smu_state_ui_label.define('SMU_STATE_UI_LABEL_MIDDLE_HIGHT', 4)
SMU_STATE_UI_LABEL_PERFORMANCE = enum_smu_state_ui_label.define('SMU_STATE_UI_LABEL_PERFORMANCE', 5)
SMU_STATE_UI_LABEL_BACO = enum_smu_state_ui_label.define('SMU_STATE_UI_LABEL_BACO', 6)
class enum_smu_state_classification_flag(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_STATE_CLASSIFICATION_FLAG_BOOT = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_BOOT', 1)
SMU_STATE_CLASSIFICATION_FLAG_THERMAL = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_THERMAL', 2)
SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE', 4)
SMU_STATE_CLASSIFICATION_FLAG_RESET = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_RESET', 8)
SMU_STATE_CLASSIFICATION_FLAG_FORCED = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_FORCED', 16)
SMU_STATE_CLASSIFICATION_FLAG_USER_3D_PERFORMANCE = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_USER_3D_PERFORMANCE', 32)
SMU_STATE_CLASSIFICATION_FLAG_USER_2D_PERFORMANCE = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_USER_2D_PERFORMANCE', 64)
SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE', 128)
SMU_STATE_CLASSIFICATION_FLAG_AC_OVERDIRVER_TEMPLATE = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_AC_OVERDIRVER_TEMPLATE', 256)
SMU_STATE_CLASSIFICATION_FLAG_UVD = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_UVD', 512)
SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE_LOW = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE_LOW', 1024)
SMU_STATE_CLASSIFICATION_FLAG_ACPI = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_ACPI', 2048)
SMU_STATE_CLASSIFICATION_FLAG_HD2 = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_HD2', 4096)
SMU_STATE_CLASSIFICATION_FLAG_UVD_HD = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_UVD_HD', 8192)
SMU_STATE_CLASSIFICATION_FLAG_UVD_SD = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_UVD_SD', 16384)
SMU_STATE_CLASSIFICATION_FLAG_USER_DC_PERFORMANCE = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_USER_DC_PERFORMANCE', 32768)
SMU_STATE_CLASSIFICATION_FLAG_DC_OVERDIRVER_TEMPLATE = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_DC_OVERDIRVER_TEMPLATE', 65536)
SMU_STATE_CLASSIFICATION_FLAG_BACO = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_BACO', 131072)
SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE2 = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE2', 262144)
SMU_STATE_CLASSIFICATION_FLAG_ULV = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_ULV', 524288)
SMU_STATE_CLASSIFICATION_FLAG_UVD_MVC = enum_smu_state_classification_flag.define('SMU_STATE_CLASSIFICATION_FLAG_UVD_MVC', 1048576)
magic: int
struct_smu_hw_power_state.register_fields([('magic', ctypes.c_uint32, 0)])
class struct_smu_power_state(c.Struct): pass
enum_smu_state_ui_label: dict[int, str] = {(SMU_STATE_UI_LABEL_NONE:=0): 'SMU_STATE_UI_LABEL_NONE', (SMU_STATE_UI_LABEL_BATTERY:=1): 'SMU_STATE_UI_LABEL_BATTERY', (SMU_STATE_UI_TABEL_MIDDLE_LOW:=2): 'SMU_STATE_UI_TABEL_MIDDLE_LOW', (SMU_STATE_UI_LABEL_BALLANCED:=3): 'SMU_STATE_UI_LABEL_BALLANCED', (SMU_STATE_UI_LABEL_MIDDLE_HIGHT:=4): 'SMU_STATE_UI_LABEL_MIDDLE_HIGHT', (SMU_STATE_UI_LABEL_PERFORMANCE:=5): 'SMU_STATE_UI_LABEL_PERFORMANCE', (SMU_STATE_UI_LABEL_BACO:=6): 'SMU_STATE_UI_LABEL_BACO'}
enum_smu_state_classification_flag: dict[int, str] = {(SMU_STATE_CLASSIFICATION_FLAG_BOOT:=1): 'SMU_STATE_CLASSIFICATION_FLAG_BOOT', (SMU_STATE_CLASSIFICATION_FLAG_THERMAL:=2): 'SMU_STATE_CLASSIFICATION_FLAG_THERMAL', (SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE:=4): 'SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE', (SMU_STATE_CLASSIFICATION_FLAG_RESET:=8): 'SMU_STATE_CLASSIFICATION_FLAG_RESET', (SMU_STATE_CLASSIFICATION_FLAG_FORCED:=16): 'SMU_STATE_CLASSIFICATION_FLAG_FORCED', (SMU_STATE_CLASSIFICATION_FLAG_USER_3D_PERFORMANCE:=32): 'SMU_STATE_CLASSIFICATION_FLAG_USER_3D_PERFORMANCE', (SMU_STATE_CLASSIFICATION_FLAG_USER_2D_PERFORMANCE:=64): 'SMU_STATE_CLASSIFICATION_FLAG_USER_2D_PERFORMANCE', (SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE:=128): 'SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE', (SMU_STATE_CLASSIFICATION_FLAG_AC_OVERDIRVER_TEMPLATE:=256): 'SMU_STATE_CLASSIFICATION_FLAG_AC_OVERDIRVER_TEMPLATE', (SMU_STATE_CLASSIFICATION_FLAG_UVD:=512): 'SMU_STATE_CLASSIFICATION_FLAG_UVD', (SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE_LOW:=1024): 'SMU_STATE_CLASSIFICATION_FLAG_3D_PERFORMANCE_LOW', (SMU_STATE_CLASSIFICATION_FLAG_ACPI:=2048): 'SMU_STATE_CLASSIFICATION_FLAG_ACPI', (SMU_STATE_CLASSIFICATION_FLAG_HD2:=4096): 'SMU_STATE_CLASSIFICATION_FLAG_HD2', (SMU_STATE_CLASSIFICATION_FLAG_UVD_HD:=8192): 'SMU_STATE_CLASSIFICATION_FLAG_UVD_HD', (SMU_STATE_CLASSIFICATION_FLAG_UVD_SD:=16384): 'SMU_STATE_CLASSIFICATION_FLAG_UVD_SD', (SMU_STATE_CLASSIFICATION_FLAG_USER_DC_PERFORMANCE:=32768): 'SMU_STATE_CLASSIFICATION_FLAG_USER_DC_PERFORMANCE', (SMU_STATE_CLASSIFICATION_FLAG_DC_OVERDIRVER_TEMPLATE:=65536): 'SMU_STATE_CLASSIFICATION_FLAG_DC_OVERDIRVER_TEMPLATE', (SMU_STATE_CLASSIFICATION_FLAG_BACO:=131072): 'SMU_STATE_CLASSIFICATION_FLAG_BACO', (SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE2:=262144): 'SMU_STATE_CLASSIFICATIN_FLAG_LIMITED_POWER_SOURCE2', (SMU_STATE_CLASSIFICATION_FLAG_ULV:=524288): 'SMU_STATE_CLASSIFICATION_FLAG_ULV', (SMU_STATE_CLASSIFICATION_FLAG_UVD_MVC:=1048576): 'SMU_STATE_CLASSIFICATION_FLAG_UVD_MVC'}
@c.record
class struct_smu_state_classification_block(c.Struct):
SIZE = 16
ui_label: Annotated[enum_smu_state_ui_label, 0]
flags: Annotated[enum_smu_state_classification_flag, 4]
bios_index: Annotated[Annotated[int, ctypes.c_int32], 8]
temporary_state: Annotated[Annotated[bool, ctypes.c_bool], 12]
to_be_deleted: Annotated[Annotated[bool, ctypes.c_bool], 13]
ui_label: int
flags: int
bios_index: int
temporary_state: bool
to_be_deleted: bool
struct_smu_state_classification_block.register_fields([('ui_label', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('bios_index', ctypes.c_int32, 8), ('temporary_state', ctypes.c_bool, 12), ('to_be_deleted', ctypes.c_bool, 13)])
@c.record
class struct_smu_state_pcie_block(c.Struct):
SIZE = 4
lanes: Annotated[Annotated[int, ctypes.c_uint32], 0]
class enum_smu_refreshrate_source(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_REFRESHRATE_SOURCE_EDID = enum_smu_refreshrate_source.define('SMU_REFRESHRATE_SOURCE_EDID', 0)
SMU_REFRESHRATE_SOURCE_EXPLICIT = enum_smu_refreshrate_source.define('SMU_REFRESHRATE_SOURCE_EXPLICIT', 1)
lanes: int
struct_smu_state_pcie_block.register_fields([('lanes', ctypes.c_uint32, 0)])
enum_smu_refreshrate_source: dict[int, str] = {(SMU_REFRESHRATE_SOURCE_EDID:=0): 'SMU_REFRESHRATE_SOURCE_EDID', (SMU_REFRESHRATE_SOURCE_EXPLICIT:=1): 'SMU_REFRESHRATE_SOURCE_EXPLICIT'}
@c.record
class struct_smu_state_display_block(c.Struct):
SIZE = 20
disable_frame_modulation: Annotated[Annotated[bool, ctypes.c_bool], 0]
limit_refreshrate: Annotated[Annotated[bool, ctypes.c_bool], 1]
refreshrate_source: Annotated[enum_smu_refreshrate_source, 4]
explicit_refreshrate: Annotated[Annotated[int, ctypes.c_int32], 8]
edid_refreshrate_index: Annotated[Annotated[int, ctypes.c_int32], 12]
enable_vari_bright: Annotated[Annotated[bool, ctypes.c_bool], 16]
disable_frame_modulation: bool
limit_refreshrate: bool
refreshrate_source: int
explicit_refreshrate: int
edid_refreshrate_index: int
enable_vari_bright: bool
struct_smu_state_display_block.register_fields([('disable_frame_modulation', ctypes.c_bool, 0), ('limit_refreshrate', ctypes.c_bool, 1), ('refreshrate_source', ctypes.c_uint32, 4), ('explicit_refreshrate', ctypes.c_int32, 8), ('edid_refreshrate_index', ctypes.c_int32, 12), ('enable_vari_bright', ctypes.c_bool, 16)])
@c.record
class struct_smu_state_memory_block(c.Struct):
SIZE = 5
dll_off: Annotated[Annotated[bool, ctypes.c_bool], 0]
m3arb: Annotated[Annotated[int, ctypes.c_ubyte], 1]
unused: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[3]], 2]
dll_off: bool
m3arb: int
unused: c.Array[ctypes.c_ubyte, Literal[3]]
struct_smu_state_memory_block.register_fields([('dll_off', ctypes.c_bool, 0), ('m3arb', ctypes.c_ubyte, 1), ('unused', c.Array[ctypes.c_ubyte, Literal[3]], 2)])
@c.record
class struct_smu_state_software_algorithm_block(c.Struct):
SIZE = 2
disable_load_balancing: Annotated[Annotated[bool, ctypes.c_bool], 0]
enable_sleep_for_timestamps: Annotated[Annotated[bool, ctypes.c_bool], 1]
disable_load_balancing: bool
enable_sleep_for_timestamps: bool
struct_smu_state_software_algorithm_block.register_fields([('disable_load_balancing', ctypes.c_bool, 0), ('enable_sleep_for_timestamps', ctypes.c_bool, 1)])
@c.record
class struct_smu_temperature_range(c.Struct):
SIZE = 44
min: Annotated[Annotated[int, ctypes.c_int32], 0]
max: Annotated[Annotated[int, ctypes.c_int32], 4]
edge_emergency_max: Annotated[Annotated[int, ctypes.c_int32], 8]
hotspot_min: Annotated[Annotated[int, ctypes.c_int32], 12]
hotspot_crit_max: Annotated[Annotated[int, ctypes.c_int32], 16]
hotspot_emergency_max: Annotated[Annotated[int, ctypes.c_int32], 20]
mem_min: Annotated[Annotated[int, ctypes.c_int32], 24]
mem_crit_max: Annotated[Annotated[int, ctypes.c_int32], 28]
mem_emergency_max: Annotated[Annotated[int, ctypes.c_int32], 32]
software_shutdown_temp: Annotated[Annotated[int, ctypes.c_int32], 36]
software_shutdown_temp_offset: Annotated[Annotated[int, ctypes.c_int32], 40]
min: int
max: int
edge_emergency_max: int
hotspot_min: int
hotspot_crit_max: int
hotspot_emergency_max: int
mem_min: int
mem_crit_max: int
mem_emergency_max: int
software_shutdown_temp: int
software_shutdown_temp_offset: int
struct_smu_temperature_range.register_fields([('min', ctypes.c_int32, 0), ('max', ctypes.c_int32, 4), ('edge_emergency_max', ctypes.c_int32, 8), ('hotspot_min', ctypes.c_int32, 12), ('hotspot_crit_max', ctypes.c_int32, 16), ('hotspot_emergency_max', ctypes.c_int32, 20), ('mem_min', ctypes.c_int32, 24), ('mem_crit_max', ctypes.c_int32, 28), ('mem_emergency_max', ctypes.c_int32, 32), ('software_shutdown_temp', ctypes.c_int32, 36), ('software_shutdown_temp_offset', ctypes.c_int32, 40)])
@c.record
class struct_smu_state_validation_block(c.Struct):
SIZE = 3
single_display_only: Annotated[Annotated[bool, ctypes.c_bool], 0]
disallow_on_dc: Annotated[Annotated[bool, ctypes.c_bool], 1]
supported_power_levels: Annotated[Annotated[int, ctypes.c_ubyte], 2]
single_display_only: bool
disallow_on_dc: bool
supported_power_levels: int
struct_smu_state_validation_block.register_fields([('single_display_only', ctypes.c_bool, 0), ('disallow_on_dc', ctypes.c_bool, 1), ('supported_power_levels', ctypes.c_ubyte, 2)])
@c.record
class struct_smu_uvd_clocks(c.Struct):
SIZE = 8
vclk: Annotated[Annotated[int, ctypes.c_uint32], 0]
dclk: Annotated[Annotated[int, ctypes.c_uint32], 4]
class enum_smu_power_src_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_POWER_SOURCE_AC = enum_smu_power_src_type.define('SMU_POWER_SOURCE_AC', 0)
SMU_POWER_SOURCE_DC = enum_smu_power_src_type.define('SMU_POWER_SOURCE_DC', 1)
SMU_POWER_SOURCE_COUNT = enum_smu_power_src_type.define('SMU_POWER_SOURCE_COUNT', 2)
class enum_smu_ppt_limit_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_DEFAULT_PPT_LIMIT = enum_smu_ppt_limit_type.define('SMU_DEFAULT_PPT_LIMIT', 0)
SMU_FAST_PPT_LIMIT = enum_smu_ppt_limit_type.define('SMU_FAST_PPT_LIMIT', 1)
class enum_smu_ppt_limit_level(Annotated[int, ctypes.c_int32], c.Enum): pass
SMU_PPT_LIMIT_MIN = enum_smu_ppt_limit_level.define('SMU_PPT_LIMIT_MIN', -1)
SMU_PPT_LIMIT_CURRENT = enum_smu_ppt_limit_level.define('SMU_PPT_LIMIT_CURRENT', 0)
SMU_PPT_LIMIT_DEFAULT = enum_smu_ppt_limit_level.define('SMU_PPT_LIMIT_DEFAULT', 1)
SMU_PPT_LIMIT_MAX = enum_smu_ppt_limit_level.define('SMU_PPT_LIMIT_MAX', 2)
class enum_smu_memory_pool_size(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_MEMORY_POOL_SIZE_ZERO = enum_smu_memory_pool_size.define('SMU_MEMORY_POOL_SIZE_ZERO', 0)
SMU_MEMORY_POOL_SIZE_256_MB = enum_smu_memory_pool_size.define('SMU_MEMORY_POOL_SIZE_256_MB', 268435456)
SMU_MEMORY_POOL_SIZE_512_MB = enum_smu_memory_pool_size.define('SMU_MEMORY_POOL_SIZE_512_MB', 536870912)
SMU_MEMORY_POOL_SIZE_1_GB = enum_smu_memory_pool_size.define('SMU_MEMORY_POOL_SIZE_1_GB', 1073741824)
SMU_MEMORY_POOL_SIZE_2_GB = enum_smu_memory_pool_size.define('SMU_MEMORY_POOL_SIZE_2_GB', 2147483648)
class enum_smu_clk_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_GFXCLK = enum_smu_clk_type.define('SMU_GFXCLK', 0)
SMU_VCLK = enum_smu_clk_type.define('SMU_VCLK', 1)
SMU_DCLK = enum_smu_clk_type.define('SMU_DCLK', 2)
SMU_VCLK1 = enum_smu_clk_type.define('SMU_VCLK1', 3)
SMU_DCLK1 = enum_smu_clk_type.define('SMU_DCLK1', 4)
SMU_ECLK = enum_smu_clk_type.define('SMU_ECLK', 5)
SMU_SOCCLK = enum_smu_clk_type.define('SMU_SOCCLK', 6)
SMU_UCLK = enum_smu_clk_type.define('SMU_UCLK', 7)
SMU_DCEFCLK = enum_smu_clk_type.define('SMU_DCEFCLK', 8)
SMU_DISPCLK = enum_smu_clk_type.define('SMU_DISPCLK', 9)
SMU_PIXCLK = enum_smu_clk_type.define('SMU_PIXCLK', 10)
SMU_PHYCLK = enum_smu_clk_type.define('SMU_PHYCLK', 11)
SMU_FCLK = enum_smu_clk_type.define('SMU_FCLK', 12)
SMU_SCLK = enum_smu_clk_type.define('SMU_SCLK', 13)
SMU_MCLK = enum_smu_clk_type.define('SMU_MCLK', 14)
SMU_PCIE = enum_smu_clk_type.define('SMU_PCIE', 15)
SMU_LCLK = enum_smu_clk_type.define('SMU_LCLK', 16)
SMU_OD_CCLK = enum_smu_clk_type.define('SMU_OD_CCLK', 17)
SMU_OD_SCLK = enum_smu_clk_type.define('SMU_OD_SCLK', 18)
SMU_OD_MCLK = enum_smu_clk_type.define('SMU_OD_MCLK', 19)
SMU_OD_VDDC_CURVE = enum_smu_clk_type.define('SMU_OD_VDDC_CURVE', 20)
SMU_OD_RANGE = enum_smu_clk_type.define('SMU_OD_RANGE', 21)
SMU_OD_VDDGFX_OFFSET = enum_smu_clk_type.define('SMU_OD_VDDGFX_OFFSET', 22)
SMU_OD_FAN_CURVE = enum_smu_clk_type.define('SMU_OD_FAN_CURVE', 23)
SMU_OD_ACOUSTIC_LIMIT = enum_smu_clk_type.define('SMU_OD_ACOUSTIC_LIMIT', 24)
SMU_OD_ACOUSTIC_TARGET = enum_smu_clk_type.define('SMU_OD_ACOUSTIC_TARGET', 25)
SMU_OD_FAN_TARGET_TEMPERATURE = enum_smu_clk_type.define('SMU_OD_FAN_TARGET_TEMPERATURE', 26)
SMU_OD_FAN_MINIMUM_PWM = enum_smu_clk_type.define('SMU_OD_FAN_MINIMUM_PWM', 27)
SMU_CLK_COUNT = enum_smu_clk_type.define('SMU_CLK_COUNT', 28)
vclk: int
dclk: int
struct_smu_uvd_clocks.register_fields([('vclk', ctypes.c_uint32, 0), ('dclk', ctypes.c_uint32, 4)])
enum_smu_power_src_type: dict[int, str] = {(SMU_POWER_SOURCE_AC:=0): 'SMU_POWER_SOURCE_AC', (SMU_POWER_SOURCE_DC:=1): 'SMU_POWER_SOURCE_DC', (SMU_POWER_SOURCE_COUNT:=2): 'SMU_POWER_SOURCE_COUNT'}
enum_smu_ppt_limit_type: dict[int, str] = {(SMU_DEFAULT_PPT_LIMIT:=0): 'SMU_DEFAULT_PPT_LIMIT', (SMU_FAST_PPT_LIMIT:=1): 'SMU_FAST_PPT_LIMIT'}
enum_smu_ppt_limit_level: dict[int, str] = {(SMU_PPT_LIMIT_MIN:=-1): 'SMU_PPT_LIMIT_MIN', (SMU_PPT_LIMIT_CURRENT:=0): 'SMU_PPT_LIMIT_CURRENT', (SMU_PPT_LIMIT_DEFAULT:=1): 'SMU_PPT_LIMIT_DEFAULT', (SMU_PPT_LIMIT_MAX:=2): 'SMU_PPT_LIMIT_MAX'}
enum_smu_memory_pool_size: dict[int, str] = {(SMU_MEMORY_POOL_SIZE_ZERO:=0): 'SMU_MEMORY_POOL_SIZE_ZERO', (SMU_MEMORY_POOL_SIZE_256_MB:=268435456): 'SMU_MEMORY_POOL_SIZE_256_MB', (SMU_MEMORY_POOL_SIZE_512_MB:=536870912): 'SMU_MEMORY_POOL_SIZE_512_MB', (SMU_MEMORY_POOL_SIZE_1_GB:=1073741824): 'SMU_MEMORY_POOL_SIZE_1_GB', (SMU_MEMORY_POOL_SIZE_2_GB:=2147483648): 'SMU_MEMORY_POOL_SIZE_2_GB'}
enum_smu_clk_type: dict[int, str] = {(SMU_GFXCLK:=0): 'SMU_GFXCLK', (SMU_VCLK:=1): 'SMU_VCLK', (SMU_DCLK:=2): 'SMU_DCLK', (SMU_VCLK1:=3): 'SMU_VCLK1', (SMU_DCLK1:=4): 'SMU_DCLK1', (SMU_ECLK:=5): 'SMU_ECLK', (SMU_SOCCLK:=6): 'SMU_SOCCLK', (SMU_UCLK:=7): 'SMU_UCLK', (SMU_DCEFCLK:=8): 'SMU_DCEFCLK', (SMU_DISPCLK:=9): 'SMU_DISPCLK', (SMU_PIXCLK:=10): 'SMU_PIXCLK', (SMU_PHYCLK:=11): 'SMU_PHYCLK', (SMU_FCLK:=12): 'SMU_FCLK', (SMU_SCLK:=13): 'SMU_SCLK', (SMU_MCLK:=14): 'SMU_MCLK', (SMU_PCIE:=15): 'SMU_PCIE', (SMU_LCLK:=16): 'SMU_LCLK', (SMU_OD_CCLK:=17): 'SMU_OD_CCLK', (SMU_OD_SCLK:=18): 'SMU_OD_SCLK', (SMU_OD_MCLK:=19): 'SMU_OD_MCLK', (SMU_OD_VDDC_CURVE:=20): 'SMU_OD_VDDC_CURVE', (SMU_OD_RANGE:=21): 'SMU_OD_RANGE', (SMU_OD_VDDGFX_OFFSET:=22): 'SMU_OD_VDDGFX_OFFSET', (SMU_OD_FAN_CURVE:=23): 'SMU_OD_FAN_CURVE', (SMU_OD_ACOUSTIC_LIMIT:=24): 'SMU_OD_ACOUSTIC_LIMIT', (SMU_OD_ACOUSTIC_TARGET:=25): 'SMU_OD_ACOUSTIC_TARGET', (SMU_OD_FAN_TARGET_TEMPERATURE:=26): 'SMU_OD_FAN_TARGET_TEMPERATURE', (SMU_OD_FAN_MINIMUM_PWM:=27): 'SMU_OD_FAN_MINIMUM_PWM', (SMU_CLK_COUNT:=28): 'SMU_CLK_COUNT'}
@c.record
class struct_smu_user_dpm_profile(c.Struct):
SIZE = 140
fan_mode: Annotated[Annotated[int, ctypes.c_uint32], 0]
power_limit: Annotated[Annotated[int, ctypes.c_uint32], 4]
fan_speed_pwm: Annotated[Annotated[int, ctypes.c_uint32], 8]
fan_speed_rpm: Annotated[Annotated[int, ctypes.c_uint32], 12]
flags: Annotated[Annotated[int, ctypes.c_uint32], 16]
user_od: Annotated[Annotated[int, ctypes.c_uint32], 20]
clk_mask: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[28]], 24]
clk_dependency: Annotated[Annotated[int, ctypes.c_uint32], 136]
fan_mode: int
power_limit: int
fan_speed_pwm: int
fan_speed_rpm: int
flags: int
user_od: int
clk_mask: c.Array[ctypes.c_uint32, Literal[28]]
clk_dependency: int
struct_smu_user_dpm_profile.register_fields([('fan_mode', ctypes.c_uint32, 0), ('power_limit', ctypes.c_uint32, 4), ('fan_speed_pwm', ctypes.c_uint32, 8), ('fan_speed_rpm', ctypes.c_uint32, 12), ('flags', ctypes.c_uint32, 16), ('user_od', ctypes.c_uint32, 20), ('clk_mask', c.Array[ctypes.c_uint32, Literal[28]], 24), ('clk_dependency', ctypes.c_uint32, 136)])
@c.record
class struct_smu_table(c.Struct):
SIZE = 48
size: Annotated[Annotated[int, ctypes.c_uint64], 0]
align: Annotated[Annotated[int, ctypes.c_uint32], 8]
domain: Annotated[Annotated[int, ctypes.c_ubyte], 12]
mc_address: Annotated[Annotated[int, ctypes.c_uint64], 16]
cpu_addr: Annotated[ctypes.c_void_p, 24]
bo: Annotated[c.POINTER[struct_amdgpu_bo], 32]
version: Annotated[Annotated[int, ctypes.c_uint32], 40]
class struct_amdgpu_bo(c.Struct): SIZE = 0
class enum_smu_perf_level_designation(Annotated[int, ctypes.c_uint32], c.Enum): pass
PERF_LEVEL_ACTIVITY = enum_smu_perf_level_designation.define('PERF_LEVEL_ACTIVITY', 0)
PERF_LEVEL_POWER_CONTAINMENT = enum_smu_perf_level_designation.define('PERF_LEVEL_POWER_CONTAINMENT', 1)
size: int
align: int
domain: int
mc_address: int
cpu_addr: ctypes.c_void_p
bo: c.POINTER[struct_amdgpu_bo]
version: int
class struct_amdgpu_bo(c.Struct): pass
struct_smu_table.register_fields([('size', ctypes.c_uint64, 0), ('align', ctypes.c_uint32, 8), ('domain', ctypes.c_ubyte, 12), ('mc_address', ctypes.c_uint64, 16), ('cpu_addr', ctypes.c_void_p, 24), ('bo', c.POINTER[struct_amdgpu_bo], 32), ('version', ctypes.c_uint32, 40)])
enum_smu_perf_level_designation: dict[int, str] = {(PERF_LEVEL_ACTIVITY:=0): 'PERF_LEVEL_ACTIVITY', (PERF_LEVEL_POWER_CONTAINMENT:=1): 'PERF_LEVEL_POWER_CONTAINMENT'}
@c.record
class struct_smu_performance_level(c.Struct):
SIZE = 24
core_clock: Annotated[Annotated[int, ctypes.c_uint32], 0]
memory_clock: Annotated[Annotated[int, ctypes.c_uint32], 4]
vddc: Annotated[Annotated[int, ctypes.c_uint32], 8]
vddci: Annotated[Annotated[int, ctypes.c_uint32], 12]
non_local_mem_freq: Annotated[Annotated[int, ctypes.c_uint32], 16]
non_local_mem_width: Annotated[Annotated[int, ctypes.c_uint32], 20]
core_clock: int
memory_clock: int
vddc: int
vddci: int
non_local_mem_freq: int
non_local_mem_width: int
struct_smu_performance_level.register_fields([('core_clock', ctypes.c_uint32, 0), ('memory_clock', ctypes.c_uint32, 4), ('vddc', ctypes.c_uint32, 8), ('vddci', ctypes.c_uint32, 12), ('non_local_mem_freq', ctypes.c_uint32, 16), ('non_local_mem_width', ctypes.c_uint32, 20)])
@c.record
class struct_smu_clock_info(c.Struct):
SIZE = 24
min_mem_clk: Annotated[Annotated[int, ctypes.c_uint32], 0]
max_mem_clk: Annotated[Annotated[int, ctypes.c_uint32], 4]
min_eng_clk: Annotated[Annotated[int, ctypes.c_uint32], 8]
max_eng_clk: Annotated[Annotated[int, ctypes.c_uint32], 12]
min_bus_bandwidth: Annotated[Annotated[int, ctypes.c_uint32], 16]
max_bus_bandwidth: Annotated[Annotated[int, ctypes.c_uint32], 20]
min_mem_clk: int
max_mem_clk: int
min_eng_clk: int
max_eng_clk: int
min_bus_bandwidth: int
max_bus_bandwidth: int
struct_smu_clock_info.register_fields([('min_mem_clk', ctypes.c_uint32, 0), ('max_mem_clk', ctypes.c_uint32, 4), ('min_eng_clk', ctypes.c_uint32, 8), ('max_eng_clk', ctypes.c_uint32, 12), ('min_bus_bandwidth', ctypes.c_uint32, 16), ('max_bus_bandwidth', ctypes.c_uint32, 20)])
@c.record
class struct_smu_bios_boot_up_values(c.Struct):
SIZE = 68
revision: Annotated[Annotated[int, ctypes.c_uint32], 0]
gfxclk: Annotated[Annotated[int, ctypes.c_uint32], 4]
uclk: Annotated[Annotated[int, ctypes.c_uint32], 8]
socclk: Annotated[Annotated[int, ctypes.c_uint32], 12]
dcefclk: Annotated[Annotated[int, ctypes.c_uint32], 16]
eclk: Annotated[Annotated[int, ctypes.c_uint32], 20]
vclk: Annotated[Annotated[int, ctypes.c_uint32], 24]
dclk: Annotated[Annotated[int, ctypes.c_uint32], 28]
vddc: Annotated[Annotated[int, ctypes.c_uint16], 32]
vddci: Annotated[Annotated[int, ctypes.c_uint16], 34]
mvddc: Annotated[Annotated[int, ctypes.c_uint16], 36]
vdd_gfx: Annotated[Annotated[int, ctypes.c_uint16], 38]
cooling_id: Annotated[Annotated[int, ctypes.c_ubyte], 40]
pp_table_id: Annotated[Annotated[int, ctypes.c_uint32], 44]
format_revision: Annotated[Annotated[int, ctypes.c_uint32], 48]
content_revision: Annotated[Annotated[int, ctypes.c_uint32], 52]
fclk: Annotated[Annotated[int, ctypes.c_uint32], 56]
lclk: Annotated[Annotated[int, ctypes.c_uint32], 60]
firmware_caps: Annotated[Annotated[int, ctypes.c_uint32], 64]
class enum_smu_table_id(Annotated[int, ctypes.c_uint32], c.Enum): pass
SMU_TABLE_PPTABLE = enum_smu_table_id.define('SMU_TABLE_PPTABLE', 0)
SMU_TABLE_WATERMARKS = enum_smu_table_id.define('SMU_TABLE_WATERMARKS', 1)
SMU_TABLE_CUSTOM_DPM = enum_smu_table_id.define('SMU_TABLE_CUSTOM_DPM', 2)
SMU_TABLE_DPMCLOCKS = enum_smu_table_id.define('SMU_TABLE_DPMCLOCKS', 3)
SMU_TABLE_AVFS = enum_smu_table_id.define('SMU_TABLE_AVFS', 4)
SMU_TABLE_AVFS_PSM_DEBUG = enum_smu_table_id.define('SMU_TABLE_AVFS_PSM_DEBUG', 5)
SMU_TABLE_AVFS_FUSE_OVERRIDE = enum_smu_table_id.define('SMU_TABLE_AVFS_FUSE_OVERRIDE', 6)
SMU_TABLE_PMSTATUSLOG = enum_smu_table_id.define('SMU_TABLE_PMSTATUSLOG', 7)
SMU_TABLE_SMU_METRICS = enum_smu_table_id.define('SMU_TABLE_SMU_METRICS', 8)
SMU_TABLE_DRIVER_SMU_CONFIG = enum_smu_table_id.define('SMU_TABLE_DRIVER_SMU_CONFIG', 9)
SMU_TABLE_ACTIVITY_MONITOR_COEFF = enum_smu_table_id.define('SMU_TABLE_ACTIVITY_MONITOR_COEFF', 10)
SMU_TABLE_OVERDRIVE = enum_smu_table_id.define('SMU_TABLE_OVERDRIVE', 11)
SMU_TABLE_I2C_COMMANDS = enum_smu_table_id.define('SMU_TABLE_I2C_COMMANDS', 12)
SMU_TABLE_PACE = enum_smu_table_id.define('SMU_TABLE_PACE', 13)
SMU_TABLE_ECCINFO = enum_smu_table_id.define('SMU_TABLE_ECCINFO', 14)
SMU_TABLE_COMBO_PPTABLE = enum_smu_table_id.define('SMU_TABLE_COMBO_PPTABLE', 15)
SMU_TABLE_WIFIBAND = enum_smu_table_id.define('SMU_TABLE_WIFIBAND', 16)
SMU_TABLE_COUNT = enum_smu_table_id.define('SMU_TABLE_COUNT', 17)
c.init_records()
revision: int
gfxclk: int
uclk: int
socclk: int
dcefclk: int
eclk: int
vclk: int
dclk: int
vddc: int
vddci: int
mvddc: int
vdd_gfx: int
cooling_id: int
pp_table_id: int
format_revision: int
content_revision: int
fclk: int
lclk: int
firmware_caps: int
struct_smu_bios_boot_up_values.register_fields([('revision', ctypes.c_uint32, 0), ('gfxclk', ctypes.c_uint32, 4), ('uclk', ctypes.c_uint32, 8), ('socclk', ctypes.c_uint32, 12), ('dcefclk', ctypes.c_uint32, 16), ('eclk', ctypes.c_uint32, 20), ('vclk', ctypes.c_uint32, 24), ('dclk', ctypes.c_uint32, 28), ('vddc', ctypes.c_uint16, 32), ('vddci', ctypes.c_uint16, 34), ('mvddc', ctypes.c_uint16, 36), ('vdd_gfx', ctypes.c_uint16, 38), ('cooling_id', ctypes.c_ubyte, 40), ('pp_table_id', ctypes.c_uint32, 44), ('format_revision', ctypes.c_uint32, 48), ('content_revision', ctypes.c_uint32, 52), ('fclk', ctypes.c_uint32, 56), ('lclk', ctypes.c_uint32, 60), ('firmware_caps', ctypes.c_uint32, 64)])
enum_smu_table_id: dict[int, str] = {(SMU_TABLE_PPTABLE:=0): 'SMU_TABLE_PPTABLE', (SMU_TABLE_WATERMARKS:=1): 'SMU_TABLE_WATERMARKS', (SMU_TABLE_CUSTOM_DPM:=2): 'SMU_TABLE_CUSTOM_DPM', (SMU_TABLE_DPMCLOCKS:=3): 'SMU_TABLE_DPMCLOCKS', (SMU_TABLE_AVFS:=4): 'SMU_TABLE_AVFS', (SMU_TABLE_AVFS_PSM_DEBUG:=5): 'SMU_TABLE_AVFS_PSM_DEBUG', (SMU_TABLE_AVFS_FUSE_OVERRIDE:=6): 'SMU_TABLE_AVFS_FUSE_OVERRIDE', (SMU_TABLE_PMSTATUSLOG:=7): 'SMU_TABLE_PMSTATUSLOG', (SMU_TABLE_SMU_METRICS:=8): 'SMU_TABLE_SMU_METRICS', (SMU_TABLE_DRIVER_SMU_CONFIG:=9): 'SMU_TABLE_DRIVER_SMU_CONFIG', (SMU_TABLE_ACTIVITY_MONITOR_COEFF:=10): 'SMU_TABLE_ACTIVITY_MONITOR_COEFF', (SMU_TABLE_OVERDRIVE:=11): 'SMU_TABLE_OVERDRIVE', (SMU_TABLE_I2C_COMMANDS:=12): 'SMU_TABLE_I2C_COMMANDS', (SMU_TABLE_PACE:=13): 'SMU_TABLE_PACE', (SMU_TABLE_ECCINFO:=14): 'SMU_TABLE_ECCINFO', (SMU_TABLE_COMBO_PPTABLE:=15): 'SMU_TABLE_COMBO_PPTABLE', (SMU_TABLE_WIFIBAND:=16): 'SMU_TABLE_WIFIBAND', (SMU_TABLE_COUNT:=17): 'SMU_TABLE_COUNT'}
PPSMC_Result_OK = 0x1 # type: ignore
PPSMC_Result_Failed = 0xFF # type: ignore
PPSMC_Result_UnknownCmd = 0xFE # type: ignore

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,461 +1,525 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG(c.Struct):
SIZE = 28
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4]
PARAMETER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION
PARAMETER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
extra_info: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
extra_info: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('extra_info', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION(c.Struct):
SIZE = 4
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
reserved_0: int
dst_swap: int
reserved_1: int
src_swap: int
reserved_2: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION.register_fields([('reserved_0', ctypes.c_uint32, 0, 16, 0), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_1', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_2', ctypes.c_uint32, 3, 6, 2), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_HEADER_UNION, 0), ('COUNT_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_COUNT_UNION, 4), ('PARAMETER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_PARAMETER_UNION, 8), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_LO_UNION, 12), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_SRC_ADDR_HI_UNION, 16), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_LO_UNION, 20), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG_DST_ADDR_HI_UNION, 24)])
rocr_AMD_SDMA_PKT_COPY_LINEAR: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_TAG
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG(c.Struct):
SIZE = 52
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0]
SRC_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4]
SRC_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8]
SRC_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12]
SRC_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16]
SRC_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28]
DST_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32]
DST_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36]
DST_PARAMETER_3_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40]
RECT_PARAMETER_1_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44]
RECT_PARAMETER_2_UNION: Annotated[rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48]
HEADER_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION
SRC_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION
SRC_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION
SRC_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION
SRC_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION
SRC_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION
DST_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION
DST_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION
DST_PARAMETER_3_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION
RECT_PARAMETER_1_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION
RECT_PARAMETER_2_UNION: rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 2, 13, 0]
element: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 5]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved: int
element: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved', ctypes.c_uint32, 2, 13, 0), ('element', ctypes.c_uint32, 3, 3, 5), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION(c.Struct):
SIZE = 4
src_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION.register_fields([('src_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION(c.Struct):
SIZE = 4
src_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION.register_fields([('src_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION(c.Struct):
SIZE = 4
src_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
src_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_x: int
reserved_1: int
src_offset_y: int
reserved_2: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION.register_fields([('src_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('src_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION(c.Struct):
SIZE = 4
src_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
src_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_offset_z: int
reserved_1: int
src_pitch: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION.register_fields([('src_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('src_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION(c.Struct):
SIZE = 4
src_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_slice_pitch: int
reserved_1: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION.register_fields([('src_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_7_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION(c.Struct):
SIZE = 4
dst_offset_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
dst_offset_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_8_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_x: int
reserved_1: int
dst_offset_y: int
reserved_2: int
DW_8_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION.register_fields([('dst_offset_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('dst_offset_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_8_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION(c.Struct):
SIZE = 4
dst_offset_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 3]
dst_pitch: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_9_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_offset_z: int
reserved_1: int
dst_pitch: int
DW_9_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION.register_fields([('dst_offset_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 3), ('dst_pitch', ctypes.c_uint32, 1, 19, 5), ('DW_9_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION(c.Struct):
SIZE = 4
dst_slice_pitch: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_10_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_slice_pitch: int
reserved_1: int
DW_10_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION.register_fields([('dst_slice_pitch', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_10_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION(c.Struct):
SIZE = 4
rect_x: Annotated[Annotated[int, ctypes.c_uint32], 0, 14, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 2, 6]
rect_y: Annotated[Annotated[int, ctypes.c_uint32], 2, 14, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_11_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_x: int
reserved_1: int
rect_y: int
reserved_2: int
DW_11_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION.register_fields([('rect_x', ctypes.c_uint32, 0, 14, 0), ('reserved_1', ctypes.c_uint32, 1, 2, 6), ('rect_y', ctypes.c_uint32, 2, 14, 0), ('reserved_2', ctypes.c_uint32, 3, 2, 6), ('DW_11_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION(c.Struct):
SIZE = 4
rect_z: Annotated[Annotated[int, ctypes.c_uint32], 0, 11, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 1, 5, 3]
dst_swap: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_2: Annotated[Annotated[int, ctypes.c_uint32], 2, 6, 2]
src_swap: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_3: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_12_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
rect_z: int
reserved_1: int
dst_swap: int
reserved_2: int
src_swap: int
reserved_3: int
DW_12_DATA: int
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION.register_fields([('rect_z', ctypes.c_uint32, 0, 11, 0), ('reserved_1', ctypes.c_uint32, 1, 5, 3), ('dst_swap', ctypes.c_uint32, 2, 2, 0), ('reserved_2', ctypes.c_uint32, 2, 6, 2), ('src_swap', ctypes.c_uint32, 3, 2, 0), ('reserved_3', ctypes.c_uint32, 3, 6, 2), ('DW_12_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_HEADER_UNION, 0), ('SRC_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_LO_UNION, 4), ('SRC_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_ADDR_HI_UNION, 8), ('SRC_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_1_UNION, 12), ('SRC_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_2_UNION, 16), ('SRC_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_SRC_PARAMETER_3_UNION, 20), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_LO_UNION, 24), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_ADDR_HI_UNION, 28), ('DST_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_1_UNION, 32), ('DST_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_2_UNION, 36), ('DST_PARAMETER_3_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_DST_PARAMETER_3_UNION, 40), ('RECT_PARAMETER_1_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_1_UNION, 44), ('RECT_PARAMETER_2_UNION', rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG_RECT_PARAMETER_2_UNION, 48)])
rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT: TypeAlias = rocr_AMD_SDMA_PKT_COPY_LINEAR_RECT_TAG
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0]
DST_ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4]
DST_ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12]
COUNT_UNION: Annotated[rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION
DST_ADDR_LO_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION
DST_ADDR_HI_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION
COUNT_UNION: rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
sw: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 2]
fillsize: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 6]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
sw: int
reserved_0: int
fillsize: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('sw', ctypes.c_uint32, 2, 2, 0), ('reserved_0', ctypes.c_uint32, 2, 12, 2), ('fillsize', ctypes.c_uint32, 3, 2, 6), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION(c.Struct):
SIZE = 4
dst_addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION.register_fields([('dst_addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION(c.Struct):
SIZE = 4
dst_addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
dst_addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION.register_fields([('dst_addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION(c.Struct):
SIZE = 4
count: Annotated[Annotated[int, ctypes.c_uint32], 0, 22, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 6]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
count: int
reserved_0: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION.register_fields([('count', ctypes.c_uint32, 0, 22, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 6), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_HEADER_UNION, 0), ('DST_ADDR_LO_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_LO_UNION, 4), ('DST_ADDR_HI_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DST_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_DATA_UNION, 12), ('COUNT_UNION', rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG_COUNT_UNION, 16)])
rocr_AMD_SDMA_PKT_CONSTANT_FILL: TypeAlias = rocr_AMD_SDMA_PKT_CONSTANT_FILL_TAG
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG(c.Struct):
SIZE = 16
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8]
DATA_UNION: Annotated[rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12]
HEADER_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION
DATA_UNION: rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
mtype: Annotated[Annotated[int, ctypes.c_uint32], 2, 3, 0]
gcc: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 3]
sys: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
pad1: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
snp: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
gpa: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
l2_policy: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 6, 2]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
mtype: int
gcc: int
sys: int
pad1: int
snp: int
gpa: int
l2_policy: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('mtype', ctypes.c_uint32, 2, 3, 0), ('gcc', ctypes.c_uint32, 2, 1, 3), ('sys', ctypes.c_uint32, 2, 1, 4), ('pad1', ctypes.c_uint32, 2, 1, 5), ('snp', ctypes.c_uint32, 2, 1, 6), ('gpa', ctypes.c_uint32, 2, 1, 7), ('l2_policy', ctypes.c_uint32, 3, 2, 0), ('reserved_0', ctypes.c_uint32, 3, 6, 2), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION(c.Struct):
SIZE = 4
data: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
data: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION.register_fields([('data', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_FENCE_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_ADDR_HI_UNION, 8), ('DATA_UNION', rocr_AMD_SDMA_PKT_FENCE_TAG_DATA_UNION, 12)])
rocr_AMD_SDMA_PKT_FENCE: TypeAlias = rocr_AMD_SDMA_PKT_FENCE_TAG
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG(c.Struct):
SIZE = 24
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8]
VALUE_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12]
MASK_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16]
DW5_UNION: Annotated[rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20]
HEADER_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION
VALUE_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION
MASK_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION
DW5_UNION: rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 10, 0]
hdp_flush: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 3]
func: Annotated[Annotated[int, ctypes.c_uint32], 3, 3, 4]
mem_poll: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
hdp_flush: int
reserved_1: int
func: int
mem_poll: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 10, 0), ('hdp_flush', ctypes.c_uint32, 3, 1, 2), ('reserved_1', ctypes.c_uint32, 3, 1, 3), ('func', ctypes.c_uint32, 3, 3, 4), ('mem_poll', ctypes.c_uint32, 3, 1, 7), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION(c.Struct):
SIZE = 4
value: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
value: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION.register_fields([('value', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION(c.Struct):
SIZE = 4
mask: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
mask: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION.register_fields([('mask', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION(c.Struct):
SIZE = 4
interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
retry_count: Annotated[Annotated[int, ctypes.c_uint32], 2, 12, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
interval: int
retry_count: int
reserved_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION.register_fields([('interval', ctypes.c_uint32, 0, 16, 0), ('retry_count', ctypes.c_uint32, 2, 12, 0), ('reserved_0', ctypes.c_uint32, 3, 4, 4), ('DW_5_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_ADDR_HI_UNION, 8), ('VALUE_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_VALUE_UNION, 12), ('MASK_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_MASK_UNION, 16), ('DW5_UNION', rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG_DW5_UNION, 20)])
rocr_AMD_SDMA_PKT_POLL_REGMEM: TypeAlias = rocr_AMD_SDMA_PKT_POLL_REGMEM_TAG
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG(c.Struct):
SIZE = 32
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8]
SRC_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12]
SRC_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16]
CMP_DATA_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20]
CMP_DATA_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24]
LOOP_UNION: Annotated[rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28]
HEADER_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION
SRC_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION
SRC_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION
CMP_DATA_LO_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION
CMP_DATA_HI_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION
LOOP_UNION: rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
l: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 8, 1]
operation: Annotated[Annotated[int, ctypes.c_uint32], 3, 7, 1]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
l: int
reserved_0: int
operation: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('l', ctypes.c_uint32, 2, 1, 0), ('reserved_0', ctypes.c_uint32, 2, 8, 1), ('operation', ctypes.c_uint32, 3, 7, 1), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION(c.Struct):
SIZE = 4
src_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_31_0: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION.register_fields([('src_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION(c.Struct):
SIZE = 4
src_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
src_data_63_32: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION.register_fields([('src_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION(c.Struct):
SIZE = 4
cmp_data_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_31_0: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION.register_fields([('cmp_data_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_5_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION(c.Struct):
SIZE = 4
cmp_data_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_6_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
cmp_data_63_32: int
DW_6_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION.register_fields([('cmp_data_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_6_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION(c.Struct):
SIZE = 4
loop_interval: Annotated[Annotated[int, ctypes.c_uint32], 0, 13, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 1, 19, 5]
DW_7_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
loop_interval: int
reserved_0: int
DW_7_DATA: int
rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION.register_fields([('loop_interval', ctypes.c_uint32, 0, 13, 0), ('reserved_0', ctypes.c_uint32, 1, 19, 5), ('DW_7_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_ATOMIC_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_ADDR_HI_UNION, 8), ('SRC_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_LO_UNION, 12), ('SRC_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_SRC_DATA_HI_UNION, 16), ('CMP_DATA_LO_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_LO_UNION, 20), ('CMP_DATA_HI_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_CMP_DATA_HI_UNION, 24), ('LOOP_UNION', rocr_AMD_SDMA_PKT_ATOMIC_TAG_LOOP_UNION, 28)])
rocr_AMD_SDMA_PKT_ATOMIC: TypeAlias = rocr_AMD_SDMA_PKT_ATOMIC_TAG
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG(c.Struct):
SIZE = 12
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0]
ADDR_LO_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4]
ADDR_HI_UNION: Annotated[rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8]
HEADER_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION
ADDR_LO_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION
ADDR_HI_UNION: rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION(c.Struct):
SIZE = 4
addr_31_0: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_31_0: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION.register_fields([('addr_31_0', ctypes.c_uint32, 0, 32, 0), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION(c.Struct):
SIZE = 4
addr_63_32: Annotated[Annotated[int, ctypes.c_uint32], 0, 32, 0]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
addr_63_32: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION.register_fields([('addr_63_32', ctypes.c_uint32, 0, 32, 0), ('DW_2_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TIMESTAMP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_HEADER_UNION, 0), ('ADDR_LO_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_LO_UNION, 4), ('ADDR_HI_UNION', rocr_AMD_SDMA_PKT_TIMESTAMP_TAG_ADDR_HI_UNION, 8)])
rocr_AMD_SDMA_PKT_TIMESTAMP: TypeAlias = rocr_AMD_SDMA_PKT_TIMESTAMP_TAG
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG(c.Struct):
SIZE = 8
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0]
INT_CONTEXT_UNION: Annotated[rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4]
HEADER_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION
INT_CONTEXT_UNION: rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
reserved_0: Annotated[Annotated[int, ctypes.c_uint32], 2, 16, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
reserved_0: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('reserved_0', ctypes.c_uint32, 2, 16, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION(c.Struct):
SIZE = 4
int_ctx: Annotated[Annotated[int, ctypes.c_uint32], 0, 28, 0]
reserved_1: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 4]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
int_ctx: int
reserved_1: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION.register_fields([('int_ctx', ctypes.c_uint32, 0, 28, 0), ('reserved_1', ctypes.c_uint32, 3, 4, 4), ('DW_1_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_TRAP_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_HEADER_UNION, 0), ('INT_CONTEXT_UNION', rocr_AMD_SDMA_PKT_TRAP_TAG_INT_CONTEXT_UNION, 4)])
rocr_AMD_SDMA_PKT_TRAP: TypeAlias = rocr_AMD_SDMA_PKT_TRAP_TAG
@c.record
class rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG(c.Struct):
SIZE = 24
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 4]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 8]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 12]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 16]
DW_5_DATA: Annotated[Annotated[int, ctypes.c_uint32], 20]
DW_0_DATA: int
DW_1_DATA: int
DW_2_DATA: int
DW_3_DATA: int
DW_4_DATA: int
DW_5_DATA: int
rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG.register_fields([('DW_0_DATA', ctypes.c_uint32, 0), ('DW_1_DATA', ctypes.c_uint32, 4), ('DW_2_DATA', ctypes.c_uint32, 8), ('DW_3_DATA', ctypes.c_uint32, 12), ('DW_4_DATA', ctypes.c_uint32, 16), ('DW_5_DATA', ctypes.c_uint32, 20)])
rocr_AMD_SDMA_PKT_HDP_FLUSH: TypeAlias = rocr_AMD_SDMA_PKT_HDP_FLUSH_TAG
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG(c.Struct):
SIZE = 20
HEADER_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0]
WORD1_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4]
WORD2_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8]
WORD3_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12]
WORD4_UNION: Annotated[rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16]
HEADER_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION
WORD1_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION
WORD2_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION
WORD3_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION
WORD4_UNION: rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
sub_op: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
DW_0_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
sub_op: int
DW_0_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION.register_fields([('op', ctypes.c_uint32, 0, 8, 0), ('sub_op', ctypes.c_uint32, 1, 8, 0), ('DW_0_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION(c.Struct):
SIZE = 4
BaseVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_1_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_LO: int
DW_1_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION.register_fields([('BaseVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_1_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION(c.Struct):
SIZE = 4
BaseVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
GCR_CONTROL_GLI_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 0]
GCR_CONTROL_GL1_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 2, 2, 2]
GCR_CONTROL_GLM_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 4]
GCR_CONTROL_GLM_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 5]
GCR_CONTROL_GLK_WB: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 6]
GCR_CONTROL_GLK_INV: Annotated[Annotated[int, ctypes.c_uint32], 2, 1, 7]
GCR_CONTROL_GLV_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 0]
GCR_CONTROL_GL1_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 1]
GCR_CONTROL_GL2_US: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 2]
GCR_CONTROL_GL2_RANGE: Annotated[Annotated[int, ctypes.c_uint32], 3, 2, 3]
GCR_CONTROL_GL2_DISCARD: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 5]
GCR_CONTROL_GL2_INV: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 6]
GCR_CONTROL_GL2_WB: Annotated[Annotated[int, ctypes.c_uint32], 3, 1, 7]
DW_2_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
BaseVA_HI: int
GCR_CONTROL_GLI_INV: int
GCR_CONTROL_GL1_RANGE: int
GCR_CONTROL_GLM_WB: int
GCR_CONTROL_GLM_INV: int
GCR_CONTROL_GLK_WB: int
GCR_CONTROL_GLK_INV: int
GCR_CONTROL_GLV_INV: int
GCR_CONTROL_GL1_INV: int
GCR_CONTROL_GL2_US: int
GCR_CONTROL_GL2_RANGE: int
GCR_CONTROL_GL2_DISCARD: int
GCR_CONTROL_GL2_INV: int
GCR_CONTROL_GL2_WB: int
DW_2_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION.register_fields([('BaseVA_HI', ctypes.c_uint32, 0, 16, 0), ('GCR_CONTROL_GLI_INV', ctypes.c_uint32, 2, 2, 0), ('GCR_CONTROL_GL1_RANGE', ctypes.c_uint32, 2, 2, 2), ('GCR_CONTROL_GLM_WB', ctypes.c_uint32, 2, 1, 4), ('GCR_CONTROL_GLM_INV', ctypes.c_uint32, 2, 1, 5), ('GCR_CONTROL_GLK_WB', ctypes.c_uint32, 2, 1, 6), ('GCR_CONTROL_GLK_INV', ctypes.c_uint32, 2, 1, 7), ('GCR_CONTROL_GLV_INV', ctypes.c_uint32, 3, 1, 0), ('GCR_CONTROL_GL1_INV', ctypes.c_uint32, 3, 1, 1), ('GCR_CONTROL_GL2_US', ctypes.c_uint32, 3, 1, 2), ('GCR_CONTROL_GL2_RANGE', ctypes.c_uint32, 3, 2, 3), ('GCR_CONTROL_GL2_DISCARD', ctypes.c_uint32, 3, 1, 5), ('GCR_CONTROL_GL2_INV', ctypes.c_uint32, 3, 1, 6), ('GCR_CONTROL_GL2_WB', ctypes.c_uint32, 3, 1, 7), ('DW_2_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION(c.Struct):
SIZE = 4
GCR_CONTROL_RANGE_IS_PA: Annotated[Annotated[int, ctypes.c_uint32], 0, 1, 0]
GCR_CONTROL_SEQ: Annotated[Annotated[int, ctypes.c_uint32], 0, 2, 1]
LimitVA_LO: Annotated[Annotated[int, ctypes.c_uint32], 0, 25, 7]
DW_3_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
GCR_CONTROL_RANGE_IS_PA: int
GCR_CONTROL_SEQ: int
LimitVA_LO: int
DW_3_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION.register_fields([('GCR_CONTROL_RANGE_IS_PA', ctypes.c_uint32, 0, 1, 0), ('GCR_CONTROL_SEQ', ctypes.c_uint32, 0, 2, 1), ('LimitVA_LO', ctypes.c_uint32, 0, 25, 7), ('DW_3_DATA', ctypes.c_uint32, 0)])
@c.record
class rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION(c.Struct):
SIZE = 4
LimitVA_HI: Annotated[Annotated[int, ctypes.c_uint32], 0, 16, 0]
VMID: Annotated[Annotated[int, ctypes.c_uint32], 3, 4, 0]
DW_4_DATA: Annotated[Annotated[int, ctypes.c_uint32], 0]
LimitVA_HI: int
VMID: int
DW_4_DATA: int
rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION.register_fields([('LimitVA_HI', ctypes.c_uint32, 0, 16, 0), ('VMID', ctypes.c_uint32, 3, 4, 0), ('DW_4_DATA', ctypes.c_uint32, 0)])
rocr_AMD_SDMA_PKT_GCR_TAG.register_fields([('HEADER_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_HEADER_UNION, 0), ('WORD1_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD1_UNION, 4), ('WORD2_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD2_UNION, 8), ('WORD3_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD3_UNION, 12), ('WORD4_UNION', rocr_AMD_SDMA_PKT_GCR_TAG_WORD4_UNION, 16)])
rocr_AMD_SDMA_PKT_GCR: TypeAlias = rocr_AMD_SDMA_PKT_GCR_TAG
@c.record
class IP_BASE_INSTANCE(c.Struct):
SIZE = 20
segment: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[5]], 0]
segment: c.Array[ctypes.c_uint32, Literal[5]]
IP_BASE_INSTANCE.register_fields([('segment', c.Array[ctypes.c_uint32, Literal[5]], 0)])
@c.record
class IP_BASE(c.Struct):
SIZE = 140
instance: Annotated[c.Array[IP_BASE_INSTANCE, Literal[7]], 0]
c.init_records()
instance: c.Array[IP_BASE_INSTANCE, Literal[7]]
IP_BASE.register_fields([('instance', c.Array[IP_BASE_INSTANCE, Literal[7]], 0)])
SDMA_OP_COPY = 1 # type: ignore
SDMA_OP_FENCE = 5 # type: ignore
SDMA_OP_TRAP = 6 # type: ignore

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,546 +1,467 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
class enum_HEVCNALUnitType(Annotated[int, ctypes.c_uint32], c.Enum): pass
HEVC_NAL_TRAIL_N = enum_HEVCNALUnitType.define('HEVC_NAL_TRAIL_N', 0)
HEVC_NAL_TRAIL_R = enum_HEVCNALUnitType.define('HEVC_NAL_TRAIL_R', 1)
HEVC_NAL_TSA_N = enum_HEVCNALUnitType.define('HEVC_NAL_TSA_N', 2)
HEVC_NAL_TSA_R = enum_HEVCNALUnitType.define('HEVC_NAL_TSA_R', 3)
HEVC_NAL_STSA_N = enum_HEVCNALUnitType.define('HEVC_NAL_STSA_N', 4)
HEVC_NAL_STSA_R = enum_HEVCNALUnitType.define('HEVC_NAL_STSA_R', 5)
HEVC_NAL_RADL_N = enum_HEVCNALUnitType.define('HEVC_NAL_RADL_N', 6)
HEVC_NAL_RADL_R = enum_HEVCNALUnitType.define('HEVC_NAL_RADL_R', 7)
HEVC_NAL_RASL_N = enum_HEVCNALUnitType.define('HEVC_NAL_RASL_N', 8)
HEVC_NAL_RASL_R = enum_HEVCNALUnitType.define('HEVC_NAL_RASL_R', 9)
HEVC_NAL_VCL_N10 = enum_HEVCNALUnitType.define('HEVC_NAL_VCL_N10', 10)
HEVC_NAL_VCL_R11 = enum_HEVCNALUnitType.define('HEVC_NAL_VCL_R11', 11)
HEVC_NAL_VCL_N12 = enum_HEVCNALUnitType.define('HEVC_NAL_VCL_N12', 12)
HEVC_NAL_VCL_R13 = enum_HEVCNALUnitType.define('HEVC_NAL_VCL_R13', 13)
HEVC_NAL_VCL_N14 = enum_HEVCNALUnitType.define('HEVC_NAL_VCL_N14', 14)
HEVC_NAL_VCL_R15 = enum_HEVCNALUnitType.define('HEVC_NAL_VCL_R15', 15)
HEVC_NAL_BLA_W_LP = enum_HEVCNALUnitType.define('HEVC_NAL_BLA_W_LP', 16)
HEVC_NAL_BLA_W_RADL = enum_HEVCNALUnitType.define('HEVC_NAL_BLA_W_RADL', 17)
HEVC_NAL_BLA_N_LP = enum_HEVCNALUnitType.define('HEVC_NAL_BLA_N_LP', 18)
HEVC_NAL_IDR_W_RADL = enum_HEVCNALUnitType.define('HEVC_NAL_IDR_W_RADL', 19)
HEVC_NAL_IDR_N_LP = enum_HEVCNALUnitType.define('HEVC_NAL_IDR_N_LP', 20)
HEVC_NAL_CRA_NUT = enum_HEVCNALUnitType.define('HEVC_NAL_CRA_NUT', 21)
HEVC_NAL_RSV_IRAP_VCL22 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_IRAP_VCL22', 22)
HEVC_NAL_RSV_IRAP_VCL23 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_IRAP_VCL23', 23)
HEVC_NAL_RSV_VCL24 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL24', 24)
HEVC_NAL_RSV_VCL25 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL25', 25)
HEVC_NAL_RSV_VCL26 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL26', 26)
HEVC_NAL_RSV_VCL27 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL27', 27)
HEVC_NAL_RSV_VCL28 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL28', 28)
HEVC_NAL_RSV_VCL29 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL29', 29)
HEVC_NAL_RSV_VCL30 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL30', 30)
HEVC_NAL_RSV_VCL31 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_VCL31', 31)
HEVC_NAL_VPS = enum_HEVCNALUnitType.define('HEVC_NAL_VPS', 32)
HEVC_NAL_SPS = enum_HEVCNALUnitType.define('HEVC_NAL_SPS', 33)
HEVC_NAL_PPS = enum_HEVCNALUnitType.define('HEVC_NAL_PPS', 34)
HEVC_NAL_AUD = enum_HEVCNALUnitType.define('HEVC_NAL_AUD', 35)
HEVC_NAL_EOS_NUT = enum_HEVCNALUnitType.define('HEVC_NAL_EOS_NUT', 36)
HEVC_NAL_EOB_NUT = enum_HEVCNALUnitType.define('HEVC_NAL_EOB_NUT', 37)
HEVC_NAL_FD_NUT = enum_HEVCNALUnitType.define('HEVC_NAL_FD_NUT', 38)
HEVC_NAL_SEI_PREFIX = enum_HEVCNALUnitType.define('HEVC_NAL_SEI_PREFIX', 39)
HEVC_NAL_SEI_SUFFIX = enum_HEVCNALUnitType.define('HEVC_NAL_SEI_SUFFIX', 40)
HEVC_NAL_RSV_NVCL41 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_NVCL41', 41)
HEVC_NAL_RSV_NVCL42 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_NVCL42', 42)
HEVC_NAL_RSV_NVCL43 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_NVCL43', 43)
HEVC_NAL_RSV_NVCL44 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_NVCL44', 44)
HEVC_NAL_RSV_NVCL45 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_NVCL45', 45)
HEVC_NAL_RSV_NVCL46 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_NVCL46', 46)
HEVC_NAL_RSV_NVCL47 = enum_HEVCNALUnitType.define('HEVC_NAL_RSV_NVCL47', 47)
HEVC_NAL_UNSPEC48 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC48', 48)
HEVC_NAL_UNSPEC49 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC49', 49)
HEVC_NAL_UNSPEC50 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC50', 50)
HEVC_NAL_UNSPEC51 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC51', 51)
HEVC_NAL_UNSPEC52 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC52', 52)
HEVC_NAL_UNSPEC53 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC53', 53)
HEVC_NAL_UNSPEC54 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC54', 54)
HEVC_NAL_UNSPEC55 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC55', 55)
HEVC_NAL_UNSPEC56 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC56', 56)
HEVC_NAL_UNSPEC57 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC57', 57)
HEVC_NAL_UNSPEC58 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC58', 58)
HEVC_NAL_UNSPEC59 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC59', 59)
HEVC_NAL_UNSPEC60 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC60', 60)
HEVC_NAL_UNSPEC61 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC61', 61)
HEVC_NAL_UNSPEC62 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC62', 62)
HEVC_NAL_UNSPEC63 = enum_HEVCNALUnitType.define('HEVC_NAL_UNSPEC63', 63)
class enum_HEVCSliceType(Annotated[int, ctypes.c_uint32], c.Enum): pass
HEVC_SLICE_B = enum_HEVCSliceType.define('HEVC_SLICE_B', 0)
HEVC_SLICE_P = enum_HEVCSliceType.define('HEVC_SLICE_P', 1)
HEVC_SLICE_I = enum_HEVCSliceType.define('HEVC_SLICE_I', 2)
class _anonenum0(Annotated[int, ctypes.c_uint32], c.Enum): pass
HEVC_MAX_LAYERS = _anonenum0.define('HEVC_MAX_LAYERS', 63)
HEVC_MAX_SUB_LAYERS = _anonenum0.define('HEVC_MAX_SUB_LAYERS', 7)
HEVC_MAX_LAYER_SETS = _anonenum0.define('HEVC_MAX_LAYER_SETS', 1024)
HEVC_MAX_LAYER_ID = _anonenum0.define('HEVC_MAX_LAYER_ID', 63)
HEVC_MAX_NUH_LAYER_ID = _anonenum0.define('HEVC_MAX_NUH_LAYER_ID', 62)
HEVC_MAX_VPS_COUNT = _anonenum0.define('HEVC_MAX_VPS_COUNT', 16)
HEVC_MAX_SPS_COUNT = _anonenum0.define('HEVC_MAX_SPS_COUNT', 16)
HEVC_MAX_PPS_COUNT = _anonenum0.define('HEVC_MAX_PPS_COUNT', 64)
HEVC_MAX_DPB_SIZE = _anonenum0.define('HEVC_MAX_DPB_SIZE', 16)
HEVC_MAX_REFS = _anonenum0.define('HEVC_MAX_REFS', 16)
HEVC_MAX_SHORT_TERM_REF_PIC_SETS = _anonenum0.define('HEVC_MAX_SHORT_TERM_REF_PIC_SETS', 64)
HEVC_MAX_LONG_TERM_REF_PICS = _anonenum0.define('HEVC_MAX_LONG_TERM_REF_PICS', 32)
HEVC_MIN_LOG2_CTB_SIZE = _anonenum0.define('HEVC_MIN_LOG2_CTB_SIZE', 4)
HEVC_MAX_LOG2_CTB_SIZE = _anonenum0.define('HEVC_MAX_LOG2_CTB_SIZE', 6)
HEVC_MAX_CPB_CNT = _anonenum0.define('HEVC_MAX_CPB_CNT', 32)
HEVC_MAX_LUMA_PS = _anonenum0.define('HEVC_MAX_LUMA_PS', 35651584)
HEVC_MAX_WIDTH = _anonenum0.define('HEVC_MAX_WIDTH', 16888)
HEVC_MAX_HEIGHT = _anonenum0.define('HEVC_MAX_HEIGHT', 16888)
HEVC_MAX_TILE_ROWS = _anonenum0.define('HEVC_MAX_TILE_ROWS', 22)
HEVC_MAX_TILE_COLUMNS = _anonenum0.define('HEVC_MAX_TILE_COLUMNS', 20)
HEVC_MAX_SLICE_SEGMENTS = _anonenum0.define('HEVC_MAX_SLICE_SEGMENTS', 600)
HEVC_MAX_ENTRY_POINT_OFFSETS = _anonenum0.define('HEVC_MAX_ENTRY_POINT_OFFSETS', 2700)
HEVC_MAX_PALETTE_PREDICTOR_SIZE = _anonenum0.define('HEVC_MAX_PALETTE_PREDICTOR_SIZE', 128)
class enum_HEVCScalabilityMask(Annotated[int, ctypes.c_uint32], c.Enum): pass
HEVC_SCALABILITY_DEPTH = enum_HEVCScalabilityMask.define('HEVC_SCALABILITY_DEPTH', 32768)
HEVC_SCALABILITY_MULTIVIEW = enum_HEVCScalabilityMask.define('HEVC_SCALABILITY_MULTIVIEW', 16384)
HEVC_SCALABILITY_SPATIAL = enum_HEVCScalabilityMask.define('HEVC_SCALABILITY_SPATIAL', 8192)
HEVC_SCALABILITY_AUXILIARY = enum_HEVCScalabilityMask.define('HEVC_SCALABILITY_AUXILIARY', 4096)
HEVC_SCALABILITY_MASK_MAX = enum_HEVCScalabilityMask.define('HEVC_SCALABILITY_MASK_MAX', 65535)
class enum_HEVCAuxId(Annotated[int, ctypes.c_uint32], c.Enum): pass
HEVC_AUX_ALPHA = enum_HEVCAuxId.define('HEVC_AUX_ALPHA', 1)
HEVC_AUX_DEPTH = enum_HEVCAuxId.define('HEVC_AUX_DEPTH', 2)
enum_HEVCNALUnitType: dict[int, str] = {(HEVC_NAL_TRAIL_N:=0): 'HEVC_NAL_TRAIL_N', (HEVC_NAL_TRAIL_R:=1): 'HEVC_NAL_TRAIL_R', (HEVC_NAL_TSA_N:=2): 'HEVC_NAL_TSA_N', (HEVC_NAL_TSA_R:=3): 'HEVC_NAL_TSA_R', (HEVC_NAL_STSA_N:=4): 'HEVC_NAL_STSA_N', (HEVC_NAL_STSA_R:=5): 'HEVC_NAL_STSA_R', (HEVC_NAL_RADL_N:=6): 'HEVC_NAL_RADL_N', (HEVC_NAL_RADL_R:=7): 'HEVC_NAL_RADL_R', (HEVC_NAL_RASL_N:=8): 'HEVC_NAL_RASL_N', (HEVC_NAL_RASL_R:=9): 'HEVC_NAL_RASL_R', (HEVC_NAL_VCL_N10:=10): 'HEVC_NAL_VCL_N10', (HEVC_NAL_VCL_R11:=11): 'HEVC_NAL_VCL_R11', (HEVC_NAL_VCL_N12:=12): 'HEVC_NAL_VCL_N12', (HEVC_NAL_VCL_R13:=13): 'HEVC_NAL_VCL_R13', (HEVC_NAL_VCL_N14:=14): 'HEVC_NAL_VCL_N14', (HEVC_NAL_VCL_R15:=15): 'HEVC_NAL_VCL_R15', (HEVC_NAL_BLA_W_LP:=16): 'HEVC_NAL_BLA_W_LP', (HEVC_NAL_BLA_W_RADL:=17): 'HEVC_NAL_BLA_W_RADL', (HEVC_NAL_BLA_N_LP:=18): 'HEVC_NAL_BLA_N_LP', (HEVC_NAL_IDR_W_RADL:=19): 'HEVC_NAL_IDR_W_RADL', (HEVC_NAL_IDR_N_LP:=20): 'HEVC_NAL_IDR_N_LP', (HEVC_NAL_CRA_NUT:=21): 'HEVC_NAL_CRA_NUT', (HEVC_NAL_RSV_IRAP_VCL22:=22): 'HEVC_NAL_RSV_IRAP_VCL22', (HEVC_NAL_RSV_IRAP_VCL23:=23): 'HEVC_NAL_RSV_IRAP_VCL23', (HEVC_NAL_RSV_VCL24:=24): 'HEVC_NAL_RSV_VCL24', (HEVC_NAL_RSV_VCL25:=25): 'HEVC_NAL_RSV_VCL25', (HEVC_NAL_RSV_VCL26:=26): 'HEVC_NAL_RSV_VCL26', (HEVC_NAL_RSV_VCL27:=27): 'HEVC_NAL_RSV_VCL27', (HEVC_NAL_RSV_VCL28:=28): 'HEVC_NAL_RSV_VCL28', (HEVC_NAL_RSV_VCL29:=29): 'HEVC_NAL_RSV_VCL29', (HEVC_NAL_RSV_VCL30:=30): 'HEVC_NAL_RSV_VCL30', (HEVC_NAL_RSV_VCL31:=31): 'HEVC_NAL_RSV_VCL31', (HEVC_NAL_VPS:=32): 'HEVC_NAL_VPS', (HEVC_NAL_SPS:=33): 'HEVC_NAL_SPS', (HEVC_NAL_PPS:=34): 'HEVC_NAL_PPS', (HEVC_NAL_AUD:=35): 'HEVC_NAL_AUD', (HEVC_NAL_EOS_NUT:=36): 'HEVC_NAL_EOS_NUT', (HEVC_NAL_EOB_NUT:=37): 'HEVC_NAL_EOB_NUT', (HEVC_NAL_FD_NUT:=38): 'HEVC_NAL_FD_NUT', (HEVC_NAL_SEI_PREFIX:=39): 'HEVC_NAL_SEI_PREFIX', (HEVC_NAL_SEI_SUFFIX:=40): 'HEVC_NAL_SEI_SUFFIX', (HEVC_NAL_RSV_NVCL41:=41): 'HEVC_NAL_RSV_NVCL41', (HEVC_NAL_RSV_NVCL42:=42): 'HEVC_NAL_RSV_NVCL42', (HEVC_NAL_RSV_NVCL43:=43): 'HEVC_NAL_RSV_NVCL43', (HEVC_NAL_RSV_NVCL44:=44): 'HEVC_NAL_RSV_NVCL44', (HEVC_NAL_RSV_NVCL45:=45): 'HEVC_NAL_RSV_NVCL45', (HEVC_NAL_RSV_NVCL46:=46): 'HEVC_NAL_RSV_NVCL46', (HEVC_NAL_RSV_NVCL47:=47): 'HEVC_NAL_RSV_NVCL47', (HEVC_NAL_UNSPEC48:=48): 'HEVC_NAL_UNSPEC48', (HEVC_NAL_UNSPEC49:=49): 'HEVC_NAL_UNSPEC49', (HEVC_NAL_UNSPEC50:=50): 'HEVC_NAL_UNSPEC50', (HEVC_NAL_UNSPEC51:=51): 'HEVC_NAL_UNSPEC51', (HEVC_NAL_UNSPEC52:=52): 'HEVC_NAL_UNSPEC52', (HEVC_NAL_UNSPEC53:=53): 'HEVC_NAL_UNSPEC53', (HEVC_NAL_UNSPEC54:=54): 'HEVC_NAL_UNSPEC54', (HEVC_NAL_UNSPEC55:=55): 'HEVC_NAL_UNSPEC55', (HEVC_NAL_UNSPEC56:=56): 'HEVC_NAL_UNSPEC56', (HEVC_NAL_UNSPEC57:=57): 'HEVC_NAL_UNSPEC57', (HEVC_NAL_UNSPEC58:=58): 'HEVC_NAL_UNSPEC58', (HEVC_NAL_UNSPEC59:=59): 'HEVC_NAL_UNSPEC59', (HEVC_NAL_UNSPEC60:=60): 'HEVC_NAL_UNSPEC60', (HEVC_NAL_UNSPEC61:=61): 'HEVC_NAL_UNSPEC61', (HEVC_NAL_UNSPEC62:=62): 'HEVC_NAL_UNSPEC62', (HEVC_NAL_UNSPEC63:=63): 'HEVC_NAL_UNSPEC63'}
enum_HEVCSliceType: dict[int, str] = {(HEVC_SLICE_B:=0): 'HEVC_SLICE_B', (HEVC_SLICE_P:=1): 'HEVC_SLICE_P', (HEVC_SLICE_I:=2): 'HEVC_SLICE_I'}
_anonenum0: dict[int, str] = {(HEVC_MAX_LAYERS:=63): 'HEVC_MAX_LAYERS', (HEVC_MAX_SUB_LAYERS:=7): 'HEVC_MAX_SUB_LAYERS', (HEVC_MAX_LAYER_SETS:=1024): 'HEVC_MAX_LAYER_SETS', (HEVC_MAX_LAYER_ID:=63): 'HEVC_MAX_LAYER_ID', (HEVC_MAX_NUH_LAYER_ID:=62): 'HEVC_MAX_NUH_LAYER_ID', (HEVC_MAX_VPS_COUNT:=16): 'HEVC_MAX_VPS_COUNT', (HEVC_MAX_SPS_COUNT:=16): 'HEVC_MAX_SPS_COUNT', (HEVC_MAX_PPS_COUNT:=64): 'HEVC_MAX_PPS_COUNT', (HEVC_MAX_DPB_SIZE:=16): 'HEVC_MAX_DPB_SIZE', (HEVC_MAX_REFS:=16): 'HEVC_MAX_REFS', (HEVC_MAX_SHORT_TERM_REF_PIC_SETS:=64): 'HEVC_MAX_SHORT_TERM_REF_PIC_SETS', (HEVC_MAX_LONG_TERM_REF_PICS:=32): 'HEVC_MAX_LONG_TERM_REF_PICS', (HEVC_MIN_LOG2_CTB_SIZE:=4): 'HEVC_MIN_LOG2_CTB_SIZE', (HEVC_MAX_LOG2_CTB_SIZE:=6): 'HEVC_MAX_LOG2_CTB_SIZE', (HEVC_MAX_CPB_CNT:=32): 'HEVC_MAX_CPB_CNT', (HEVC_MAX_LUMA_PS:=35651584): 'HEVC_MAX_LUMA_PS', (HEVC_MAX_WIDTH:=16888): 'HEVC_MAX_WIDTH', (HEVC_MAX_HEIGHT:=16888): 'HEVC_MAX_HEIGHT', (HEVC_MAX_TILE_ROWS:=22): 'HEVC_MAX_TILE_ROWS', (HEVC_MAX_TILE_COLUMNS:=20): 'HEVC_MAX_TILE_COLUMNS', (HEVC_MAX_SLICE_SEGMENTS:=600): 'HEVC_MAX_SLICE_SEGMENTS', (HEVC_MAX_ENTRY_POINT_OFFSETS:=2700): 'HEVC_MAX_ENTRY_POINT_OFFSETS', (HEVC_MAX_PALETTE_PREDICTOR_SIZE:=128): 'HEVC_MAX_PALETTE_PREDICTOR_SIZE'}
enum_HEVCScalabilityMask: dict[int, str] = {(HEVC_SCALABILITY_DEPTH:=32768): 'HEVC_SCALABILITY_DEPTH', (HEVC_SCALABILITY_MULTIVIEW:=16384): 'HEVC_SCALABILITY_MULTIVIEW', (HEVC_SCALABILITY_SPATIAL:=8192): 'HEVC_SCALABILITY_SPATIAL', (HEVC_SCALABILITY_AUXILIARY:=4096): 'HEVC_SCALABILITY_AUXILIARY', (HEVC_SCALABILITY_MASK_MAX:=65535): 'HEVC_SCALABILITY_MASK_MAX'}
enum_HEVCAuxId: dict[int, str] = {(HEVC_AUX_ALPHA:=1): 'HEVC_AUX_ALPHA', (HEVC_AUX_DEPTH:=2): 'HEVC_AUX_DEPTH'}
@c.record
class struct_H265RawNALUnitHeader(c.Struct):
SIZE = 3
nal_unit_type: Annotated[uint8_t, 0]
nuh_layer_id: Annotated[uint8_t, 1]
nuh_temporal_id_plus1: Annotated[uint8_t, 2]
uint8_t: TypeAlias = Annotated[int, ctypes.c_ubyte]
nal_unit_type: int
nuh_layer_id: int
nuh_temporal_id_plus1: int
uint8_t: TypeAlias = ctypes.c_ubyte
struct_H265RawNALUnitHeader.register_fields([('nal_unit_type', uint8_t, 0), ('nuh_layer_id', uint8_t, 1), ('nuh_temporal_id_plus1', uint8_t, 2)])
H265RawNALUnitHeader: TypeAlias = struct_H265RawNALUnitHeader
@c.record
class struct_H265RawProfileTierLevel(c.Struct):
SIZE = 422
general_profile_space: Annotated[uint8_t, 0]
general_tier_flag: Annotated[uint8_t, 1]
general_profile_idc: Annotated[uint8_t, 2]
general_profile_compatibility_flag: Annotated[c.Array[uint8_t, Literal[32]], 3]
general_progressive_source_flag: Annotated[uint8_t, 35]
general_interlaced_source_flag: Annotated[uint8_t, 36]
general_non_packed_constraint_flag: Annotated[uint8_t, 37]
general_frame_only_constraint_flag: Annotated[uint8_t, 38]
general_max_12bit_constraint_flag: Annotated[uint8_t, 39]
general_max_10bit_constraint_flag: Annotated[uint8_t, 40]
general_max_8bit_constraint_flag: Annotated[uint8_t, 41]
general_max_422chroma_constraint_flag: Annotated[uint8_t, 42]
general_max_420chroma_constraint_flag: Annotated[uint8_t, 43]
general_max_monochrome_constraint_flag: Annotated[uint8_t, 44]
general_intra_constraint_flag: Annotated[uint8_t, 45]
general_one_picture_only_constraint_flag: Annotated[uint8_t, 46]
general_lower_bit_rate_constraint_flag: Annotated[uint8_t, 47]
general_max_14bit_constraint_flag: Annotated[uint8_t, 48]
general_inbld_flag: Annotated[uint8_t, 49]
general_level_idc: Annotated[uint8_t, 50]
sub_layer_profile_present_flag: Annotated[c.Array[uint8_t, Literal[7]], 51]
sub_layer_level_present_flag: Annotated[c.Array[uint8_t, Literal[7]], 58]
sub_layer_profile_space: Annotated[c.Array[uint8_t, Literal[7]], 65]
sub_layer_tier_flag: Annotated[c.Array[uint8_t, Literal[7]], 72]
sub_layer_profile_idc: Annotated[c.Array[uint8_t, Literal[7]], 79]
sub_layer_profile_compatibility_flag: Annotated[c.Array[c.Array[uint8_t, Literal[32]], Literal[7]], 86]
sub_layer_progressive_source_flag: Annotated[c.Array[uint8_t, Literal[7]], 310]
sub_layer_interlaced_source_flag: Annotated[c.Array[uint8_t, Literal[7]], 317]
sub_layer_non_packed_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 324]
sub_layer_frame_only_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 331]
sub_layer_max_12bit_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 338]
sub_layer_max_10bit_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 345]
sub_layer_max_8bit_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 352]
sub_layer_max_422chroma_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 359]
sub_layer_max_420chroma_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 366]
sub_layer_max_monochrome_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 373]
sub_layer_intra_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 380]
sub_layer_one_picture_only_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 387]
sub_layer_lower_bit_rate_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 394]
sub_layer_max_14bit_constraint_flag: Annotated[c.Array[uint8_t, Literal[7]], 401]
sub_layer_inbld_flag: Annotated[c.Array[uint8_t, Literal[7]], 408]
sub_layer_level_idc: Annotated[c.Array[uint8_t, Literal[7]], 415]
general_profile_space: int
general_tier_flag: int
general_profile_idc: int
general_profile_compatibility_flag: c.Array[ctypes.c_ubyte, Literal[32]]
general_progressive_source_flag: int
general_interlaced_source_flag: int
general_non_packed_constraint_flag: int
general_frame_only_constraint_flag: int
general_max_12bit_constraint_flag: int
general_max_10bit_constraint_flag: int
general_max_8bit_constraint_flag: int
general_max_422chroma_constraint_flag: int
general_max_420chroma_constraint_flag: int
general_max_monochrome_constraint_flag: int
general_intra_constraint_flag: int
general_one_picture_only_constraint_flag: int
general_lower_bit_rate_constraint_flag: int
general_max_14bit_constraint_flag: int
general_inbld_flag: int
general_level_idc: int
sub_layer_profile_present_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_level_present_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_profile_space: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_tier_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_profile_idc: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_profile_compatibility_flag: c.Array[c.Array[ctypes.c_ubyte, Literal[32]], Literal[7]]
sub_layer_progressive_source_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_interlaced_source_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_non_packed_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_frame_only_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_max_12bit_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_max_10bit_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_max_8bit_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_max_422chroma_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_max_420chroma_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_max_monochrome_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_intra_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_one_picture_only_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_lower_bit_rate_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_max_14bit_constraint_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_inbld_flag: c.Array[ctypes.c_ubyte, Literal[7]]
sub_layer_level_idc: c.Array[ctypes.c_ubyte, Literal[7]]
struct_H265RawProfileTierLevel.register_fields([('general_profile_space', uint8_t, 0), ('general_tier_flag', uint8_t, 1), ('general_profile_idc', uint8_t, 2), ('general_profile_compatibility_flag', c.Array[uint8_t, Literal[32]], 3), ('general_progressive_source_flag', uint8_t, 35), ('general_interlaced_source_flag', uint8_t, 36), ('general_non_packed_constraint_flag', uint8_t, 37), ('general_frame_only_constraint_flag', uint8_t, 38), ('general_max_12bit_constraint_flag', uint8_t, 39), ('general_max_10bit_constraint_flag', uint8_t, 40), ('general_max_8bit_constraint_flag', uint8_t, 41), ('general_max_422chroma_constraint_flag', uint8_t, 42), ('general_max_420chroma_constraint_flag', uint8_t, 43), ('general_max_monochrome_constraint_flag', uint8_t, 44), ('general_intra_constraint_flag', uint8_t, 45), ('general_one_picture_only_constraint_flag', uint8_t, 46), ('general_lower_bit_rate_constraint_flag', uint8_t, 47), ('general_max_14bit_constraint_flag', uint8_t, 48), ('general_inbld_flag', uint8_t, 49), ('general_level_idc', uint8_t, 50), ('sub_layer_profile_present_flag', c.Array[uint8_t, Literal[7]], 51), ('sub_layer_level_present_flag', c.Array[uint8_t, Literal[7]], 58), ('sub_layer_profile_space', c.Array[uint8_t, Literal[7]], 65), ('sub_layer_tier_flag', c.Array[uint8_t, Literal[7]], 72), ('sub_layer_profile_idc', c.Array[uint8_t, Literal[7]], 79), ('sub_layer_profile_compatibility_flag', c.Array[c.Array[uint8_t, Literal[32]], Literal[7]], 86), ('sub_layer_progressive_source_flag', c.Array[uint8_t, Literal[7]], 310), ('sub_layer_interlaced_source_flag', c.Array[uint8_t, Literal[7]], 317), ('sub_layer_non_packed_constraint_flag', c.Array[uint8_t, Literal[7]], 324), ('sub_layer_frame_only_constraint_flag', c.Array[uint8_t, Literal[7]], 331), ('sub_layer_max_12bit_constraint_flag', c.Array[uint8_t, Literal[7]], 338), ('sub_layer_max_10bit_constraint_flag', c.Array[uint8_t, Literal[7]], 345), ('sub_layer_max_8bit_constraint_flag', c.Array[uint8_t, Literal[7]], 352), ('sub_layer_max_422chroma_constraint_flag', c.Array[uint8_t, Literal[7]], 359), ('sub_layer_max_420chroma_constraint_flag', c.Array[uint8_t, Literal[7]], 366), ('sub_layer_max_monochrome_constraint_flag', c.Array[uint8_t, Literal[7]], 373), ('sub_layer_intra_constraint_flag', c.Array[uint8_t, Literal[7]], 380), ('sub_layer_one_picture_only_constraint_flag', c.Array[uint8_t, Literal[7]], 387), ('sub_layer_lower_bit_rate_constraint_flag', c.Array[uint8_t, Literal[7]], 394), ('sub_layer_max_14bit_constraint_flag', c.Array[uint8_t, Literal[7]], 401), ('sub_layer_inbld_flag', c.Array[uint8_t, Literal[7]], 408), ('sub_layer_level_idc', c.Array[uint8_t, Literal[7]], 415)])
H265RawProfileTierLevel: TypeAlias = struct_H265RawProfileTierLevel
@c.record
class struct_H265RawSubLayerHRDParameters(c.Struct):
SIZE = 544
bit_rate_value_minus1: Annotated[c.Array[uint32_t, Literal[32]], 0]
cpb_size_value_minus1: Annotated[c.Array[uint32_t, Literal[32]], 128]
cpb_size_du_value_minus1: Annotated[c.Array[uint32_t, Literal[32]], 256]
bit_rate_du_value_minus1: Annotated[c.Array[uint32_t, Literal[32]], 384]
cbr_flag: Annotated[c.Array[uint8_t, Literal[32]], 512]
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
bit_rate_value_minus1: c.Array[ctypes.c_uint32, Literal[32]]
cpb_size_value_minus1: c.Array[ctypes.c_uint32, Literal[32]]
cpb_size_du_value_minus1: c.Array[ctypes.c_uint32, Literal[32]]
bit_rate_du_value_minus1: c.Array[ctypes.c_uint32, Literal[32]]
cbr_flag: c.Array[ctypes.c_ubyte, Literal[32]]
uint32_t: TypeAlias = ctypes.c_uint32
struct_H265RawSubLayerHRDParameters.register_fields([('bit_rate_value_minus1', c.Array[uint32_t, Literal[32]], 0), ('cpb_size_value_minus1', c.Array[uint32_t, Literal[32]], 128), ('cpb_size_du_value_minus1', c.Array[uint32_t, Literal[32]], 256), ('bit_rate_du_value_minus1', c.Array[uint32_t, Literal[32]], 384), ('cbr_flag', c.Array[uint8_t, Literal[32]], 512)])
H265RawSubLayerHRDParameters: TypeAlias = struct_H265RawSubLayerHRDParameters
@c.record
class struct_H265RawHRDParameters(c.Struct):
SIZE = 7672
nal_hrd_parameters_present_flag: Annotated[uint8_t, 0]
vcl_hrd_parameters_present_flag: Annotated[uint8_t, 1]
sub_pic_hrd_params_present_flag: Annotated[uint8_t, 2]
tick_divisor_minus2: Annotated[uint8_t, 3]
du_cpb_removal_delay_increment_length_minus1: Annotated[uint8_t, 4]
sub_pic_cpb_params_in_pic_timing_sei_flag: Annotated[uint8_t, 5]
dpb_output_delay_du_length_minus1: Annotated[uint8_t, 6]
bit_rate_scale: Annotated[uint8_t, 7]
cpb_size_scale: Annotated[uint8_t, 8]
cpb_size_du_scale: Annotated[uint8_t, 9]
initial_cpb_removal_delay_length_minus1: Annotated[uint8_t, 10]
au_cpb_removal_delay_length_minus1: Annotated[uint8_t, 11]
dpb_output_delay_length_minus1: Annotated[uint8_t, 12]
fixed_pic_rate_general_flag: Annotated[c.Array[uint8_t, Literal[7]], 13]
fixed_pic_rate_within_cvs_flag: Annotated[c.Array[uint8_t, Literal[7]], 20]
elemental_duration_in_tc_minus1: Annotated[c.Array[uint16_t, Literal[7]], 28]
low_delay_hrd_flag: Annotated[c.Array[uint8_t, Literal[7]], 42]
cpb_cnt_minus1: Annotated[c.Array[uint8_t, Literal[7]], 49]
nal_sub_layer_hrd_parameters: Annotated[c.Array[H265RawSubLayerHRDParameters, Literal[7]], 56]
vcl_sub_layer_hrd_parameters: Annotated[c.Array[H265RawSubLayerHRDParameters, Literal[7]], 3864]
uint16_t: TypeAlias = Annotated[int, ctypes.c_uint16]
nal_hrd_parameters_present_flag: int
vcl_hrd_parameters_present_flag: int
sub_pic_hrd_params_present_flag: int
tick_divisor_minus2: int
du_cpb_removal_delay_increment_length_minus1: int
sub_pic_cpb_params_in_pic_timing_sei_flag: int
dpb_output_delay_du_length_minus1: int
bit_rate_scale: int
cpb_size_scale: int
cpb_size_du_scale: int
initial_cpb_removal_delay_length_minus1: int
au_cpb_removal_delay_length_minus1: int
dpb_output_delay_length_minus1: int
fixed_pic_rate_general_flag: c.Array[ctypes.c_ubyte, Literal[7]]
fixed_pic_rate_within_cvs_flag: c.Array[ctypes.c_ubyte, Literal[7]]
elemental_duration_in_tc_minus1: c.Array[ctypes.c_uint16, Literal[7]]
low_delay_hrd_flag: c.Array[ctypes.c_ubyte, Literal[7]]
cpb_cnt_minus1: c.Array[ctypes.c_ubyte, Literal[7]]
nal_sub_layer_hrd_parameters: c.Array[struct_H265RawSubLayerHRDParameters, Literal[7]]
vcl_sub_layer_hrd_parameters: c.Array[struct_H265RawSubLayerHRDParameters, Literal[7]]
uint16_t: TypeAlias = ctypes.c_uint16
struct_H265RawHRDParameters.register_fields([('nal_hrd_parameters_present_flag', uint8_t, 0), ('vcl_hrd_parameters_present_flag', uint8_t, 1), ('sub_pic_hrd_params_present_flag', uint8_t, 2), ('tick_divisor_minus2', uint8_t, 3), ('du_cpb_removal_delay_increment_length_minus1', uint8_t, 4), ('sub_pic_cpb_params_in_pic_timing_sei_flag', uint8_t, 5), ('dpb_output_delay_du_length_minus1', uint8_t, 6), ('bit_rate_scale', uint8_t, 7), ('cpb_size_scale', uint8_t, 8), ('cpb_size_du_scale', uint8_t, 9), ('initial_cpb_removal_delay_length_minus1', uint8_t, 10), ('au_cpb_removal_delay_length_minus1', uint8_t, 11), ('dpb_output_delay_length_minus1', uint8_t, 12), ('fixed_pic_rate_general_flag', c.Array[uint8_t, Literal[7]], 13), ('fixed_pic_rate_within_cvs_flag', c.Array[uint8_t, Literal[7]], 20), ('elemental_duration_in_tc_minus1', c.Array[uint16_t, Literal[7]], 28), ('low_delay_hrd_flag', c.Array[uint8_t, Literal[7]], 42), ('cpb_cnt_minus1', c.Array[uint8_t, Literal[7]], 49), ('nal_sub_layer_hrd_parameters', c.Array[H265RawSubLayerHRDParameters, Literal[7]], 56), ('vcl_sub_layer_hrd_parameters', c.Array[H265RawSubLayerHRDParameters, Literal[7]], 3864)])
H265RawHRDParameters: TypeAlias = struct_H265RawHRDParameters
@c.record
class struct_H265RawVUI(c.Struct):
SIZE = 7736
aspect_ratio_info_present_flag: Annotated[uint8_t, 0]
aspect_ratio_idc: Annotated[uint8_t, 1]
sar_width: Annotated[uint16_t, 2]
sar_height: Annotated[uint16_t, 4]
overscan_info_present_flag: Annotated[uint8_t, 6]
overscan_appropriate_flag: Annotated[uint8_t, 7]
video_signal_type_present_flag: Annotated[uint8_t, 8]
video_format: Annotated[uint8_t, 9]
video_full_range_flag: Annotated[uint8_t, 10]
colour_description_present_flag: Annotated[uint8_t, 11]
colour_primaries: Annotated[uint8_t, 12]
transfer_characteristics: Annotated[uint8_t, 13]
matrix_coefficients: Annotated[uint8_t, 14]
chroma_loc_info_present_flag: Annotated[uint8_t, 15]
chroma_sample_loc_type_top_field: Annotated[uint8_t, 16]
chroma_sample_loc_type_bottom_field: Annotated[uint8_t, 17]
neutral_chroma_indication_flag: Annotated[uint8_t, 18]
field_seq_flag: Annotated[uint8_t, 19]
frame_field_info_present_flag: Annotated[uint8_t, 20]
default_display_window_flag: Annotated[uint8_t, 21]
def_disp_win_left_offset: Annotated[uint16_t, 22]
def_disp_win_right_offset: Annotated[uint16_t, 24]
def_disp_win_top_offset: Annotated[uint16_t, 26]
def_disp_win_bottom_offset: Annotated[uint16_t, 28]
vui_timing_info_present_flag: Annotated[uint8_t, 30]
vui_num_units_in_tick: Annotated[uint32_t, 32]
vui_time_scale: Annotated[uint32_t, 36]
vui_poc_proportional_to_timing_flag: Annotated[uint8_t, 40]
vui_num_ticks_poc_diff_one_minus1: Annotated[uint32_t, 44]
vui_hrd_parameters_present_flag: Annotated[uint8_t, 48]
hrd_parameters: Annotated[H265RawHRDParameters, 52]
bitstream_restriction_flag: Annotated[uint8_t, 7724]
tiles_fixed_structure_flag: Annotated[uint8_t, 7725]
motion_vectors_over_pic_boundaries_flag: Annotated[uint8_t, 7726]
restricted_ref_pic_lists_flag: Annotated[uint8_t, 7727]
min_spatial_segmentation_idc: Annotated[uint16_t, 7728]
max_bytes_per_pic_denom: Annotated[uint8_t, 7730]
max_bits_per_min_cu_denom: Annotated[uint8_t, 7731]
log2_max_mv_length_horizontal: Annotated[uint8_t, 7732]
log2_max_mv_length_vertical: Annotated[uint8_t, 7733]
aspect_ratio_info_present_flag: int
aspect_ratio_idc: int
sar_width: int
sar_height: int
overscan_info_present_flag: int
overscan_appropriate_flag: int
video_signal_type_present_flag: int
video_format: int
video_full_range_flag: int
colour_description_present_flag: int
colour_primaries: int
transfer_characteristics: int
matrix_coefficients: int
chroma_loc_info_present_flag: int
chroma_sample_loc_type_top_field: int
chroma_sample_loc_type_bottom_field: int
neutral_chroma_indication_flag: int
field_seq_flag: int
frame_field_info_present_flag: int
default_display_window_flag: int
def_disp_win_left_offset: int
def_disp_win_right_offset: int
def_disp_win_top_offset: int
def_disp_win_bottom_offset: int
vui_timing_info_present_flag: int
vui_num_units_in_tick: int
vui_time_scale: int
vui_poc_proportional_to_timing_flag: int
vui_num_ticks_poc_diff_one_minus1: int
vui_hrd_parameters_present_flag: int
hrd_parameters: struct_H265RawHRDParameters
bitstream_restriction_flag: int
tiles_fixed_structure_flag: int
motion_vectors_over_pic_boundaries_flag: int
restricted_ref_pic_lists_flag: int
min_spatial_segmentation_idc: int
max_bytes_per_pic_denom: int
max_bits_per_min_cu_denom: int
log2_max_mv_length_horizontal: int
log2_max_mv_length_vertical: int
struct_H265RawVUI.register_fields([('aspect_ratio_info_present_flag', uint8_t, 0), ('aspect_ratio_idc', uint8_t, 1), ('sar_width', uint16_t, 2), ('sar_height', uint16_t, 4), ('overscan_info_present_flag', uint8_t, 6), ('overscan_appropriate_flag', uint8_t, 7), ('video_signal_type_present_flag', uint8_t, 8), ('video_format', uint8_t, 9), ('video_full_range_flag', uint8_t, 10), ('colour_description_present_flag', uint8_t, 11), ('colour_primaries', uint8_t, 12), ('transfer_characteristics', uint8_t, 13), ('matrix_coefficients', uint8_t, 14), ('chroma_loc_info_present_flag', uint8_t, 15), ('chroma_sample_loc_type_top_field', uint8_t, 16), ('chroma_sample_loc_type_bottom_field', uint8_t, 17), ('neutral_chroma_indication_flag', uint8_t, 18), ('field_seq_flag', uint8_t, 19), ('frame_field_info_present_flag', uint8_t, 20), ('default_display_window_flag', uint8_t, 21), ('def_disp_win_left_offset', uint16_t, 22), ('def_disp_win_right_offset', uint16_t, 24), ('def_disp_win_top_offset', uint16_t, 26), ('def_disp_win_bottom_offset', uint16_t, 28), ('vui_timing_info_present_flag', uint8_t, 30), ('vui_num_units_in_tick', uint32_t, 32), ('vui_time_scale', uint32_t, 36), ('vui_poc_proportional_to_timing_flag', uint8_t, 40), ('vui_num_ticks_poc_diff_one_minus1', uint32_t, 44), ('vui_hrd_parameters_present_flag', uint8_t, 48), ('hrd_parameters', H265RawHRDParameters, 52), ('bitstream_restriction_flag', uint8_t, 7724), ('tiles_fixed_structure_flag', uint8_t, 7725), ('motion_vectors_over_pic_boundaries_flag', uint8_t, 7726), ('restricted_ref_pic_lists_flag', uint8_t, 7727), ('min_spatial_segmentation_idc', uint16_t, 7728), ('max_bytes_per_pic_denom', uint8_t, 7730), ('max_bits_per_min_cu_denom', uint8_t, 7731), ('log2_max_mv_length_horizontal', uint8_t, 7732), ('log2_max_mv_length_vertical', uint8_t, 7733)])
H265RawVUI: TypeAlias = struct_H265RawVUI
class struct_H265RawExtensionData(c.Struct): SIZE = 0
class struct_H265RawExtensionData(c.Struct): pass
H265RawExtensionData: TypeAlias = struct_H265RawExtensionData
class struct_H265RawVPS(c.Struct): SIZE = 0
class struct_H265RawVPS(c.Struct): pass
H265RawVPS: TypeAlias = struct_H265RawVPS
@c.record
class struct_H265RawSTRefPicSet(c.Struct):
SIZE = 136
inter_ref_pic_set_prediction_flag: Annotated[uint8_t, 0]
delta_idx_minus1: Annotated[uint8_t, 1]
delta_rps_sign: Annotated[uint8_t, 2]
abs_delta_rps_minus1: Annotated[uint16_t, 4]
used_by_curr_pic_flag: Annotated[c.Array[uint8_t, Literal[16]], 6]
use_delta_flag: Annotated[c.Array[uint8_t, Literal[16]], 22]
num_negative_pics: Annotated[uint8_t, 38]
num_positive_pics: Annotated[uint8_t, 39]
delta_poc_s0_minus1: Annotated[c.Array[uint16_t, Literal[16]], 40]
used_by_curr_pic_s0_flag: Annotated[c.Array[uint8_t, Literal[16]], 72]
delta_poc_s1_minus1: Annotated[c.Array[uint16_t, Literal[16]], 88]
used_by_curr_pic_s1_flag: Annotated[c.Array[uint8_t, Literal[16]], 120]
inter_ref_pic_set_prediction_flag: int
delta_idx_minus1: int
delta_rps_sign: int
abs_delta_rps_minus1: int
used_by_curr_pic_flag: c.Array[ctypes.c_ubyte, Literal[16]]
use_delta_flag: c.Array[ctypes.c_ubyte, Literal[16]]
num_negative_pics: int
num_positive_pics: int
delta_poc_s0_minus1: c.Array[ctypes.c_uint16, Literal[16]]
used_by_curr_pic_s0_flag: c.Array[ctypes.c_ubyte, Literal[16]]
delta_poc_s1_minus1: c.Array[ctypes.c_uint16, Literal[16]]
used_by_curr_pic_s1_flag: c.Array[ctypes.c_ubyte, Literal[16]]
struct_H265RawSTRefPicSet.register_fields([('inter_ref_pic_set_prediction_flag', uint8_t, 0), ('delta_idx_minus1', uint8_t, 1), ('delta_rps_sign', uint8_t, 2), ('abs_delta_rps_minus1', uint16_t, 4), ('used_by_curr_pic_flag', c.Array[uint8_t, Literal[16]], 6), ('use_delta_flag', c.Array[uint8_t, Literal[16]], 22), ('num_negative_pics', uint8_t, 38), ('num_positive_pics', uint8_t, 39), ('delta_poc_s0_minus1', c.Array[uint16_t, Literal[16]], 40), ('used_by_curr_pic_s0_flag', c.Array[uint8_t, Literal[16]], 72), ('delta_poc_s1_minus1', c.Array[uint16_t, Literal[16]], 88), ('used_by_curr_pic_s1_flag', c.Array[uint8_t, Literal[16]], 120)])
H265RawSTRefPicSet: TypeAlias = struct_H265RawSTRefPicSet
@c.record
class struct_H265RawScalingList(c.Struct):
SIZE = 1632
scaling_list_pred_mode_flag: Annotated[c.Array[c.Array[uint8_t, Literal[6]], Literal[4]], 0]
scaling_list_pred_matrix_id_delta: Annotated[c.Array[c.Array[uint8_t, Literal[6]], Literal[4]], 24]
scaling_list_dc_coef_minus8: Annotated[c.Array[c.Array[int16_t, Literal[6]], Literal[4]], 48]
scaling_list_delta_coeff: Annotated[c.Array[c.Array[c.Array[int8_t, Literal[64]], Literal[6]], Literal[4]], 96]
int16_t: TypeAlias = Annotated[int, ctypes.c_int16]
int8_t: TypeAlias = Annotated[int, ctypes.c_byte]
scaling_list_pred_mode_flag: c.Array[c.Array[ctypes.c_ubyte, Literal[6]], Literal[4]]
scaling_list_pred_matrix_id_delta: c.Array[c.Array[ctypes.c_ubyte, Literal[6]], Literal[4]]
scaling_list_dc_coef_minus8: c.Array[c.Array[ctypes.c_int16, Literal[6]], Literal[4]]
scaling_list_delta_coeff: c.Array[c.Array[c.Array[ctypes.c_byte, Literal[64]], Literal[6]], Literal[4]]
int16_t: TypeAlias = ctypes.c_int16
int8_t: TypeAlias = ctypes.c_byte
struct_H265RawScalingList.register_fields([('scaling_list_pred_mode_flag', c.Array[c.Array[uint8_t, Literal[6]], Literal[4]], 0), ('scaling_list_pred_matrix_id_delta', c.Array[c.Array[uint8_t, Literal[6]], Literal[4]], 24), ('scaling_list_dc_coef_minus8', c.Array[c.Array[int16_t, Literal[6]], Literal[4]], 48), ('scaling_list_delta_coeff', c.Array[c.Array[c.Array[int8_t, Literal[64]], Literal[6]], Literal[4]], 96)])
H265RawScalingList: TypeAlias = struct_H265RawScalingList
class struct_H265RawSPS(c.Struct): SIZE = 0
class struct_H265RawSPS(c.Struct): pass
H265RawSPS: TypeAlias = struct_H265RawSPS
class struct_H265RawPPS(c.Struct): SIZE = 0
class struct_H265RawPPS(c.Struct): pass
H265RawPPS: TypeAlias = struct_H265RawPPS
@c.record
class struct_H265RawAUD(c.Struct):
SIZE = 4
nal_unit_header: Annotated[H265RawNALUnitHeader, 0]
pic_type: Annotated[uint8_t, 3]
nal_unit_header: struct_H265RawNALUnitHeader
pic_type: int
struct_H265RawAUD.register_fields([('nal_unit_header', H265RawNALUnitHeader, 0), ('pic_type', uint8_t, 3)])
H265RawAUD: TypeAlias = struct_H265RawAUD
@c.record
class struct_H265RawSliceHeader(c.Struct):
SIZE = 11772
nal_unit_header: Annotated[H265RawNALUnitHeader, 0]
first_slice_segment_in_pic_flag: Annotated[uint8_t, 3]
no_output_of_prior_pics_flag: Annotated[uint8_t, 4]
slice_pic_parameter_set_id: Annotated[uint8_t, 5]
dependent_slice_segment_flag: Annotated[uint8_t, 6]
slice_segment_address: Annotated[uint16_t, 8]
slice_reserved_flag: Annotated[c.Array[uint8_t, Literal[8]], 10]
slice_type: Annotated[uint8_t, 18]
pic_output_flag: Annotated[uint8_t, 19]
colour_plane_id: Annotated[uint8_t, 20]
slice_pic_order_cnt_lsb: Annotated[uint16_t, 22]
short_term_ref_pic_set_sps_flag: Annotated[uint8_t, 24]
short_term_ref_pic_set: Annotated[H265RawSTRefPicSet, 26]
short_term_ref_pic_set_idx: Annotated[uint8_t, 162]
num_long_term_sps: Annotated[uint8_t, 163]
num_long_term_pics: Annotated[uint8_t, 164]
lt_idx_sps: Annotated[c.Array[uint8_t, Literal[16]], 165]
poc_lsb_lt: Annotated[c.Array[uint8_t, Literal[16]], 181]
used_by_curr_pic_lt_flag: Annotated[c.Array[uint8_t, Literal[16]], 197]
delta_poc_msb_present_flag: Annotated[c.Array[uint8_t, Literal[16]], 213]
delta_poc_msb_cycle_lt: Annotated[c.Array[uint32_t, Literal[16]], 232]
slice_temporal_mvp_enabled_flag: Annotated[uint8_t, 296]
slice_sao_luma_flag: Annotated[uint8_t, 297]
slice_sao_chroma_flag: Annotated[uint8_t, 298]
num_ref_idx_active_override_flag: Annotated[uint8_t, 299]
num_ref_idx_l0_active_minus1: Annotated[uint8_t, 300]
num_ref_idx_l1_active_minus1: Annotated[uint8_t, 301]
ref_pic_list_modification_flag_l0: Annotated[uint8_t, 302]
list_entry_l0: Annotated[c.Array[uint8_t, Literal[16]], 303]
ref_pic_list_modification_flag_l1: Annotated[uint8_t, 319]
list_entry_l1: Annotated[c.Array[uint8_t, Literal[16]], 320]
mvd_l1_zero_flag: Annotated[uint8_t, 336]
cabac_init_flag: Annotated[uint8_t, 337]
collocated_from_l0_flag: Annotated[uint8_t, 338]
collocated_ref_idx: Annotated[uint8_t, 339]
luma_log2_weight_denom: Annotated[uint8_t, 340]
delta_chroma_log2_weight_denom: Annotated[int8_t, 341]
luma_weight_l0_flag: Annotated[c.Array[uint8_t, Literal[16]], 342]
chroma_weight_l0_flag: Annotated[c.Array[uint8_t, Literal[16]], 358]
delta_luma_weight_l0: Annotated[c.Array[int8_t, Literal[16]], 374]
luma_offset_l0: Annotated[c.Array[int16_t, Literal[16]], 390]
delta_chroma_weight_l0: Annotated[c.Array[c.Array[int8_t, Literal[2]], Literal[16]], 422]
chroma_offset_l0: Annotated[c.Array[c.Array[int16_t, Literal[2]], Literal[16]], 454]
luma_weight_l1_flag: Annotated[c.Array[uint8_t, Literal[16]], 518]
chroma_weight_l1_flag: Annotated[c.Array[uint8_t, Literal[16]], 534]
delta_luma_weight_l1: Annotated[c.Array[int8_t, Literal[16]], 550]
luma_offset_l1: Annotated[c.Array[int16_t, Literal[16]], 566]
delta_chroma_weight_l1: Annotated[c.Array[c.Array[int8_t, Literal[2]], Literal[16]], 598]
chroma_offset_l1: Annotated[c.Array[c.Array[int16_t, Literal[2]], Literal[16]], 630]
five_minus_max_num_merge_cand: Annotated[uint8_t, 694]
use_integer_mv_flag: Annotated[uint8_t, 695]
slice_qp_delta: Annotated[int8_t, 696]
slice_cb_qp_offset: Annotated[int8_t, 697]
slice_cr_qp_offset: Annotated[int8_t, 698]
slice_act_y_qp_offset: Annotated[int8_t, 699]
slice_act_cb_qp_offset: Annotated[int8_t, 700]
slice_act_cr_qp_offset: Annotated[int8_t, 701]
cu_chroma_qp_offset_enabled_flag: Annotated[uint8_t, 702]
deblocking_filter_override_flag: Annotated[uint8_t, 703]
slice_deblocking_filter_disabled_flag: Annotated[uint8_t, 704]
slice_beta_offset_div2: Annotated[int8_t, 705]
slice_tc_offset_div2: Annotated[int8_t, 706]
slice_loop_filter_across_slices_enabled_flag: Annotated[uint8_t, 707]
num_entry_point_offsets: Annotated[uint16_t, 708]
offset_len_minus1: Annotated[uint8_t, 710]
entry_point_offset_minus1: Annotated[c.Array[uint32_t, Literal[2700]], 712]
slice_segment_header_extension_length: Annotated[uint16_t, 11512]
slice_segment_header_extension_data_byte: Annotated[c.Array[uint8_t, Literal[256]], 11514]
nal_unit_header: struct_H265RawNALUnitHeader
first_slice_segment_in_pic_flag: int
no_output_of_prior_pics_flag: int
slice_pic_parameter_set_id: int
dependent_slice_segment_flag: int
slice_segment_address: int
slice_reserved_flag: c.Array[ctypes.c_ubyte, Literal[8]]
slice_type: int
pic_output_flag: int
colour_plane_id: int
slice_pic_order_cnt_lsb: int
short_term_ref_pic_set_sps_flag: int
short_term_ref_pic_set: struct_H265RawSTRefPicSet
short_term_ref_pic_set_idx: int
num_long_term_sps: int
num_long_term_pics: int
lt_idx_sps: c.Array[ctypes.c_ubyte, Literal[16]]
poc_lsb_lt: c.Array[ctypes.c_ubyte, Literal[16]]
used_by_curr_pic_lt_flag: c.Array[ctypes.c_ubyte, Literal[16]]
delta_poc_msb_present_flag: c.Array[ctypes.c_ubyte, Literal[16]]
delta_poc_msb_cycle_lt: c.Array[ctypes.c_uint32, Literal[16]]
slice_temporal_mvp_enabled_flag: int
slice_sao_luma_flag: int
slice_sao_chroma_flag: int
num_ref_idx_active_override_flag: int
num_ref_idx_l0_active_minus1: int
num_ref_idx_l1_active_minus1: int
ref_pic_list_modification_flag_l0: int
list_entry_l0: c.Array[ctypes.c_ubyte, Literal[16]]
ref_pic_list_modification_flag_l1: int
list_entry_l1: c.Array[ctypes.c_ubyte, Literal[16]]
mvd_l1_zero_flag: int
cabac_init_flag: int
collocated_from_l0_flag: int
collocated_ref_idx: int
luma_log2_weight_denom: int
delta_chroma_log2_weight_denom: int
luma_weight_l0_flag: c.Array[ctypes.c_ubyte, Literal[16]]
chroma_weight_l0_flag: c.Array[ctypes.c_ubyte, Literal[16]]
delta_luma_weight_l0: c.Array[ctypes.c_byte, Literal[16]]
luma_offset_l0: c.Array[ctypes.c_int16, Literal[16]]
delta_chroma_weight_l0: c.Array[c.Array[ctypes.c_byte, Literal[2]], Literal[16]]
chroma_offset_l0: c.Array[c.Array[ctypes.c_int16, Literal[2]], Literal[16]]
luma_weight_l1_flag: c.Array[ctypes.c_ubyte, Literal[16]]
chroma_weight_l1_flag: c.Array[ctypes.c_ubyte, Literal[16]]
delta_luma_weight_l1: c.Array[ctypes.c_byte, Literal[16]]
luma_offset_l1: c.Array[ctypes.c_int16, Literal[16]]
delta_chroma_weight_l1: c.Array[c.Array[ctypes.c_byte, Literal[2]], Literal[16]]
chroma_offset_l1: c.Array[c.Array[ctypes.c_int16, Literal[2]], Literal[16]]
five_minus_max_num_merge_cand: int
use_integer_mv_flag: int
slice_qp_delta: int
slice_cb_qp_offset: int
slice_cr_qp_offset: int
slice_act_y_qp_offset: int
slice_act_cb_qp_offset: int
slice_act_cr_qp_offset: int
cu_chroma_qp_offset_enabled_flag: int
deblocking_filter_override_flag: int
slice_deblocking_filter_disabled_flag: int
slice_beta_offset_div2: int
slice_tc_offset_div2: int
slice_loop_filter_across_slices_enabled_flag: int
num_entry_point_offsets: int
offset_len_minus1: int
entry_point_offset_minus1: c.Array[ctypes.c_uint32, Literal[2700]]
slice_segment_header_extension_length: int
slice_segment_header_extension_data_byte: c.Array[ctypes.c_ubyte, Literal[256]]
struct_H265RawSliceHeader.register_fields([('nal_unit_header', H265RawNALUnitHeader, 0), ('first_slice_segment_in_pic_flag', uint8_t, 3), ('no_output_of_prior_pics_flag', uint8_t, 4), ('slice_pic_parameter_set_id', uint8_t, 5), ('dependent_slice_segment_flag', uint8_t, 6), ('slice_segment_address', uint16_t, 8), ('slice_reserved_flag', c.Array[uint8_t, Literal[8]], 10), ('slice_type', uint8_t, 18), ('pic_output_flag', uint8_t, 19), ('colour_plane_id', uint8_t, 20), ('slice_pic_order_cnt_lsb', uint16_t, 22), ('short_term_ref_pic_set_sps_flag', uint8_t, 24), ('short_term_ref_pic_set', H265RawSTRefPicSet, 26), ('short_term_ref_pic_set_idx', uint8_t, 162), ('num_long_term_sps', uint8_t, 163), ('num_long_term_pics', uint8_t, 164), ('lt_idx_sps', c.Array[uint8_t, Literal[16]], 165), ('poc_lsb_lt', c.Array[uint8_t, Literal[16]], 181), ('used_by_curr_pic_lt_flag', c.Array[uint8_t, Literal[16]], 197), ('delta_poc_msb_present_flag', c.Array[uint8_t, Literal[16]], 213), ('delta_poc_msb_cycle_lt', c.Array[uint32_t, Literal[16]], 232), ('slice_temporal_mvp_enabled_flag', uint8_t, 296), ('slice_sao_luma_flag', uint8_t, 297), ('slice_sao_chroma_flag', uint8_t, 298), ('num_ref_idx_active_override_flag', uint8_t, 299), ('num_ref_idx_l0_active_minus1', uint8_t, 300), ('num_ref_idx_l1_active_minus1', uint8_t, 301), ('ref_pic_list_modification_flag_l0', uint8_t, 302), ('list_entry_l0', c.Array[uint8_t, Literal[16]], 303), ('ref_pic_list_modification_flag_l1', uint8_t, 319), ('list_entry_l1', c.Array[uint8_t, Literal[16]], 320), ('mvd_l1_zero_flag', uint8_t, 336), ('cabac_init_flag', uint8_t, 337), ('collocated_from_l0_flag', uint8_t, 338), ('collocated_ref_idx', uint8_t, 339), ('luma_log2_weight_denom', uint8_t, 340), ('delta_chroma_log2_weight_denom', int8_t, 341), ('luma_weight_l0_flag', c.Array[uint8_t, Literal[16]], 342), ('chroma_weight_l0_flag', c.Array[uint8_t, Literal[16]], 358), ('delta_luma_weight_l0', c.Array[int8_t, Literal[16]], 374), ('luma_offset_l0', c.Array[int16_t, Literal[16]], 390), ('delta_chroma_weight_l0', c.Array[c.Array[int8_t, Literal[2]], Literal[16]], 422), ('chroma_offset_l0', c.Array[c.Array[int16_t, Literal[2]], Literal[16]], 454), ('luma_weight_l1_flag', c.Array[uint8_t, Literal[16]], 518), ('chroma_weight_l1_flag', c.Array[uint8_t, Literal[16]], 534), ('delta_luma_weight_l1', c.Array[int8_t, Literal[16]], 550), ('luma_offset_l1', c.Array[int16_t, Literal[16]], 566), ('delta_chroma_weight_l1', c.Array[c.Array[int8_t, Literal[2]], Literal[16]], 598), ('chroma_offset_l1', c.Array[c.Array[int16_t, Literal[2]], Literal[16]], 630), ('five_minus_max_num_merge_cand', uint8_t, 694), ('use_integer_mv_flag', uint8_t, 695), ('slice_qp_delta', int8_t, 696), ('slice_cb_qp_offset', int8_t, 697), ('slice_cr_qp_offset', int8_t, 698), ('slice_act_y_qp_offset', int8_t, 699), ('slice_act_cb_qp_offset', int8_t, 700), ('slice_act_cr_qp_offset', int8_t, 701), ('cu_chroma_qp_offset_enabled_flag', uint8_t, 702), ('deblocking_filter_override_flag', uint8_t, 703), ('slice_deblocking_filter_disabled_flag', uint8_t, 704), ('slice_beta_offset_div2', int8_t, 705), ('slice_tc_offset_div2', int8_t, 706), ('slice_loop_filter_across_slices_enabled_flag', uint8_t, 707), ('num_entry_point_offsets', uint16_t, 708), ('offset_len_minus1', uint8_t, 710), ('entry_point_offset_minus1', c.Array[uint32_t, Literal[2700]], 712), ('slice_segment_header_extension_length', uint16_t, 11512), ('slice_segment_header_extension_data_byte', c.Array[uint8_t, Literal[256]], 11514)])
H265RawSliceHeader: TypeAlias = struct_H265RawSliceHeader
class struct_H265RawSlice(c.Struct): SIZE = 0
class struct_H265RawSlice(c.Struct): pass
H265RawSlice: TypeAlias = struct_H265RawSlice
@c.record
class struct_H265RawSEIBufferingPeriod(c.Struct):
SIZE = 1048
bp_seq_parameter_set_id: Annotated[uint8_t, 0]
irap_cpb_params_present_flag: Annotated[uint8_t, 1]
cpb_delay_offset: Annotated[uint32_t, 4]
dpb_delay_offset: Annotated[uint32_t, 8]
concatenation_flag: Annotated[uint8_t, 12]
au_cpb_removal_delay_delta_minus1: Annotated[uint32_t, 16]
nal_initial_cpb_removal_delay: Annotated[c.Array[uint32_t, Literal[32]], 20]
nal_initial_cpb_removal_offset: Annotated[c.Array[uint32_t, Literal[32]], 148]
nal_initial_alt_cpb_removal_delay: Annotated[c.Array[uint32_t, Literal[32]], 276]
nal_initial_alt_cpb_removal_offset: Annotated[c.Array[uint32_t, Literal[32]], 404]
vcl_initial_cpb_removal_delay: Annotated[c.Array[uint32_t, Literal[32]], 532]
vcl_initial_cpb_removal_offset: Annotated[c.Array[uint32_t, Literal[32]], 660]
vcl_initial_alt_cpb_removal_delay: Annotated[c.Array[uint32_t, Literal[32]], 788]
vcl_initial_alt_cpb_removal_offset: Annotated[c.Array[uint32_t, Literal[32]], 916]
use_alt_cpb_params_flag: Annotated[uint8_t, 1044]
bp_seq_parameter_set_id: int
irap_cpb_params_present_flag: int
cpb_delay_offset: int
dpb_delay_offset: int
concatenation_flag: int
au_cpb_removal_delay_delta_minus1: int
nal_initial_cpb_removal_delay: c.Array[ctypes.c_uint32, Literal[32]]
nal_initial_cpb_removal_offset: c.Array[ctypes.c_uint32, Literal[32]]
nal_initial_alt_cpb_removal_delay: c.Array[ctypes.c_uint32, Literal[32]]
nal_initial_alt_cpb_removal_offset: c.Array[ctypes.c_uint32, Literal[32]]
vcl_initial_cpb_removal_delay: c.Array[ctypes.c_uint32, Literal[32]]
vcl_initial_cpb_removal_offset: c.Array[ctypes.c_uint32, Literal[32]]
vcl_initial_alt_cpb_removal_delay: c.Array[ctypes.c_uint32, Literal[32]]
vcl_initial_alt_cpb_removal_offset: c.Array[ctypes.c_uint32, Literal[32]]
use_alt_cpb_params_flag: int
struct_H265RawSEIBufferingPeriod.register_fields([('bp_seq_parameter_set_id', uint8_t, 0), ('irap_cpb_params_present_flag', uint8_t, 1), ('cpb_delay_offset', uint32_t, 4), ('dpb_delay_offset', uint32_t, 8), ('concatenation_flag', uint8_t, 12), ('au_cpb_removal_delay_delta_minus1', uint32_t, 16), ('nal_initial_cpb_removal_delay', c.Array[uint32_t, Literal[32]], 20), ('nal_initial_cpb_removal_offset', c.Array[uint32_t, Literal[32]], 148), ('nal_initial_alt_cpb_removal_delay', c.Array[uint32_t, Literal[32]], 276), ('nal_initial_alt_cpb_removal_offset', c.Array[uint32_t, Literal[32]], 404), ('vcl_initial_cpb_removal_delay', c.Array[uint32_t, Literal[32]], 532), ('vcl_initial_cpb_removal_offset', c.Array[uint32_t, Literal[32]], 660), ('vcl_initial_alt_cpb_removal_delay', c.Array[uint32_t, Literal[32]], 788), ('vcl_initial_alt_cpb_removal_offset', c.Array[uint32_t, Literal[32]], 916), ('use_alt_cpb_params_flag', uint8_t, 1044)])
H265RawSEIBufferingPeriod: TypeAlias = struct_H265RawSEIBufferingPeriod
@c.record
class struct_H265RawSEIPicTiming(c.Struct):
SIZE = 3624
pic_struct: Annotated[uint8_t, 0]
source_scan_type: Annotated[uint8_t, 1]
duplicate_flag: Annotated[uint8_t, 2]
au_cpb_removal_delay_minus1: Annotated[uint32_t, 4]
pic_dpb_output_delay: Annotated[uint32_t, 8]
pic_dpb_output_du_delay: Annotated[uint32_t, 12]
num_decoding_units_minus1: Annotated[uint16_t, 16]
du_common_cpb_removal_delay_flag: Annotated[uint8_t, 18]
du_common_cpb_removal_delay_increment_minus1: Annotated[uint32_t, 20]
num_nalus_in_du_minus1: Annotated[c.Array[uint16_t, Literal[600]], 24]
du_cpb_removal_delay_increment_minus1: Annotated[c.Array[uint32_t, Literal[600]], 1224]
pic_struct: int
source_scan_type: int
duplicate_flag: int
au_cpb_removal_delay_minus1: int
pic_dpb_output_delay: int
pic_dpb_output_du_delay: int
num_decoding_units_minus1: int
du_common_cpb_removal_delay_flag: int
du_common_cpb_removal_delay_increment_minus1: int
num_nalus_in_du_minus1: c.Array[ctypes.c_uint16, Literal[600]]
du_cpb_removal_delay_increment_minus1: c.Array[ctypes.c_uint32, Literal[600]]
struct_H265RawSEIPicTiming.register_fields([('pic_struct', uint8_t, 0), ('source_scan_type', uint8_t, 1), ('duplicate_flag', uint8_t, 2), ('au_cpb_removal_delay_minus1', uint32_t, 4), ('pic_dpb_output_delay', uint32_t, 8), ('pic_dpb_output_du_delay', uint32_t, 12), ('num_decoding_units_minus1', uint16_t, 16), ('du_common_cpb_removal_delay_flag', uint8_t, 18), ('du_common_cpb_removal_delay_increment_minus1', uint32_t, 20), ('num_nalus_in_du_minus1', c.Array[uint16_t, Literal[600]], 24), ('du_cpb_removal_delay_increment_minus1', c.Array[uint32_t, Literal[600]], 1224)])
H265RawSEIPicTiming: TypeAlias = struct_H265RawSEIPicTiming
@c.record
class struct_H265RawSEIPanScanRect(c.Struct):
SIZE = 60
pan_scan_rect_id: Annotated[uint32_t, 0]
pan_scan_rect_cancel_flag: Annotated[uint8_t, 4]
pan_scan_cnt_minus1: Annotated[uint8_t, 5]
pan_scan_rect_left_offset: Annotated[c.Array[int32_t, Literal[3]], 8]
pan_scan_rect_right_offset: Annotated[c.Array[int32_t, Literal[3]], 20]
pan_scan_rect_top_offset: Annotated[c.Array[int32_t, Literal[3]], 32]
pan_scan_rect_bottom_offset: Annotated[c.Array[int32_t, Literal[3]], 44]
pan_scan_rect_persistence_flag: Annotated[uint16_t, 56]
int32_t: TypeAlias = Annotated[int, ctypes.c_int32]
pan_scan_rect_id: int
pan_scan_rect_cancel_flag: int
pan_scan_cnt_minus1: int
pan_scan_rect_left_offset: c.Array[ctypes.c_int32, Literal[3]]
pan_scan_rect_right_offset: c.Array[ctypes.c_int32, Literal[3]]
pan_scan_rect_top_offset: c.Array[ctypes.c_int32, Literal[3]]
pan_scan_rect_bottom_offset: c.Array[ctypes.c_int32, Literal[3]]
pan_scan_rect_persistence_flag: int
int32_t: TypeAlias = ctypes.c_int32
struct_H265RawSEIPanScanRect.register_fields([('pan_scan_rect_id', uint32_t, 0), ('pan_scan_rect_cancel_flag', uint8_t, 4), ('pan_scan_cnt_minus1', uint8_t, 5), ('pan_scan_rect_left_offset', c.Array[int32_t, Literal[3]], 8), ('pan_scan_rect_right_offset', c.Array[int32_t, Literal[3]], 20), ('pan_scan_rect_top_offset', c.Array[int32_t, Literal[3]], 32), ('pan_scan_rect_bottom_offset', c.Array[int32_t, Literal[3]], 44), ('pan_scan_rect_persistence_flag', uint16_t, 56)])
H265RawSEIPanScanRect: TypeAlias = struct_H265RawSEIPanScanRect
@c.record
class struct_H265RawSEIRecoveryPoint(c.Struct):
SIZE = 4
recovery_poc_cnt: Annotated[int16_t, 0]
exact_match_flag: Annotated[uint8_t, 2]
broken_link_flag: Annotated[uint8_t, 3]
recovery_poc_cnt: int
exact_match_flag: int
broken_link_flag: int
struct_H265RawSEIRecoveryPoint.register_fields([('recovery_poc_cnt', int16_t, 0), ('exact_match_flag', uint8_t, 2), ('broken_link_flag', uint8_t, 3)])
H265RawSEIRecoveryPoint: TypeAlias = struct_H265RawSEIRecoveryPoint
@c.record
class struct_H265RawFilmGrainCharacteristics(c.Struct):
SIZE = 10774
film_grain_characteristics_cancel_flag: Annotated[uint8_t, 0]
film_grain_model_id: Annotated[uint8_t, 1]
separate_colour_description_present_flag: Annotated[uint8_t, 2]
film_grain_bit_depth_luma_minus8: Annotated[uint8_t, 3]
film_grain_bit_depth_chroma_minus8: Annotated[uint8_t, 4]
film_grain_full_range_flag: Annotated[uint8_t, 5]
film_grain_colour_primaries: Annotated[uint8_t, 6]
film_grain_transfer_characteristics: Annotated[uint8_t, 7]
film_grain_matrix_coeffs: Annotated[uint8_t, 8]
blending_mode_id: Annotated[uint8_t, 9]
log2_scale_factor: Annotated[uint8_t, 10]
comp_model_present_flag: Annotated[c.Array[uint8_t, Literal[3]], 11]
num_intensity_intervals_minus1: Annotated[c.Array[uint8_t, Literal[3]], 14]
num_model_values_minus1: Annotated[c.Array[uint8_t, Literal[3]], 17]
intensity_interval_lower_bound: Annotated[c.Array[c.Array[uint8_t, Literal[256]], Literal[3]], 20]
intensity_interval_upper_bound: Annotated[c.Array[c.Array[uint8_t, Literal[256]], Literal[3]], 788]
comp_model_value: Annotated[c.Array[c.Array[c.Array[int16_t, Literal[6]], Literal[256]], Literal[3]], 1556]
film_grain_characteristics_persistence_flag: Annotated[uint8_t, 10772]
film_grain_characteristics_cancel_flag: int
film_grain_model_id: int
separate_colour_description_present_flag: int
film_grain_bit_depth_luma_minus8: int
film_grain_bit_depth_chroma_minus8: int
film_grain_full_range_flag: int
film_grain_colour_primaries: int
film_grain_transfer_characteristics: int
film_grain_matrix_coeffs: int
blending_mode_id: int
log2_scale_factor: int
comp_model_present_flag: c.Array[ctypes.c_ubyte, Literal[3]]
num_intensity_intervals_minus1: c.Array[ctypes.c_ubyte, Literal[3]]
num_model_values_minus1: c.Array[ctypes.c_ubyte, Literal[3]]
intensity_interval_lower_bound: c.Array[c.Array[ctypes.c_ubyte, Literal[256]], Literal[3]]
intensity_interval_upper_bound: c.Array[c.Array[ctypes.c_ubyte, Literal[256]], Literal[3]]
comp_model_value: c.Array[c.Array[c.Array[ctypes.c_int16, Literal[6]], Literal[256]], Literal[3]]
film_grain_characteristics_persistence_flag: int
struct_H265RawFilmGrainCharacteristics.register_fields([('film_grain_characteristics_cancel_flag', uint8_t, 0), ('film_grain_model_id', uint8_t, 1), ('separate_colour_description_present_flag', uint8_t, 2), ('film_grain_bit_depth_luma_minus8', uint8_t, 3), ('film_grain_bit_depth_chroma_minus8', uint8_t, 4), ('film_grain_full_range_flag', uint8_t, 5), ('film_grain_colour_primaries', uint8_t, 6), ('film_grain_transfer_characteristics', uint8_t, 7), ('film_grain_matrix_coeffs', uint8_t, 8), ('blending_mode_id', uint8_t, 9), ('log2_scale_factor', uint8_t, 10), ('comp_model_present_flag', c.Array[uint8_t, Literal[3]], 11), ('num_intensity_intervals_minus1', c.Array[uint8_t, Literal[3]], 14), ('num_model_values_minus1', c.Array[uint8_t, Literal[3]], 17), ('intensity_interval_lower_bound', c.Array[c.Array[uint8_t, Literal[256]], Literal[3]], 20), ('intensity_interval_upper_bound', c.Array[c.Array[uint8_t, Literal[256]], Literal[3]], 788), ('comp_model_value', c.Array[c.Array[c.Array[int16_t, Literal[6]], Literal[256]], Literal[3]], 1556), ('film_grain_characteristics_persistence_flag', uint8_t, 10772)])
H265RawFilmGrainCharacteristics: TypeAlias = struct_H265RawFilmGrainCharacteristics
@c.record
class struct_H265RawSEIDisplayOrientation(c.Struct):
SIZE = 10
display_orientation_cancel_flag: Annotated[uint8_t, 0]
hor_flip: Annotated[uint8_t, 1]
ver_flip: Annotated[uint8_t, 2]
anticlockwise_rotation: Annotated[uint16_t, 4]
display_orientation_repetition_period: Annotated[uint16_t, 6]
display_orientation_persistence_flag: Annotated[uint8_t, 8]
display_orientation_cancel_flag: int
hor_flip: int
ver_flip: int
anticlockwise_rotation: int
display_orientation_repetition_period: int
display_orientation_persistence_flag: int
struct_H265RawSEIDisplayOrientation.register_fields([('display_orientation_cancel_flag', uint8_t, 0), ('hor_flip', uint8_t, 1), ('ver_flip', uint8_t, 2), ('anticlockwise_rotation', uint16_t, 4), ('display_orientation_repetition_period', uint16_t, 6), ('display_orientation_persistence_flag', uint8_t, 8)])
H265RawSEIDisplayOrientation: TypeAlias = struct_H265RawSEIDisplayOrientation
@c.record
class struct_H265RawSEIActiveParameterSets(c.Struct):
SIZE = 83
active_video_parameter_set_id: Annotated[uint8_t, 0]
self_contained_cvs_flag: Annotated[uint8_t, 1]
no_parameter_set_update_flag: Annotated[uint8_t, 2]
num_sps_ids_minus1: Annotated[uint8_t, 3]
active_seq_parameter_set_id: Annotated[c.Array[uint8_t, Literal[16]], 4]
layer_sps_idx: Annotated[c.Array[uint8_t, Literal[63]], 20]
active_video_parameter_set_id: int
self_contained_cvs_flag: int
no_parameter_set_update_flag: int
num_sps_ids_minus1: int
active_seq_parameter_set_id: c.Array[ctypes.c_ubyte, Literal[16]]
layer_sps_idx: c.Array[ctypes.c_ubyte, Literal[63]]
struct_H265RawSEIActiveParameterSets.register_fields([('active_video_parameter_set_id', uint8_t, 0), ('self_contained_cvs_flag', uint8_t, 1), ('no_parameter_set_update_flag', uint8_t, 2), ('num_sps_ids_minus1', uint8_t, 3), ('active_seq_parameter_set_id', c.Array[uint8_t, Literal[16]], 4), ('layer_sps_idx', c.Array[uint8_t, Literal[63]], 20)])
H265RawSEIActiveParameterSets: TypeAlias = struct_H265RawSEIActiveParameterSets
@c.record
class struct_H265RawSEIDecodedPictureHash(c.Struct):
SIZE = 68
hash_type: Annotated[uint8_t, 0]
picture_md5: Annotated[c.Array[c.Array[uint8_t, Literal[16]], Literal[3]], 1]
picture_crc: Annotated[c.Array[uint16_t, Literal[3]], 50]
picture_checksum: Annotated[c.Array[uint32_t, Literal[3]], 56]
hash_type: int
picture_md5: c.Array[c.Array[ctypes.c_ubyte, Literal[16]], Literal[3]]
picture_crc: c.Array[ctypes.c_uint16, Literal[3]]
picture_checksum: c.Array[ctypes.c_uint32, Literal[3]]
struct_H265RawSEIDecodedPictureHash.register_fields([('hash_type', uint8_t, 0), ('picture_md5', c.Array[c.Array[uint8_t, Literal[16]], Literal[3]], 1), ('picture_crc', c.Array[uint16_t, Literal[3]], 50), ('picture_checksum', c.Array[uint32_t, Literal[3]], 56)])
H265RawSEIDecodedPictureHash: TypeAlias = struct_H265RawSEIDecodedPictureHash
@c.record
class struct_H265RawSEITimeCode(c.Struct):
SIZE = 60
num_clock_ts: Annotated[uint8_t, 0]
clock_timestamp_flag: Annotated[c.Array[uint8_t, Literal[3]], 1]
units_field_based_flag: Annotated[c.Array[uint8_t, Literal[3]], 4]
counting_type: Annotated[c.Array[uint8_t, Literal[3]], 7]
full_timestamp_flag: Annotated[c.Array[uint8_t, Literal[3]], 10]
discontinuity_flag: Annotated[c.Array[uint8_t, Literal[3]], 13]
cnt_dropped_flag: Annotated[c.Array[uint8_t, Literal[3]], 16]
n_frames: Annotated[c.Array[uint16_t, Literal[3]], 20]
seconds_value: Annotated[c.Array[uint8_t, Literal[3]], 26]
minutes_value: Annotated[c.Array[uint8_t, Literal[3]], 29]
hours_value: Annotated[c.Array[uint8_t, Literal[3]], 32]
seconds_flag: Annotated[c.Array[uint8_t, Literal[3]], 35]
minutes_flag: Annotated[c.Array[uint8_t, Literal[3]], 38]
hours_flag: Annotated[c.Array[uint8_t, Literal[3]], 41]
time_offset_length: Annotated[c.Array[uint8_t, Literal[3]], 44]
time_offset_value: Annotated[c.Array[int32_t, Literal[3]], 48]
num_clock_ts: int
clock_timestamp_flag: c.Array[ctypes.c_ubyte, Literal[3]]
units_field_based_flag: c.Array[ctypes.c_ubyte, Literal[3]]
counting_type: c.Array[ctypes.c_ubyte, Literal[3]]
full_timestamp_flag: c.Array[ctypes.c_ubyte, Literal[3]]
discontinuity_flag: c.Array[ctypes.c_ubyte, Literal[3]]
cnt_dropped_flag: c.Array[ctypes.c_ubyte, Literal[3]]
n_frames: c.Array[ctypes.c_uint16, Literal[3]]
seconds_value: c.Array[ctypes.c_ubyte, Literal[3]]
minutes_value: c.Array[ctypes.c_ubyte, Literal[3]]
hours_value: c.Array[ctypes.c_ubyte, Literal[3]]
seconds_flag: c.Array[ctypes.c_ubyte, Literal[3]]
minutes_flag: c.Array[ctypes.c_ubyte, Literal[3]]
hours_flag: c.Array[ctypes.c_ubyte, Literal[3]]
time_offset_length: c.Array[ctypes.c_ubyte, Literal[3]]
time_offset_value: c.Array[ctypes.c_int32, Literal[3]]
struct_H265RawSEITimeCode.register_fields([('num_clock_ts', uint8_t, 0), ('clock_timestamp_flag', c.Array[uint8_t, Literal[3]], 1), ('units_field_based_flag', c.Array[uint8_t, Literal[3]], 4), ('counting_type', c.Array[uint8_t, Literal[3]], 7), ('full_timestamp_flag', c.Array[uint8_t, Literal[3]], 10), ('discontinuity_flag', c.Array[uint8_t, Literal[3]], 13), ('cnt_dropped_flag', c.Array[uint8_t, Literal[3]], 16), ('n_frames', c.Array[uint16_t, Literal[3]], 20), ('seconds_value', c.Array[uint8_t, Literal[3]], 26), ('minutes_value', c.Array[uint8_t, Literal[3]], 29), ('hours_value', c.Array[uint8_t, Literal[3]], 32), ('seconds_flag', c.Array[uint8_t, Literal[3]], 35), ('minutes_flag', c.Array[uint8_t, Literal[3]], 38), ('hours_flag', c.Array[uint8_t, Literal[3]], 41), ('time_offset_length', c.Array[uint8_t, Literal[3]], 44), ('time_offset_value', c.Array[int32_t, Literal[3]], 48)])
H265RawSEITimeCode: TypeAlias = struct_H265RawSEITimeCode
@c.record
class struct_H265RawSEIAlphaChannelInfo(c.Struct):
SIZE = 12
alpha_channel_cancel_flag: Annotated[uint8_t, 0]
alpha_channel_use_idc: Annotated[uint8_t, 1]
alpha_channel_bit_depth_minus8: Annotated[uint8_t, 2]
alpha_transparent_value: Annotated[uint16_t, 4]
alpha_opaque_value: Annotated[uint16_t, 6]
alpha_channel_incr_flag: Annotated[uint8_t, 8]
alpha_channel_clip_flag: Annotated[uint8_t, 9]
alpha_channel_clip_type_flag: Annotated[uint8_t, 10]
alpha_channel_cancel_flag: int
alpha_channel_use_idc: int
alpha_channel_bit_depth_minus8: int
alpha_transparent_value: int
alpha_opaque_value: int
alpha_channel_incr_flag: int
alpha_channel_clip_flag: int
alpha_channel_clip_type_flag: int
struct_H265RawSEIAlphaChannelInfo.register_fields([('alpha_channel_cancel_flag', uint8_t, 0), ('alpha_channel_use_idc', uint8_t, 1), ('alpha_channel_bit_depth_minus8', uint8_t, 2), ('alpha_transparent_value', uint16_t, 4), ('alpha_opaque_value', uint16_t, 6), ('alpha_channel_incr_flag', uint8_t, 8), ('alpha_channel_clip_flag', uint8_t, 9), ('alpha_channel_clip_type_flag', uint8_t, 10)])
H265RawSEIAlphaChannelInfo: TypeAlias = struct_H265RawSEIAlphaChannelInfo
@c.record
class struct_H265RawSEI3DReferenceDisplaysInfo(c.Struct):
SIZE = 358
prec_ref_display_width: Annotated[uint8_t, 0]
ref_viewing_distance_flag: Annotated[uint8_t, 1]
prec_ref_viewing_dist: Annotated[uint8_t, 2]
num_ref_displays_minus1: Annotated[uint8_t, 3]
left_view_id: Annotated[c.Array[uint16_t, Literal[32]], 4]
right_view_id: Annotated[c.Array[uint16_t, Literal[32]], 68]
exponent_ref_display_width: Annotated[c.Array[uint8_t, Literal[32]], 132]
mantissa_ref_display_width: Annotated[c.Array[uint8_t, Literal[32]], 164]
exponent_ref_viewing_distance: Annotated[c.Array[uint8_t, Literal[32]], 196]
mantissa_ref_viewing_distance: Annotated[c.Array[uint8_t, Literal[32]], 228]
additional_shift_present_flag: Annotated[c.Array[uint8_t, Literal[32]], 260]
num_sample_shift_plus512: Annotated[c.Array[uint16_t, Literal[32]], 292]
three_dimensional_reference_displays_extension_flag: Annotated[uint8_t, 356]
prec_ref_display_width: int
ref_viewing_distance_flag: int
prec_ref_viewing_dist: int
num_ref_displays_minus1: int
left_view_id: c.Array[ctypes.c_uint16, Literal[32]]
right_view_id: c.Array[ctypes.c_uint16, Literal[32]]
exponent_ref_display_width: c.Array[ctypes.c_ubyte, Literal[32]]
mantissa_ref_display_width: c.Array[ctypes.c_ubyte, Literal[32]]
exponent_ref_viewing_distance: c.Array[ctypes.c_ubyte, Literal[32]]
mantissa_ref_viewing_distance: c.Array[ctypes.c_ubyte, Literal[32]]
additional_shift_present_flag: c.Array[ctypes.c_ubyte, Literal[32]]
num_sample_shift_plus512: c.Array[ctypes.c_uint16, Literal[32]]
three_dimensional_reference_displays_extension_flag: int
struct_H265RawSEI3DReferenceDisplaysInfo.register_fields([('prec_ref_display_width', uint8_t, 0), ('ref_viewing_distance_flag', uint8_t, 1), ('prec_ref_viewing_dist', uint8_t, 2), ('num_ref_displays_minus1', uint8_t, 3), ('left_view_id', c.Array[uint16_t, Literal[32]], 4), ('right_view_id', c.Array[uint16_t, Literal[32]], 68), ('exponent_ref_display_width', c.Array[uint8_t, Literal[32]], 132), ('mantissa_ref_display_width', c.Array[uint8_t, Literal[32]], 164), ('exponent_ref_viewing_distance', c.Array[uint8_t, Literal[32]], 196), ('mantissa_ref_viewing_distance', c.Array[uint8_t, Literal[32]], 228), ('additional_shift_present_flag', c.Array[uint8_t, Literal[32]], 260), ('num_sample_shift_plus512', c.Array[uint16_t, Literal[32]], 292), ('three_dimensional_reference_displays_extension_flag', uint8_t, 356)])
H265RawSEI3DReferenceDisplaysInfo: TypeAlias = struct_H265RawSEI3DReferenceDisplaysInfo
@c.record
class struct_H265RawSEI(c.Struct):
SIZE = 24
nal_unit_header: Annotated[H265RawNALUnitHeader, 0]
message_list: Annotated[SEIRawMessageList, 8]
nal_unit_header: struct_H265RawNALUnitHeader
message_list: struct_SEIRawMessageList
@c.record
class struct_SEIRawMessageList(c.Struct):
SIZE = 16
messages: Annotated[c.POINTER[SEIRawMessage], 0]
nb_messages: Annotated[Annotated[int, ctypes.c_int32], 8]
nb_messages_allocated: Annotated[Annotated[int, ctypes.c_int32], 12]
messages: c.POINTER[struct_SEIRawMessage]
nb_messages: int
nb_messages_allocated: int
SEIRawMessageList: TypeAlias = struct_SEIRawMessageList
@c.record
class struct_SEIRawMessage(c.Struct):
SIZE = 40
payload_type: Annotated[uint32_t, 0]
payload_size: Annotated[uint32_t, 4]
payload: Annotated[ctypes.c_void_p, 8]
payload_ref: Annotated[ctypes.c_void_p, 16]
extension_data: Annotated[c.POINTER[uint8_t], 24]
extension_bit_length: Annotated[size_t, 32]
payload_type: int
payload_size: int
payload: ctypes.c_void_p
payload_ref: ctypes.c_void_p
extension_data: c.POINTER[ctypes.c_ubyte]
extension_bit_length: int
SEIRawMessage: TypeAlias = struct_SEIRawMessage
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
size_t: TypeAlias = ctypes.c_uint64
struct_SEIRawMessage.register_fields([('payload_type', uint32_t, 0), ('payload_size', uint32_t, 4), ('payload', ctypes.c_void_p, 8), ('payload_ref', ctypes.c_void_p, 16), ('extension_data', c.POINTER[uint8_t], 24), ('extension_bit_length', size_t, 32)])
struct_SEIRawMessageList.register_fields([('messages', c.POINTER[SEIRawMessage], 0), ('nb_messages', ctypes.c_int32, 8), ('nb_messages_allocated', ctypes.c_int32, 12)])
struct_H265RawSEI.register_fields([('nal_unit_header', H265RawNALUnitHeader, 0), ('message_list', SEIRawMessageList, 8)])
H265RawSEI: TypeAlias = struct_H265RawSEI
@c.record
class struct_H265RawFiller(c.Struct):
SIZE = 8
nal_unit_header: Annotated[H265RawNALUnitHeader, 0]
filler_size: Annotated[uint32_t, 4]
nal_unit_header: struct_H265RawNALUnitHeader
filler_size: int
struct_H265RawFiller.register_fields([('nal_unit_header', H265RawNALUnitHeader, 0), ('filler_size', uint32_t, 4)])
H265RawFiller: TypeAlias = struct_H265RawFiller
class struct_CodedBitstreamH265Context(c.Struct): SIZE = 0
class struct_CodedBitstreamH265Context(c.Struct): pass
CodedBitstreamH265Context: TypeAlias = struct_CodedBitstreamH265Context
c.init_records()

View file

@ -1,272 +1,205 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
import os
dll = c.DLL('comgr', [os.getenv('ROCM_PATH', '/opt/rocm')+'/lib/libamd_comgr.so', 'amd_comgr'])
class amd_comgr_status_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_STATUS_SUCCESS = amd_comgr_status_s.define('AMD_COMGR_STATUS_SUCCESS', 0)
AMD_COMGR_STATUS_ERROR = amd_comgr_status_s.define('AMD_COMGR_STATUS_ERROR', 1)
AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT = amd_comgr_status_s.define('AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT', 2)
AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES = amd_comgr_status_s.define('AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES', 3)
amd_comgr_status_t: TypeAlias = amd_comgr_status_s
class amd_comgr_language_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_LANGUAGE_NONE = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_NONE', 0)
AMD_COMGR_LANGUAGE_OPENCL_1_2 = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_OPENCL_1_2', 1)
AMD_COMGR_LANGUAGE_OPENCL_2_0 = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_OPENCL_2_0', 2)
AMD_COMGR_LANGUAGE_HC = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_HC', 3)
AMD_COMGR_LANGUAGE_HIP = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_HIP', 4)
AMD_COMGR_LANGUAGE_LLVM_IR = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_LLVM_IR', 5)
AMD_COMGR_LANGUAGE_LAST = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_LAST', 5)
amd_comgr_language_t: TypeAlias = amd_comgr_language_s
@dll.bind
def amd_comgr_status_string(status:amd_comgr_status_t, status_string:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> amd_comgr_status_t: ...
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
amd_comgr_status_s: dict[int, str] = {(AMD_COMGR_STATUS_SUCCESS:=0): 'AMD_COMGR_STATUS_SUCCESS', (AMD_COMGR_STATUS_ERROR:=1): 'AMD_COMGR_STATUS_ERROR', (AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT:=2): 'AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT', (AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES:=3): 'AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES'}
amd_comgr_status_t: TypeAlias = ctypes.c_uint32
amd_comgr_language_s: dict[int, str] = {(AMD_COMGR_LANGUAGE_NONE:=0): 'AMD_COMGR_LANGUAGE_NONE', (AMD_COMGR_LANGUAGE_OPENCL_1_2:=1): 'AMD_COMGR_LANGUAGE_OPENCL_1_2', (AMD_COMGR_LANGUAGE_OPENCL_2_0:=2): 'AMD_COMGR_LANGUAGE_OPENCL_2_0', (AMD_COMGR_LANGUAGE_HC:=3): 'AMD_COMGR_LANGUAGE_HC', (AMD_COMGR_LANGUAGE_HIP:=4): 'AMD_COMGR_LANGUAGE_HIP', (AMD_COMGR_LANGUAGE_LLVM_IR:=5): 'AMD_COMGR_LANGUAGE_LLVM_IR', (AMD_COMGR_LANGUAGE_LAST:=5): 'AMD_COMGR_LANGUAGE_LAST'}
amd_comgr_language_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_status_t, c.POINTER[c.POINTER[ctypes.c_char]])
def amd_comgr_status_string(status:amd_comgr_status_t, status_string:c.POINTER[c.POINTER[ctypes.c_char]]) -> amd_comgr_status_t: ...
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(None, c.POINTER[size_t], c.POINTER[size_t])
def amd_comgr_get_version(major:c.POINTER[size_t], minor:c.POINTER[size_t]) -> None: ...
class amd_comgr_data_kind_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_DATA_KIND_UNDEF = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_UNDEF', 0)
AMD_COMGR_DATA_KIND_SOURCE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_SOURCE', 1)
AMD_COMGR_DATA_KIND_INCLUDE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_INCLUDE', 2)
AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER', 3)
AMD_COMGR_DATA_KIND_DIAGNOSTIC = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_DIAGNOSTIC', 4)
AMD_COMGR_DATA_KIND_LOG = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_LOG', 5)
AMD_COMGR_DATA_KIND_BC = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_BC', 6)
AMD_COMGR_DATA_KIND_RELOCATABLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_RELOCATABLE', 7)
AMD_COMGR_DATA_KIND_EXECUTABLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_EXECUTABLE', 8)
AMD_COMGR_DATA_KIND_BYTES = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_BYTES', 9)
AMD_COMGR_DATA_KIND_FATBIN = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_FATBIN', 16)
AMD_COMGR_DATA_KIND_AR = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_AR', 17)
AMD_COMGR_DATA_KIND_BC_BUNDLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_BC_BUNDLE', 18)
AMD_COMGR_DATA_KIND_AR_BUNDLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_AR_BUNDLE', 19)
AMD_COMGR_DATA_KIND_OBJ_BUNDLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_OBJ_BUNDLE', 20)
AMD_COMGR_DATA_KIND_LAST = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_LAST', 20)
amd_comgr_data_kind_t: TypeAlias = amd_comgr_data_kind_s
amd_comgr_data_kind_s: dict[int, str] = {(AMD_COMGR_DATA_KIND_UNDEF:=0): 'AMD_COMGR_DATA_KIND_UNDEF', (AMD_COMGR_DATA_KIND_SOURCE:=1): 'AMD_COMGR_DATA_KIND_SOURCE', (AMD_COMGR_DATA_KIND_INCLUDE:=2): 'AMD_COMGR_DATA_KIND_INCLUDE', (AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER:=3): 'AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER', (AMD_COMGR_DATA_KIND_DIAGNOSTIC:=4): 'AMD_COMGR_DATA_KIND_DIAGNOSTIC', (AMD_COMGR_DATA_KIND_LOG:=5): 'AMD_COMGR_DATA_KIND_LOG', (AMD_COMGR_DATA_KIND_BC:=6): 'AMD_COMGR_DATA_KIND_BC', (AMD_COMGR_DATA_KIND_RELOCATABLE:=7): 'AMD_COMGR_DATA_KIND_RELOCATABLE', (AMD_COMGR_DATA_KIND_EXECUTABLE:=8): 'AMD_COMGR_DATA_KIND_EXECUTABLE', (AMD_COMGR_DATA_KIND_BYTES:=9): 'AMD_COMGR_DATA_KIND_BYTES', (AMD_COMGR_DATA_KIND_FATBIN:=16): 'AMD_COMGR_DATA_KIND_FATBIN', (AMD_COMGR_DATA_KIND_AR:=17): 'AMD_COMGR_DATA_KIND_AR', (AMD_COMGR_DATA_KIND_BC_BUNDLE:=18): 'AMD_COMGR_DATA_KIND_BC_BUNDLE', (AMD_COMGR_DATA_KIND_AR_BUNDLE:=19): 'AMD_COMGR_DATA_KIND_AR_BUNDLE', (AMD_COMGR_DATA_KIND_OBJ_BUNDLE:=20): 'AMD_COMGR_DATA_KIND_OBJ_BUNDLE', (AMD_COMGR_DATA_KIND_LAST:=20): 'AMD_COMGR_DATA_KIND_LAST'}
amd_comgr_data_kind_t: TypeAlias = ctypes.c_uint32
@c.record
class amd_comgr_data_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
handle: int
uint64_t: TypeAlias = ctypes.c_uint64
amd_comgr_data_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_data_t: TypeAlias = amd_comgr_data_s
@c.record
class amd_comgr_data_set_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_data_set_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_data_set_t: TypeAlias = amd_comgr_data_set_s
@c.record
class amd_comgr_action_info_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_action_info_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_action_info_t: TypeAlias = amd_comgr_action_info_s
@c.record
class amd_comgr_metadata_node_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_metadata_node_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_metadata_node_t: TypeAlias = amd_comgr_metadata_node_s
@c.record
class amd_comgr_symbol_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_symbol_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_symbol_t: TypeAlias = amd_comgr_symbol_s
@c.record
class amd_comgr_disassembly_info_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_disassembly_info_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_disassembly_info_t: TypeAlias = amd_comgr_disassembly_info_s
@c.record
class amd_comgr_symbolizer_info_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_symbolizer_info_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_symbolizer_info_t: TypeAlias = amd_comgr_symbolizer_info_s
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[size_t])
def amd_comgr_get_isa_count(count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_isa_name(index:size_t, isa_name:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_isa_metadata(isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]], metadata:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, size_t, c.POINTER[c.POINTER[ctypes.c_char]])
def amd_comgr_get_isa_name(index:size_t, isa_name:c.POINTER[c.POINTER[ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, c.POINTER[ctypes.c_char], c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_get_isa_metadata(isa_name:c.POINTER[ctypes.c_char], metadata:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_kind_t, c.POINTER[amd_comgr_data_t])
def amd_comgr_create_data(kind:amd_comgr_data_kind_t, data:c.POINTER[amd_comgr_data_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t)
def amd_comgr_release_data(data:amd_comgr_data_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_data_kind_t])
def amd_comgr_get_data_kind(data:amd_comgr_data_t, kind:c.POINTER[amd_comgr_data_kind_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_set_data(data:amd_comgr_data_t, size:size_t, bytes:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_set_data_from_file_slice(data:amd_comgr_data_t, file_descriptor:Annotated[int, ctypes.c_int32], offset:uint64_t, size:uint64_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_set_data_name(data:amd_comgr_data_t, name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_data(data:amd_comgr_data_t, size:c.POINTER[size_t], bytes:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_data_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_data_isa_name(data:amd_comgr_data_t, size:c.POINTER[size_t], isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_create_symbolizer_info(code_object:amd_comgr_data_t, print_symbol_callback:c.CFUNCTYPE[None, [c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p]], symbolizer_info:c.POINTER[amd_comgr_symbolizer_info_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, size_t, c.POINTER[ctypes.c_char])
def amd_comgr_set_data(data:amd_comgr_data_t, size:size_t, bytes:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, ctypes.c_int32, uint64_t, uint64_t)
def amd_comgr_set_data_from_file_slice(data:amd_comgr_data_t, file_descriptor:int, offset:uint64_t, size:uint64_t) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[ctypes.c_char])
def amd_comgr_set_data_name(data:amd_comgr_data_t, name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_data(data:amd_comgr_data_t, size:c.POINTER[size_t], bytes:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_data_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_data_isa_name(data:amd_comgr_data_t, size:c.POINTER[size_t], isa_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], c.POINTER[amd_comgr_symbolizer_info_t])
def amd_comgr_create_symbolizer_info(code_object:amd_comgr_data_t, print_symbol_callback:c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], symbolizer_info:c.POINTER[amd_comgr_symbolizer_info_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_symbolizer_info_t)
def amd_comgr_destroy_symbolizer_info(symbolizer_info:amd_comgr_symbolizer_info_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_symbolize(symbolizer_info:amd_comgr_symbolizer_info_t, address:uint64_t, is_code:Annotated[bool, ctypes.c_bool], user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_symbolizer_info_t, uint64_t, ctypes.c_bool, ctypes.c_void_p)
def amd_comgr_symbolize(symbolizer_info:amd_comgr_symbolizer_info_t, address:uint64_t, is_code:bool, user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_get_data_metadata(data:amd_comgr_data_t, metadata:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t)
def amd_comgr_destroy_metadata(metadata:amd_comgr_metadata_node_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[amd_comgr_data_set_t])
def amd_comgr_create_data_set(data_set:c.POINTER[amd_comgr_data_set_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t)
def amd_comgr_destroy_data_set(data_set:amd_comgr_data_set_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_t)
def amd_comgr_data_set_add(data_set:amd_comgr_data_set_t, data:amd_comgr_data_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_kind_t)
def amd_comgr_data_set_remove(data_set:amd_comgr_data_set_t, data_kind:amd_comgr_data_kind_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_kind_t, c.POINTER[size_t])
def amd_comgr_action_data_count(data_set:amd_comgr_data_set_t, data_kind:amd_comgr_data_kind_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_kind_t, size_t, c.POINTER[amd_comgr_data_t])
def amd_comgr_action_data_get_data(data_set:amd_comgr_data_set_t, data_kind:amd_comgr_data_kind_t, index:size_t, data:c.POINTER[amd_comgr_data_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[amd_comgr_action_info_t])
def amd_comgr_create_action_info(action_info:c.POINTER[amd_comgr_action_info_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t)
def amd_comgr_destroy_action_info(action_info:amd_comgr_action_info_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_isa_name(action_info:amd_comgr_action_info_t, isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_isa_name(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[ctypes.c_char])
def amd_comgr_action_info_set_isa_name(action_info:amd_comgr_action_info_t, isa_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_isa_name(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], isa_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, amd_comgr_language_t)
def amd_comgr_action_info_set_language(action_info:amd_comgr_action_info_t, language:amd_comgr_language_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[amd_comgr_language_t])
def amd_comgr_action_info_get_language(action_info:amd_comgr_action_info_t, language:c.POINTER[amd_comgr_language_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_options(action_info:amd_comgr_action_info_t, options:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_options(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], options:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_option_list(action_info:amd_comgr_action_info_t, options:c.Array[c.POINTER[Annotated[bytes, ctypes.c_char]], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[ctypes.c_char])
def amd_comgr_action_info_set_options(action_info:amd_comgr_action_info_t, options:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_options(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], options:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.Array[c.POINTER[ctypes.c_char], Literal[0]], size_t)
def amd_comgr_action_info_set_option_list(action_info:amd_comgr_action_info_t, options:c.Array[c.POINTER[ctypes.c_char], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t])
def amd_comgr_action_info_get_option_list_count(action_info:amd_comgr_action_info_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_option_list_item(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], option:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_bundle_entry_ids(action_info:amd_comgr_action_info_t, bundle_entry_ids:c.Array[c.POINTER[Annotated[bytes, ctypes.c_char]], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, size_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_option_list_item(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], option:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.Array[c.POINTER[ctypes.c_char], Literal[0]], size_t)
def amd_comgr_action_info_set_bundle_entry_ids(action_info:amd_comgr_action_info_t, bundle_entry_ids:c.Array[c.POINTER[ctypes.c_char], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t])
def amd_comgr_action_info_get_bundle_entry_id_count(action_info:amd_comgr_action_info_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_bundle_entry_id(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], bundle_entry_id:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_working_directory_path(action_info:amd_comgr_action_info_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_working_directory_path(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_logging(action_info:amd_comgr_action_info_t, logging:Annotated[bool, ctypes.c_bool]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_logging(action_info:amd_comgr_action_info_t, logging:c.POINTER[Annotated[bool, ctypes.c_bool]]) -> amd_comgr_status_t: ...
class amd_comgr_action_kind_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR', 0)
AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS', 1)
AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC', 2)
AMD_COMGR_ACTION_ADD_DEVICE_LIBRARIES = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_ADD_DEVICE_LIBRARIES', 3)
AMD_COMGR_ACTION_LINK_BC_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LINK_BC_TO_BC', 4)
AMD_COMGR_ACTION_OPTIMIZE_BC_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_OPTIMIZE_BC_TO_BC', 5)
AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE', 6)
AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY', 7)
AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE', 8)
AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE', 9)
AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE', 10)
AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE', 11)
AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE', 12)
AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE', 13)
AMD_COMGR_ACTION_COMPILE_SOURCE_TO_FATBIN = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_TO_FATBIN', 14)
AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC', 15)
AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE', 16)
AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE', 17)
AMD_COMGR_ACTION_UNBUNDLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_UNBUNDLE', 18)
AMD_COMGR_ACTION_LAST = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LAST', 18)
amd_comgr_action_kind_t: TypeAlias = amd_comgr_action_kind_s
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, size_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_bundle_entry_id(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], bundle_entry_id:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[ctypes.c_char])
def amd_comgr_action_info_set_working_directory_path(action_info:amd_comgr_action_info_t, path:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_working_directory_path(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], path:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, ctypes.c_bool)
def amd_comgr_action_info_set_logging(action_info:amd_comgr_action_info_t, logging:bool) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[ctypes.c_bool])
def amd_comgr_action_info_get_logging(action_info:amd_comgr_action_info_t, logging:c.POINTER[ctypes.c_bool]) -> amd_comgr_status_t: ...
amd_comgr_action_kind_s: dict[int, str] = {(AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR:=0): 'AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR', (AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS:=1): 'AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS', (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC:=2): 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC', (AMD_COMGR_ACTION_ADD_DEVICE_LIBRARIES:=3): 'AMD_COMGR_ACTION_ADD_DEVICE_LIBRARIES', (AMD_COMGR_ACTION_LINK_BC_TO_BC:=4): 'AMD_COMGR_ACTION_LINK_BC_TO_BC', (AMD_COMGR_ACTION_OPTIMIZE_BC_TO_BC:=5): 'AMD_COMGR_ACTION_OPTIMIZE_BC_TO_BC', (AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE:=6): 'AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE', (AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY:=7): 'AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY', (AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE:=8): 'AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE', (AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE:=9): 'AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE', (AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE:=10): 'AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE', (AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE:=11): 'AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE', (AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE:=12): 'AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE', (AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE:=13): 'AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE', (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_FATBIN:=14): 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_FATBIN', (AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC:=15): 'AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC', (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE:=16): 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE', (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE:=17): 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE', (AMD_COMGR_ACTION_UNBUNDLE:=18): 'AMD_COMGR_ACTION_UNBUNDLE', (AMD_COMGR_ACTION_LAST:=18): 'AMD_COMGR_ACTION_LAST'}
amd_comgr_action_kind_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_action_kind_t, amd_comgr_action_info_t, amd_comgr_data_set_t, amd_comgr_data_set_t)
def amd_comgr_do_action(kind:amd_comgr_action_kind_t, info:amd_comgr_action_info_t, input:amd_comgr_data_set_t, result:amd_comgr_data_set_t) -> amd_comgr_status_t: ...
class amd_comgr_metadata_kind_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_METADATA_KIND_NULL = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_NULL', 0)
AMD_COMGR_METADATA_KIND_STRING = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_STRING', 1)
AMD_COMGR_METADATA_KIND_MAP = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_MAP', 2)
AMD_COMGR_METADATA_KIND_LIST = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_LIST', 3)
AMD_COMGR_METADATA_KIND_LAST = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_LAST', 3)
amd_comgr_metadata_kind_t: TypeAlias = amd_comgr_metadata_kind_s
@dll.bind
amd_comgr_metadata_kind_s: dict[int, str] = {(AMD_COMGR_METADATA_KIND_NULL:=0): 'AMD_COMGR_METADATA_KIND_NULL', (AMD_COMGR_METADATA_KIND_STRING:=1): 'AMD_COMGR_METADATA_KIND_STRING', (AMD_COMGR_METADATA_KIND_MAP:=2): 'AMD_COMGR_METADATA_KIND_MAP', (AMD_COMGR_METADATA_KIND_LIST:=3): 'AMD_COMGR_METADATA_KIND_LIST', (AMD_COMGR_METADATA_KIND_LAST:=3): 'AMD_COMGR_METADATA_KIND_LAST'}
amd_comgr_metadata_kind_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[amd_comgr_metadata_kind_t])
def amd_comgr_get_metadata_kind(metadata:amd_comgr_metadata_node_t, kind:c.POINTER[amd_comgr_metadata_kind_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_metadata_string(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t], string:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_metadata_string(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t], string:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[size_t])
def amd_comgr_get_metadata_map_size(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_metadata_node_t, amd_comgr_metadata_node_t, ctypes.c_void_p]], ctypes.c_void_p)
def amd_comgr_iterate_map_metadata(metadata:amd_comgr_metadata_node_t, callback:c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_metadata_node_t, amd_comgr_metadata_node_t, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_metadata_lookup(metadata:amd_comgr_metadata_node_t, key:c.POINTER[Annotated[bytes, ctypes.c_char]], value:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[ctypes.c_char], c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_metadata_lookup(metadata:amd_comgr_metadata_node_t, key:c.POINTER[ctypes.c_char], value:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[size_t])
def amd_comgr_get_metadata_list_size(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, size_t, c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_index_list_metadata(metadata:amd_comgr_metadata_node_t, index:size_t, value:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_symbol_t, ctypes.c_void_p]], ctypes.c_void_p)
def amd_comgr_iterate_symbols(data:amd_comgr_data_t, callback:c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_symbol_t, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_symbol_lookup(data:amd_comgr_data_t, name:c.POINTER[Annotated[bytes, ctypes.c_char]], symbol:c.POINTER[amd_comgr_symbol_t]) -> amd_comgr_status_t: ...
class amd_comgr_symbol_type_s(Annotated[int, ctypes.c_int32], c.Enum): pass
AMD_COMGR_SYMBOL_TYPE_UNKNOWN = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_UNKNOWN', -1)
AMD_COMGR_SYMBOL_TYPE_NOTYPE = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_NOTYPE', 0)
AMD_COMGR_SYMBOL_TYPE_OBJECT = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_OBJECT', 1)
AMD_COMGR_SYMBOL_TYPE_FUNC = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_FUNC', 2)
AMD_COMGR_SYMBOL_TYPE_SECTION = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_SECTION', 3)
AMD_COMGR_SYMBOL_TYPE_FILE = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_FILE', 4)
AMD_COMGR_SYMBOL_TYPE_COMMON = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_COMMON', 5)
AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL', 10)
amd_comgr_symbol_type_t: TypeAlias = amd_comgr_symbol_type_s
class amd_comgr_symbol_info_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_SYMBOL_INFO_NAME_LENGTH = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_NAME_LENGTH', 0)
AMD_COMGR_SYMBOL_INFO_NAME = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_NAME', 1)
AMD_COMGR_SYMBOL_INFO_TYPE = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_TYPE', 2)
AMD_COMGR_SYMBOL_INFO_SIZE = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_SIZE', 3)
AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED', 4)
AMD_COMGR_SYMBOL_INFO_VALUE = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_VALUE', 5)
AMD_COMGR_SYMBOL_INFO_LAST = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_LAST', 5)
amd_comgr_symbol_info_t: TypeAlias = amd_comgr_symbol_info_s
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[ctypes.c_char], c.POINTER[amd_comgr_symbol_t])
def amd_comgr_symbol_lookup(data:amd_comgr_data_t, name:c.POINTER[ctypes.c_char], symbol:c.POINTER[amd_comgr_symbol_t]) -> amd_comgr_status_t: ...
amd_comgr_symbol_type_s: dict[int, str] = {(AMD_COMGR_SYMBOL_TYPE_UNKNOWN:=-1): 'AMD_COMGR_SYMBOL_TYPE_UNKNOWN', (AMD_COMGR_SYMBOL_TYPE_NOTYPE:=0): 'AMD_COMGR_SYMBOL_TYPE_NOTYPE', (AMD_COMGR_SYMBOL_TYPE_OBJECT:=1): 'AMD_COMGR_SYMBOL_TYPE_OBJECT', (AMD_COMGR_SYMBOL_TYPE_FUNC:=2): 'AMD_COMGR_SYMBOL_TYPE_FUNC', (AMD_COMGR_SYMBOL_TYPE_SECTION:=3): 'AMD_COMGR_SYMBOL_TYPE_SECTION', (AMD_COMGR_SYMBOL_TYPE_FILE:=4): 'AMD_COMGR_SYMBOL_TYPE_FILE', (AMD_COMGR_SYMBOL_TYPE_COMMON:=5): 'AMD_COMGR_SYMBOL_TYPE_COMMON', (AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL:=10): 'AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL'}
amd_comgr_symbol_type_t: TypeAlias = ctypes.c_int32
amd_comgr_symbol_info_s: dict[int, str] = {(AMD_COMGR_SYMBOL_INFO_NAME_LENGTH:=0): 'AMD_COMGR_SYMBOL_INFO_NAME_LENGTH', (AMD_COMGR_SYMBOL_INFO_NAME:=1): 'AMD_COMGR_SYMBOL_INFO_NAME', (AMD_COMGR_SYMBOL_INFO_TYPE:=2): 'AMD_COMGR_SYMBOL_INFO_TYPE', (AMD_COMGR_SYMBOL_INFO_SIZE:=3): 'AMD_COMGR_SYMBOL_INFO_SIZE', (AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED:=4): 'AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED', (AMD_COMGR_SYMBOL_INFO_VALUE:=5): 'AMD_COMGR_SYMBOL_INFO_VALUE', (AMD_COMGR_SYMBOL_INFO_LAST:=5): 'AMD_COMGR_SYMBOL_INFO_LAST'}
amd_comgr_symbol_info_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_symbol_t, amd_comgr_symbol_info_t, ctypes.c_void_p)
def amd_comgr_symbol_get_info(symbol:amd_comgr_symbol_t, attribute:amd_comgr_symbol_info_t, value:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_create_disassembly_info(isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]], read_memory_callback:c.CFUNCTYPE[uint64_t, [uint64_t, c.POINTER[Annotated[bytes, ctypes.c_char]], uint64_t, ctypes.c_void_p]], print_instruction_callback:c.CFUNCTYPE[None, [c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p]], print_address_annotation_callback:c.CFUNCTYPE[None, [uint64_t, ctypes.c_void_p]], disassembly_info:c.POINTER[amd_comgr_disassembly_info_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[ctypes.c_char], c.CFUNCTYPE[uint64_t, [uint64_t, c.POINTER[ctypes.c_char], uint64_t, ctypes.c_void_p]], c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], c.CFUNCTYPE[None, [uint64_t, ctypes.c_void_p]], c.POINTER[amd_comgr_disassembly_info_t])
def amd_comgr_create_disassembly_info(isa_name:c.POINTER[ctypes.c_char], read_memory_callback:c.CFUNCTYPE[uint64_t, [uint64_t, c.POINTER[ctypes.c_char], uint64_t, ctypes.c_void_p]], print_instruction_callback:c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], print_address_annotation_callback:c.CFUNCTYPE[None, [uint64_t, ctypes.c_void_p]], disassembly_info:c.POINTER[amd_comgr_disassembly_info_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_disassembly_info_t)
def amd_comgr_destroy_disassembly_info(disassembly_info:amd_comgr_disassembly_info_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_disassembly_info_t, uint64_t, ctypes.c_void_p, c.POINTER[uint64_t])
def amd_comgr_disassemble_instruction(disassembly_info:amd_comgr_disassembly_info_t, address:uint64_t, user_data:ctypes.c_void_p, size:c.POINTER[uint64_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_data_t])
def amd_comgr_demangle_symbol_name(mangled_symbol_name:amd_comgr_data_t, demangled_symbol_name:c.POINTER[amd_comgr_data_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t])
def amd_comgr_populate_mangled_names(data:amd_comgr_data_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_mangled_name(data:amd_comgr_data_t, index:size_t, size:c.POINTER[size_t], mangled_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, size_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_mangled_name(data:amd_comgr_data_t, index:size_t, size:c.POINTER[size_t], mangled_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t])
def amd_comgr_populate_name_expression_map(data:amd_comgr_data_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_map_name_expression_to_symbol_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name_expression:c.POINTER[Annotated[bytes, ctypes.c_char]], symbol_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char], c.POINTER[ctypes.c_char])
def amd_comgr_map_name_expression_to_symbol_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name_expression:c.POINTER[ctypes.c_char], symbol_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@c.record
class code_object_info_s(c.Struct):
SIZE = 24
isa: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 0]
size: Annotated[size_t, 8]
offset: Annotated[uint64_t, 16]
isa: c.POINTER[ctypes.c_char]
size: int
offset: int
code_object_info_s.register_fields([('isa', c.POINTER[ctypes.c_char], 0), ('size', size_t, 8), ('offset', uint64_t, 16)])
amd_comgr_code_object_info_t: TypeAlias = code_object_info_s
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_code_object_info_t], size_t)
def amd_comgr_lookup_code_object(data:amd_comgr_data_t, info_list:c.POINTER[amd_comgr_code_object_info_t], info_list_size:size_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_map_elf_virtual_address_to_code_object_offset(data:amd_comgr_data_t, elf_virtual_address:uint64_t, code_object_offset:c.POINTER[uint64_t], slice_size:c.POINTER[uint64_t], nobits:c.POINTER[Annotated[bool, ctypes.c_bool]]) -> amd_comgr_status_t: ...
c.init_records()
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, uint64_t, c.POINTER[uint64_t], c.POINTER[uint64_t], c.POINTER[ctypes.c_bool])
def amd_comgr_map_elf_virtual_address_to_code_object_offset(data:amd_comgr_data_t, elf_virtual_address:uint64_t, code_object_offset:c.POINTER[uint64_t], slice_size:c.POINTER[uint64_t], nobits:c.POINTER[ctypes.c_bool]) -> amd_comgr_status_t: ...
AMD_COMGR_DEPRECATED = lambda msg: __attribute__((deprecated(msg))) # type: ignore
AMD_COMGR_INTERFACE_VERSION_MAJOR = 2 # type: ignore
AMD_COMGR_INTERFACE_VERSION_MINOR = 8 # type: ignore

View file

@ -1,271 +1,205 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
import os
dll = c.DLL('comgr_3', [os.getenv('ROCM_PATH', '/opt/rocm')+'/lib/libamd_comgr.so', 'amd_comgr'])
class amd_comgr_status_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_STATUS_SUCCESS = amd_comgr_status_s.define('AMD_COMGR_STATUS_SUCCESS', 0)
AMD_COMGR_STATUS_ERROR = amd_comgr_status_s.define('AMD_COMGR_STATUS_ERROR', 1)
AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT = amd_comgr_status_s.define('AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT', 2)
AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES = amd_comgr_status_s.define('AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES', 3)
amd_comgr_status_t: TypeAlias = amd_comgr_status_s
class amd_comgr_language_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_LANGUAGE_NONE = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_NONE', 0)
AMD_COMGR_LANGUAGE_OPENCL_1_2 = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_OPENCL_1_2', 1)
AMD_COMGR_LANGUAGE_OPENCL_2_0 = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_OPENCL_2_0', 2)
AMD_COMGR_LANGUAGE_HIP = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_HIP', 3)
AMD_COMGR_LANGUAGE_LLVM_IR = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_LLVM_IR', 4)
AMD_COMGR_LANGUAGE_LAST = amd_comgr_language_s.define('AMD_COMGR_LANGUAGE_LAST', 4)
amd_comgr_language_t: TypeAlias = amd_comgr_language_s
@dll.bind
def amd_comgr_status_string(status:amd_comgr_status_t, status_string:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> amd_comgr_status_t: ...
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
amd_comgr_status_s: dict[int, str] = {(AMD_COMGR_STATUS_SUCCESS:=0): 'AMD_COMGR_STATUS_SUCCESS', (AMD_COMGR_STATUS_ERROR:=1): 'AMD_COMGR_STATUS_ERROR', (AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT:=2): 'AMD_COMGR_STATUS_ERROR_INVALID_ARGUMENT', (AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES:=3): 'AMD_COMGR_STATUS_ERROR_OUT_OF_RESOURCES'}
amd_comgr_status_t: TypeAlias = ctypes.c_uint32
amd_comgr_language_s: dict[int, str] = {(AMD_COMGR_LANGUAGE_NONE:=0): 'AMD_COMGR_LANGUAGE_NONE', (AMD_COMGR_LANGUAGE_OPENCL_1_2:=1): 'AMD_COMGR_LANGUAGE_OPENCL_1_2', (AMD_COMGR_LANGUAGE_OPENCL_2_0:=2): 'AMD_COMGR_LANGUAGE_OPENCL_2_0', (AMD_COMGR_LANGUAGE_HIP:=3): 'AMD_COMGR_LANGUAGE_HIP', (AMD_COMGR_LANGUAGE_LLVM_IR:=4): 'AMD_COMGR_LANGUAGE_LLVM_IR', (AMD_COMGR_LANGUAGE_LAST:=4): 'AMD_COMGR_LANGUAGE_LAST'}
amd_comgr_language_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_status_t, c.POINTER[c.POINTER[ctypes.c_char]])
def amd_comgr_status_string(status:amd_comgr_status_t, status_string:c.POINTER[c.POINTER[ctypes.c_char]]) -> amd_comgr_status_t: ...
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(None, c.POINTER[size_t], c.POINTER[size_t])
def amd_comgr_get_version(major:c.POINTER[size_t], minor:c.POINTER[size_t]) -> None: ...
class amd_comgr_data_kind_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_DATA_KIND_UNDEF = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_UNDEF', 0)
AMD_COMGR_DATA_KIND_SOURCE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_SOURCE', 1)
AMD_COMGR_DATA_KIND_INCLUDE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_INCLUDE', 2)
AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER', 3)
AMD_COMGR_DATA_KIND_DIAGNOSTIC = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_DIAGNOSTIC', 4)
AMD_COMGR_DATA_KIND_LOG = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_LOG', 5)
AMD_COMGR_DATA_KIND_BC = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_BC', 6)
AMD_COMGR_DATA_KIND_RELOCATABLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_RELOCATABLE', 7)
AMD_COMGR_DATA_KIND_EXECUTABLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_EXECUTABLE', 8)
AMD_COMGR_DATA_KIND_BYTES = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_BYTES', 9)
AMD_COMGR_DATA_KIND_FATBIN = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_FATBIN', 16)
AMD_COMGR_DATA_KIND_AR = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_AR', 17)
AMD_COMGR_DATA_KIND_BC_BUNDLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_BC_BUNDLE', 18)
AMD_COMGR_DATA_KIND_AR_BUNDLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_AR_BUNDLE', 19)
AMD_COMGR_DATA_KIND_OBJ_BUNDLE = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_OBJ_BUNDLE', 20)
AMD_COMGR_DATA_KIND_SPIRV = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_SPIRV', 21)
AMD_COMGR_DATA_KIND_LAST = amd_comgr_data_kind_s.define('AMD_COMGR_DATA_KIND_LAST', 21)
amd_comgr_data_kind_t: TypeAlias = amd_comgr_data_kind_s
amd_comgr_data_kind_s: dict[int, str] = {(AMD_COMGR_DATA_KIND_UNDEF:=0): 'AMD_COMGR_DATA_KIND_UNDEF', (AMD_COMGR_DATA_KIND_SOURCE:=1): 'AMD_COMGR_DATA_KIND_SOURCE', (AMD_COMGR_DATA_KIND_INCLUDE:=2): 'AMD_COMGR_DATA_KIND_INCLUDE', (AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER:=3): 'AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER', (AMD_COMGR_DATA_KIND_DIAGNOSTIC:=4): 'AMD_COMGR_DATA_KIND_DIAGNOSTIC', (AMD_COMGR_DATA_KIND_LOG:=5): 'AMD_COMGR_DATA_KIND_LOG', (AMD_COMGR_DATA_KIND_BC:=6): 'AMD_COMGR_DATA_KIND_BC', (AMD_COMGR_DATA_KIND_RELOCATABLE:=7): 'AMD_COMGR_DATA_KIND_RELOCATABLE', (AMD_COMGR_DATA_KIND_EXECUTABLE:=8): 'AMD_COMGR_DATA_KIND_EXECUTABLE', (AMD_COMGR_DATA_KIND_BYTES:=9): 'AMD_COMGR_DATA_KIND_BYTES', (AMD_COMGR_DATA_KIND_FATBIN:=16): 'AMD_COMGR_DATA_KIND_FATBIN', (AMD_COMGR_DATA_KIND_AR:=17): 'AMD_COMGR_DATA_KIND_AR', (AMD_COMGR_DATA_KIND_BC_BUNDLE:=18): 'AMD_COMGR_DATA_KIND_BC_BUNDLE', (AMD_COMGR_DATA_KIND_AR_BUNDLE:=19): 'AMD_COMGR_DATA_KIND_AR_BUNDLE', (AMD_COMGR_DATA_KIND_OBJ_BUNDLE:=20): 'AMD_COMGR_DATA_KIND_OBJ_BUNDLE', (AMD_COMGR_DATA_KIND_SPIRV:=21): 'AMD_COMGR_DATA_KIND_SPIRV', (AMD_COMGR_DATA_KIND_LAST:=21): 'AMD_COMGR_DATA_KIND_LAST'}
amd_comgr_data_kind_t: TypeAlias = ctypes.c_uint32
@c.record
class amd_comgr_data_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
handle: int
uint64_t: TypeAlias = ctypes.c_uint64
amd_comgr_data_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_data_t: TypeAlias = amd_comgr_data_s
@c.record
class amd_comgr_data_set_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_data_set_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_data_set_t: TypeAlias = amd_comgr_data_set_s
@c.record
class amd_comgr_action_info_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_action_info_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_action_info_t: TypeAlias = amd_comgr_action_info_s
@c.record
class amd_comgr_metadata_node_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_metadata_node_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_metadata_node_t: TypeAlias = amd_comgr_metadata_node_s
@c.record
class amd_comgr_symbol_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_symbol_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_symbol_t: TypeAlias = amd_comgr_symbol_s
@c.record
class amd_comgr_disassembly_info_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_disassembly_info_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_disassembly_info_t: TypeAlias = amd_comgr_disassembly_info_s
@c.record
class amd_comgr_symbolizer_info_s(c.Struct):
SIZE = 8
handle: Annotated[uint64_t, 0]
handle: int
amd_comgr_symbolizer_info_s.register_fields([('handle', uint64_t, 0)])
amd_comgr_symbolizer_info_t: TypeAlias = amd_comgr_symbolizer_info_s
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[size_t])
def amd_comgr_get_isa_count(count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_isa_name(index:size_t, isa_name:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_isa_metadata(isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]], metadata:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, size_t, c.POINTER[c.POINTER[ctypes.c_char]])
def amd_comgr_get_isa_name(index:size_t, isa_name:c.POINTER[c.POINTER[ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, c.POINTER[ctypes.c_char], c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_get_isa_metadata(isa_name:c.POINTER[ctypes.c_char], metadata:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_kind_t, c.POINTER[amd_comgr_data_t])
def amd_comgr_create_data(kind:amd_comgr_data_kind_t, data:c.POINTER[amd_comgr_data_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t)
def amd_comgr_release_data(data:amd_comgr_data_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_data_kind_t])
def amd_comgr_get_data_kind(data:amd_comgr_data_t, kind:c.POINTER[amd_comgr_data_kind_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_set_data(data:amd_comgr_data_t, size:size_t, bytes:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_set_data_from_file_slice(data:amd_comgr_data_t, file_descriptor:Annotated[int, ctypes.c_int32], offset:uint64_t, size:uint64_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_set_data_name(data:amd_comgr_data_t, name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_data(data:amd_comgr_data_t, size:c.POINTER[size_t], bytes:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_data_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_data_isa_name(data:amd_comgr_data_t, size:c.POINTER[size_t], isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_create_symbolizer_info(code_object:amd_comgr_data_t, print_symbol_callback:c.CFUNCTYPE[None, [c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p]], symbolizer_info:c.POINTER[amd_comgr_symbolizer_info_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, size_t, c.POINTER[ctypes.c_char])
def amd_comgr_set_data(data:amd_comgr_data_t, size:size_t, bytes:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, ctypes.c_int32, uint64_t, uint64_t)
def amd_comgr_set_data_from_file_slice(data:amd_comgr_data_t, file_descriptor:int, offset:uint64_t, size:uint64_t) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[ctypes.c_char])
def amd_comgr_set_data_name(data:amd_comgr_data_t, name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_data(data:amd_comgr_data_t, size:c.POINTER[size_t], bytes:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_data_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_data_isa_name(data:amd_comgr_data_t, size:c.POINTER[size_t], isa_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], c.POINTER[amd_comgr_symbolizer_info_t])
def amd_comgr_create_symbolizer_info(code_object:amd_comgr_data_t, print_symbol_callback:c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], symbolizer_info:c.POINTER[amd_comgr_symbolizer_info_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_symbolizer_info_t)
def amd_comgr_destroy_symbolizer_info(symbolizer_info:amd_comgr_symbolizer_info_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_symbolize(symbolizer_info:amd_comgr_symbolizer_info_t, address:uint64_t, is_code:Annotated[bool, ctypes.c_bool], user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_symbolizer_info_t, uint64_t, ctypes.c_bool, ctypes.c_void_p)
def amd_comgr_symbolize(symbolizer_info:amd_comgr_symbolizer_info_t, address:uint64_t, is_code:bool, user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_get_data_metadata(data:amd_comgr_data_t, metadata:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t)
def amd_comgr_destroy_metadata(metadata:amd_comgr_metadata_node_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[amd_comgr_data_set_t])
def amd_comgr_create_data_set(data_set:c.POINTER[amd_comgr_data_set_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t)
def amd_comgr_destroy_data_set(data_set:amd_comgr_data_set_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_t)
def amd_comgr_data_set_add(data_set:amd_comgr_data_set_t, data:amd_comgr_data_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_kind_t)
def amd_comgr_data_set_remove(data_set:amd_comgr_data_set_t, data_kind:amd_comgr_data_kind_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_kind_t, c.POINTER[size_t])
def amd_comgr_action_data_count(data_set:amd_comgr_data_set_t, data_kind:amd_comgr_data_kind_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_set_t, amd_comgr_data_kind_t, size_t, c.POINTER[amd_comgr_data_t])
def amd_comgr_action_data_get_data(data_set:amd_comgr_data_set_t, data_kind:amd_comgr_data_kind_t, index:size_t, data:c.POINTER[amd_comgr_data_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[amd_comgr_action_info_t])
def amd_comgr_create_action_info(action_info:c.POINTER[amd_comgr_action_info_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t)
def amd_comgr_destroy_action_info(action_info:amd_comgr_action_info_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_isa_name(action_info:amd_comgr_action_info_t, isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_isa_name(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[ctypes.c_char])
def amd_comgr_action_info_set_isa_name(action_info:amd_comgr_action_info_t, isa_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_isa_name(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], isa_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, amd_comgr_language_t)
def amd_comgr_action_info_set_language(action_info:amd_comgr_action_info_t, language:amd_comgr_language_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[amd_comgr_language_t])
def amd_comgr_action_info_get_language(action_info:amd_comgr_action_info_t, language:c.POINTER[amd_comgr_language_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_option_list(action_info:amd_comgr_action_info_t, options:c.Array[c.POINTER[Annotated[bytes, ctypes.c_char]], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.Array[c.POINTER[ctypes.c_char], Literal[0]], size_t)
def amd_comgr_action_info_set_option_list(action_info:amd_comgr_action_info_t, options:c.Array[c.POINTER[ctypes.c_char], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t])
def amd_comgr_action_info_get_option_list_count(action_info:amd_comgr_action_info_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_option_list_item(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], option:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_bundle_entry_ids(action_info:amd_comgr_action_info_t, bundle_entry_ids:c.Array[c.POINTER[Annotated[bytes, ctypes.c_char]], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, size_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_option_list_item(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], option:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.Array[c.POINTER[ctypes.c_char], Literal[0]], size_t)
def amd_comgr_action_info_set_bundle_entry_ids(action_info:amd_comgr_action_info_t, bundle_entry_ids:c.Array[c.POINTER[ctypes.c_char], Literal[0]], count:size_t) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t])
def amd_comgr_action_info_get_bundle_entry_id_count(action_info:amd_comgr_action_info_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_bundle_entry_id(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], bundle_entry_id:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_vfs(action_info:amd_comgr_action_info_t, should_use_vfs:Annotated[bool, ctypes.c_bool]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_device_lib_linking(action_info:amd_comgr_action_info_t, should_link_device_libs:Annotated[bool, ctypes.c_bool]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_working_directory_path(action_info:amd_comgr_action_info_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_working_directory_path(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_set_logging(action_info:amd_comgr_action_info_t, logging:Annotated[bool, ctypes.c_bool]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_action_info_get_logging(action_info:amd_comgr_action_info_t, logging:c.POINTER[Annotated[bool, ctypes.c_bool]]) -> amd_comgr_status_t: ...
class amd_comgr_action_kind_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR', 0)
AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS', 1)
AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC', 2)
AMD_COMGR_ACTION_LINK_BC_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LINK_BC_TO_BC', 3)
AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE', 4)
AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY', 5)
AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE', 6)
AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE', 7)
AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE', 8)
AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE', 9)
AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE', 10)
AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE', 11)
AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC', 12)
AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE', 13)
AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE', 14)
AMD_COMGR_ACTION_UNBUNDLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_UNBUNDLE', 15)
AMD_COMGR_ACTION_COMPILE_SPIRV_TO_RELOCATABLE = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_COMPILE_SPIRV_TO_RELOCATABLE', 16)
AMD_COMGR_ACTION_TRANSLATE_SPIRV_TO_BC = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_TRANSLATE_SPIRV_TO_BC', 19)
AMD_COMGR_ACTION_LAST = amd_comgr_action_kind_s.define('AMD_COMGR_ACTION_LAST', 19)
amd_comgr_action_kind_t: TypeAlias = amd_comgr_action_kind_s
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, size_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_bundle_entry_id(action_info:amd_comgr_action_info_t, index:size_t, size:c.POINTER[size_t], bundle_entry_id:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, ctypes.c_bool)
def amd_comgr_action_info_set_vfs(action_info:amd_comgr_action_info_t, should_use_vfs:bool) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, ctypes.c_bool)
def amd_comgr_action_info_set_device_lib_linking(action_info:amd_comgr_action_info_t, should_link_device_libs:bool) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[ctypes.c_char])
def amd_comgr_action_info_set_working_directory_path(action_info:amd_comgr_action_info_t, path:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_action_info_get_working_directory_path(action_info:amd_comgr_action_info_t, size:c.POINTER[size_t], path:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, ctypes.c_bool)
def amd_comgr_action_info_set_logging(action_info:amd_comgr_action_info_t, logging:bool) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_action_info_t, c.POINTER[ctypes.c_bool])
def amd_comgr_action_info_get_logging(action_info:amd_comgr_action_info_t, logging:c.POINTER[ctypes.c_bool]) -> amd_comgr_status_t: ...
amd_comgr_action_kind_s: dict[int, str] = {(AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR:=0): 'AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR', (AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS:=1): 'AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS', (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC:=2): 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC', (AMD_COMGR_ACTION_LINK_BC_TO_BC:=3): 'AMD_COMGR_ACTION_LINK_BC_TO_BC', (AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE:=4): 'AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE', (AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY:=5): 'AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY', (AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE:=6): 'AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE', (AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE:=7): 'AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE', (AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE:=8): 'AMD_COMGR_ACTION_ASSEMBLE_SOURCE_TO_RELOCATABLE', (AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE:=9): 'AMD_COMGR_ACTION_DISASSEMBLE_RELOCATABLE_TO_SOURCE', (AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE:=10): 'AMD_COMGR_ACTION_DISASSEMBLE_EXECUTABLE_TO_SOURCE', (AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE:=11): 'AMD_COMGR_ACTION_DISASSEMBLE_BYTES_TO_SOURCE', (AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC:=12): 'AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC', (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE:=13): 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE', (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE:=14): 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE', (AMD_COMGR_ACTION_UNBUNDLE:=15): 'AMD_COMGR_ACTION_UNBUNDLE', (AMD_COMGR_ACTION_COMPILE_SPIRV_TO_RELOCATABLE:=16): 'AMD_COMGR_ACTION_COMPILE_SPIRV_TO_RELOCATABLE', (AMD_COMGR_ACTION_TRANSLATE_SPIRV_TO_BC:=19): 'AMD_COMGR_ACTION_TRANSLATE_SPIRV_TO_BC', (AMD_COMGR_ACTION_LAST:=19): 'AMD_COMGR_ACTION_LAST'}
amd_comgr_action_kind_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_action_kind_t, amd_comgr_action_info_t, amd_comgr_data_set_t, amd_comgr_data_set_t)
def amd_comgr_do_action(kind:amd_comgr_action_kind_t, info:amd_comgr_action_info_t, input:amd_comgr_data_set_t, result:amd_comgr_data_set_t) -> amd_comgr_status_t: ...
class amd_comgr_metadata_kind_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_METADATA_KIND_NULL = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_NULL', 0)
AMD_COMGR_METADATA_KIND_STRING = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_STRING', 1)
AMD_COMGR_METADATA_KIND_MAP = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_MAP', 2)
AMD_COMGR_METADATA_KIND_LIST = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_LIST', 3)
AMD_COMGR_METADATA_KIND_LAST = amd_comgr_metadata_kind_s.define('AMD_COMGR_METADATA_KIND_LAST', 3)
amd_comgr_metadata_kind_t: TypeAlias = amd_comgr_metadata_kind_s
@dll.bind
amd_comgr_metadata_kind_s: dict[int, str] = {(AMD_COMGR_METADATA_KIND_NULL:=0): 'AMD_COMGR_METADATA_KIND_NULL', (AMD_COMGR_METADATA_KIND_STRING:=1): 'AMD_COMGR_METADATA_KIND_STRING', (AMD_COMGR_METADATA_KIND_MAP:=2): 'AMD_COMGR_METADATA_KIND_MAP', (AMD_COMGR_METADATA_KIND_LIST:=3): 'AMD_COMGR_METADATA_KIND_LIST', (AMD_COMGR_METADATA_KIND_LAST:=3): 'AMD_COMGR_METADATA_KIND_LAST'}
amd_comgr_metadata_kind_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[amd_comgr_metadata_kind_t])
def amd_comgr_get_metadata_kind(metadata:amd_comgr_metadata_node_t, kind:c.POINTER[amd_comgr_metadata_kind_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_metadata_string(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t], string:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_metadata_string(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t], string:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[size_t])
def amd_comgr_get_metadata_map_size(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_metadata_node_t, amd_comgr_metadata_node_t, ctypes.c_void_p]], ctypes.c_void_p)
def amd_comgr_iterate_map_metadata(metadata:amd_comgr_metadata_node_t, callback:c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_metadata_node_t, amd_comgr_metadata_node_t, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_metadata_lookup(metadata:amd_comgr_metadata_node_t, key:c.POINTER[Annotated[bytes, ctypes.c_char]], value:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[ctypes.c_char], c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_metadata_lookup(metadata:amd_comgr_metadata_node_t, key:c.POINTER[ctypes.c_char], value:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, c.POINTER[size_t])
def amd_comgr_get_metadata_list_size(metadata:amd_comgr_metadata_node_t, size:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_metadata_node_t, size_t, c.POINTER[amd_comgr_metadata_node_t])
def amd_comgr_index_list_metadata(metadata:amd_comgr_metadata_node_t, index:size_t, value:c.POINTER[amd_comgr_metadata_node_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_symbol_t, ctypes.c_void_p]], ctypes.c_void_p)
def amd_comgr_iterate_symbols(data:amd_comgr_data_t, callback:c.CFUNCTYPE[amd_comgr_status_t, [amd_comgr_symbol_t, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_symbol_lookup(data:amd_comgr_data_t, name:c.POINTER[Annotated[bytes, ctypes.c_char]], symbol:c.POINTER[amd_comgr_symbol_t]) -> amd_comgr_status_t: ...
class amd_comgr_symbol_type_s(Annotated[int, ctypes.c_int32], c.Enum): pass
AMD_COMGR_SYMBOL_TYPE_UNKNOWN = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_UNKNOWN', -1)
AMD_COMGR_SYMBOL_TYPE_NOTYPE = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_NOTYPE', 0)
AMD_COMGR_SYMBOL_TYPE_OBJECT = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_OBJECT', 1)
AMD_COMGR_SYMBOL_TYPE_FUNC = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_FUNC', 2)
AMD_COMGR_SYMBOL_TYPE_SECTION = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_SECTION', 3)
AMD_COMGR_SYMBOL_TYPE_FILE = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_FILE', 4)
AMD_COMGR_SYMBOL_TYPE_COMMON = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_COMMON', 5)
AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL = amd_comgr_symbol_type_s.define('AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL', 10)
amd_comgr_symbol_type_t: TypeAlias = amd_comgr_symbol_type_s
class amd_comgr_symbol_info_s(Annotated[int, ctypes.c_uint32], c.Enum): pass
AMD_COMGR_SYMBOL_INFO_NAME_LENGTH = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_NAME_LENGTH', 0)
AMD_COMGR_SYMBOL_INFO_NAME = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_NAME', 1)
AMD_COMGR_SYMBOL_INFO_TYPE = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_TYPE', 2)
AMD_COMGR_SYMBOL_INFO_SIZE = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_SIZE', 3)
AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED', 4)
AMD_COMGR_SYMBOL_INFO_VALUE = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_VALUE', 5)
AMD_COMGR_SYMBOL_INFO_LAST = amd_comgr_symbol_info_s.define('AMD_COMGR_SYMBOL_INFO_LAST', 5)
amd_comgr_symbol_info_t: TypeAlias = amd_comgr_symbol_info_s
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[ctypes.c_char], c.POINTER[amd_comgr_symbol_t])
def amd_comgr_symbol_lookup(data:amd_comgr_data_t, name:c.POINTER[ctypes.c_char], symbol:c.POINTER[amd_comgr_symbol_t]) -> amd_comgr_status_t: ...
amd_comgr_symbol_type_s: dict[int, str] = {(AMD_COMGR_SYMBOL_TYPE_UNKNOWN:=-1): 'AMD_COMGR_SYMBOL_TYPE_UNKNOWN', (AMD_COMGR_SYMBOL_TYPE_NOTYPE:=0): 'AMD_COMGR_SYMBOL_TYPE_NOTYPE', (AMD_COMGR_SYMBOL_TYPE_OBJECT:=1): 'AMD_COMGR_SYMBOL_TYPE_OBJECT', (AMD_COMGR_SYMBOL_TYPE_FUNC:=2): 'AMD_COMGR_SYMBOL_TYPE_FUNC', (AMD_COMGR_SYMBOL_TYPE_SECTION:=3): 'AMD_COMGR_SYMBOL_TYPE_SECTION', (AMD_COMGR_SYMBOL_TYPE_FILE:=4): 'AMD_COMGR_SYMBOL_TYPE_FILE', (AMD_COMGR_SYMBOL_TYPE_COMMON:=5): 'AMD_COMGR_SYMBOL_TYPE_COMMON', (AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL:=10): 'AMD_COMGR_SYMBOL_TYPE_AMDGPU_HSA_KERNEL'}
amd_comgr_symbol_type_t: TypeAlias = ctypes.c_int32
amd_comgr_symbol_info_s: dict[int, str] = {(AMD_COMGR_SYMBOL_INFO_NAME_LENGTH:=0): 'AMD_COMGR_SYMBOL_INFO_NAME_LENGTH', (AMD_COMGR_SYMBOL_INFO_NAME:=1): 'AMD_COMGR_SYMBOL_INFO_NAME', (AMD_COMGR_SYMBOL_INFO_TYPE:=2): 'AMD_COMGR_SYMBOL_INFO_TYPE', (AMD_COMGR_SYMBOL_INFO_SIZE:=3): 'AMD_COMGR_SYMBOL_INFO_SIZE', (AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED:=4): 'AMD_COMGR_SYMBOL_INFO_IS_UNDEFINED', (AMD_COMGR_SYMBOL_INFO_VALUE:=5): 'AMD_COMGR_SYMBOL_INFO_VALUE', (AMD_COMGR_SYMBOL_INFO_LAST:=5): 'AMD_COMGR_SYMBOL_INFO_LAST'}
amd_comgr_symbol_info_t: TypeAlias = ctypes.c_uint32
@dll.bind(amd_comgr_status_t, amd_comgr_symbol_t, amd_comgr_symbol_info_t, ctypes.c_void_p)
def amd_comgr_symbol_get_info(symbol:amd_comgr_symbol_t, attribute:amd_comgr_symbol_info_t, value:ctypes.c_void_p) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_create_disassembly_info(isa_name:c.POINTER[Annotated[bytes, ctypes.c_char]], read_memory_callback:c.CFUNCTYPE[uint64_t, [uint64_t, c.POINTER[Annotated[bytes, ctypes.c_char]], uint64_t, ctypes.c_void_p]], print_instruction_callback:c.CFUNCTYPE[None, [c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p]], print_address_annotation_callback:c.CFUNCTYPE[None, [uint64_t, ctypes.c_void_p]], disassembly_info:c.POINTER[amd_comgr_disassembly_info_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, c.POINTER[ctypes.c_char], c.CFUNCTYPE[uint64_t, [uint64_t, c.POINTER[ctypes.c_char], uint64_t, ctypes.c_void_p]], c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], c.CFUNCTYPE[None, [uint64_t, ctypes.c_void_p]], c.POINTER[amd_comgr_disassembly_info_t])
def amd_comgr_create_disassembly_info(isa_name:c.POINTER[ctypes.c_char], read_memory_callback:c.CFUNCTYPE[uint64_t, [uint64_t, c.POINTER[ctypes.c_char], uint64_t, ctypes.c_void_p]], print_instruction_callback:c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p]], print_address_annotation_callback:c.CFUNCTYPE[None, [uint64_t, ctypes.c_void_p]], disassembly_info:c.POINTER[amd_comgr_disassembly_info_t]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_disassembly_info_t)
def amd_comgr_destroy_disassembly_info(disassembly_info:amd_comgr_disassembly_info_t) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_disassembly_info_t, uint64_t, ctypes.c_void_p, c.POINTER[uint64_t])
def amd_comgr_disassemble_instruction(disassembly_info:amd_comgr_disassembly_info_t, address:uint64_t, user_data:ctypes.c_void_p, size:c.POINTER[uint64_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_data_t])
def amd_comgr_demangle_symbol_name(mangled_symbol_name:amd_comgr_data_t, demangled_symbol_name:c.POINTER[amd_comgr_data_t]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t])
def amd_comgr_populate_mangled_names(data:amd_comgr_data_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_get_mangled_name(data:amd_comgr_data_t, index:size_t, size:c.POINTER[size_t], mangled_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, size_t, c.POINTER[size_t], c.POINTER[ctypes.c_char])
def amd_comgr_get_mangled_name(data:amd_comgr_data_t, index:size_t, size:c.POINTER[size_t], mangled_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t])
def amd_comgr_populate_name_expression_map(data:amd_comgr_data_t, count:c.POINTER[size_t]) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_map_name_expression_to_symbol_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name_expression:c.POINTER[Annotated[bytes, ctypes.c_char]], symbol_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> amd_comgr_status_t: ...
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[size_t], c.POINTER[ctypes.c_char], c.POINTER[ctypes.c_char])
def amd_comgr_map_name_expression_to_symbol_name(data:amd_comgr_data_t, size:c.POINTER[size_t], name_expression:c.POINTER[ctypes.c_char], symbol_name:c.POINTER[ctypes.c_char]) -> amd_comgr_status_t: ...
@c.record
class code_object_info_s(c.Struct):
SIZE = 24
isa: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 0]
size: Annotated[size_t, 8]
offset: Annotated[uint64_t, 16]
isa: c.POINTER[ctypes.c_char]
size: int
offset: int
code_object_info_s.register_fields([('isa', c.POINTER[ctypes.c_char], 0), ('size', size_t, 8), ('offset', uint64_t, 16)])
amd_comgr_code_object_info_t: TypeAlias = code_object_info_s
@dll.bind
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, c.POINTER[amd_comgr_code_object_info_t], size_t)
def amd_comgr_lookup_code_object(data:amd_comgr_data_t, info_list:c.POINTER[amd_comgr_code_object_info_t], info_list_size:size_t) -> amd_comgr_status_t: ...
@dll.bind
def amd_comgr_map_elf_virtual_address_to_code_object_offset(data:amd_comgr_data_t, elf_virtual_address:uint64_t, code_object_offset:c.POINTER[uint64_t], slice_size:c.POINTER[uint64_t], nobits:c.POINTER[Annotated[bool, ctypes.c_bool]]) -> amd_comgr_status_t: ...
c.init_records()
@dll.bind(amd_comgr_status_t, amd_comgr_data_t, uint64_t, c.POINTER[uint64_t], c.POINTER[uint64_t], c.POINTER[ctypes.c_bool])
def amd_comgr_map_elf_virtual_address_to_code_object_offset(data:amd_comgr_data_t, elf_virtual_address:uint64_t, code_object_offset:c.POINTER[uint64_t], slice_size:c.POINTER[uint64_t], nobits:c.POINTER[ctypes.c_bool]) -> amd_comgr_status_t: ...
AMD_COMGR_DEPRECATED = lambda msg: __attribute__((deprecated(msg))) # type: ignore
AMD_COMGR_INTERFACE_VERSION_MAJOR = 3 # type: ignore
AMD_COMGR_INTERFACE_VERSION_MINOR = 0 # type: ignore

View file

@ -1,232 +1,203 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
dll = c.DLL('corefoundation', 'CoreFoundation')
CFStringEncoding: TypeAlias = Annotated[int, ctypes.c_uint32]
CFStringBuiltInEncodings: TypeAlias = Annotated[int, ctypes.c_uint32]
class _anonenum0(Annotated[int, ctypes.c_uint32], c.Enum): pass
kCFStringEncodingMacRoman = _anonenum0.define('kCFStringEncodingMacRoman', 0)
kCFStringEncodingWindowsLatin1 = _anonenum0.define('kCFStringEncodingWindowsLatin1', 1280)
kCFStringEncodingISOLatin1 = _anonenum0.define('kCFStringEncodingISOLatin1', 513)
kCFStringEncodingNextStepLatin = _anonenum0.define('kCFStringEncodingNextStepLatin', 2817)
kCFStringEncodingASCII = _anonenum0.define('kCFStringEncodingASCII', 1536)
kCFStringEncodingUnicode = _anonenum0.define('kCFStringEncodingUnicode', 256)
kCFStringEncodingUTF8 = _anonenum0.define('kCFStringEncodingUTF8', 134217984)
kCFStringEncodingNonLossyASCII = _anonenum0.define('kCFStringEncodingNonLossyASCII', 3071)
kCFStringEncodingUTF16 = _anonenum0.define('kCFStringEncodingUTF16', 256)
kCFStringEncodingUTF16BE = _anonenum0.define('kCFStringEncodingUTF16BE', 268435712)
kCFStringEncodingUTF16LE = _anonenum0.define('kCFStringEncodingUTF16LE', 335544576)
kCFStringEncodingUTF32 = _anonenum0.define('kCFStringEncodingUTF32', 201326848)
kCFStringEncodingUTF32BE = _anonenum0.define('kCFStringEncodingUTF32BE', 402653440)
kCFStringEncodingUTF32LE = _anonenum0.define('kCFStringEncodingUTF32LE', 469762304)
CFTypeID: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
CFStringEncoding: TypeAlias = ctypes.c_uint32
CFStringBuiltInEncodings: TypeAlias = ctypes.c_uint32
_anonenum0: dict[int, str] = {(kCFStringEncodingMacRoman:=0): 'kCFStringEncodingMacRoman', (kCFStringEncodingWindowsLatin1:=1280): 'kCFStringEncodingWindowsLatin1', (kCFStringEncodingISOLatin1:=513): 'kCFStringEncodingISOLatin1', (kCFStringEncodingNextStepLatin:=2817): 'kCFStringEncodingNextStepLatin', (kCFStringEncodingASCII:=1536): 'kCFStringEncodingASCII', (kCFStringEncodingUnicode:=256): 'kCFStringEncodingUnicode', (kCFStringEncodingUTF8:=134217984): 'kCFStringEncodingUTF8', (kCFStringEncodingNonLossyASCII:=3071): 'kCFStringEncodingNonLossyASCII', (kCFStringEncodingUTF16:=256): 'kCFStringEncodingUTF16', (kCFStringEncodingUTF16BE:=268435712): 'kCFStringEncodingUTF16BE', (kCFStringEncodingUTF16LE:=335544576): 'kCFStringEncodingUTF16LE', (kCFStringEncodingUTF32:=201326848): 'kCFStringEncodingUTF32', (kCFStringEncodingUTF32BE:=402653440): 'kCFStringEncodingUTF32BE', (kCFStringEncodingUTF32LE:=469762304): 'kCFStringEncodingUTF32LE'}
CFTypeID: TypeAlias = ctypes.c_uint64
@dll.bind(CFTypeID)
def CFStringGetTypeID() -> CFTypeID: ...
class struct___CFAllocator(c.Struct): SIZE = 0
CFAllocatorRef: TypeAlias = c.POINTER[struct___CFAllocator]
ConstStr255Param: TypeAlias = c.POINTER[Annotated[int, ctypes.c_ubyte]]
class struct___CFString(c.Struct): SIZE = 0
class struct___CFString(c.Struct): pass
CFStringRef: TypeAlias = c.POINTER[struct___CFString]
@dll.bind
class struct___CFAllocator(c.Struct): pass
CFAllocatorRef: TypeAlias = c.POINTER[struct___CFAllocator]
ConstStr255Param: TypeAlias = c.POINTER[ctypes.c_ubyte]
@dll.bind(CFStringRef, CFAllocatorRef, ConstStr255Param, CFStringEncoding)
def CFStringCreateWithPascalString(alloc:CFAllocatorRef, pStr:ConstStr255Param, encoding:CFStringEncoding) -> CFStringRef: ...
@dll.bind
def CFStringCreateWithCString(alloc:CFAllocatorRef, cStr:c.POINTER[Annotated[bytes, ctypes.c_char]], encoding:CFStringEncoding) -> CFStringRef: ...
UInt8: TypeAlias = Annotated[int, ctypes.c_ubyte]
CFIndex: TypeAlias = Annotated[int, ctypes.c_int64]
Boolean: TypeAlias = Annotated[int, ctypes.c_ubyte]
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, c.POINTER[ctypes.c_char], CFStringEncoding)
def CFStringCreateWithCString(alloc:CFAllocatorRef, cStr:c.POINTER[ctypes.c_char], encoding:CFStringEncoding) -> CFStringRef: ...
UInt8: TypeAlias = ctypes.c_ubyte
CFIndex: TypeAlias = ctypes.c_int64
Boolean: TypeAlias = ctypes.c_ubyte
@dll.bind(CFStringRef, CFAllocatorRef, c.POINTER[UInt8], CFIndex, CFStringEncoding, Boolean)
def CFStringCreateWithBytes(alloc:CFAllocatorRef, bytes:c.POINTER[UInt8], numBytes:CFIndex, encoding:CFStringEncoding, isExternalRepresentation:Boolean) -> CFStringRef: ...
UniChar: TypeAlias = Annotated[int, ctypes.c_uint16]
@dll.bind
UniChar: TypeAlias = ctypes.c_uint16
@dll.bind(CFStringRef, CFAllocatorRef, c.POINTER[UniChar], CFIndex)
def CFStringCreateWithCharacters(alloc:CFAllocatorRef, chars:c.POINTER[UniChar], numChars:CFIndex) -> CFStringRef: ...
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, ConstStr255Param, CFStringEncoding, CFAllocatorRef)
def CFStringCreateWithPascalStringNoCopy(alloc:CFAllocatorRef, pStr:ConstStr255Param, encoding:CFStringEncoding, contentsDeallocator:CFAllocatorRef) -> CFStringRef: ...
@dll.bind
def CFStringCreateWithCStringNoCopy(alloc:CFAllocatorRef, cStr:c.POINTER[Annotated[bytes, ctypes.c_char]], encoding:CFStringEncoding, contentsDeallocator:CFAllocatorRef) -> CFStringRef: ...
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, c.POINTER[ctypes.c_char], CFStringEncoding, CFAllocatorRef)
def CFStringCreateWithCStringNoCopy(alloc:CFAllocatorRef, cStr:c.POINTER[ctypes.c_char], encoding:CFStringEncoding, contentsDeallocator:CFAllocatorRef) -> CFStringRef: ...
@dll.bind(CFStringRef, CFAllocatorRef, c.POINTER[UInt8], CFIndex, CFStringEncoding, Boolean, CFAllocatorRef)
def CFStringCreateWithBytesNoCopy(alloc:CFAllocatorRef, bytes:c.POINTER[UInt8], numBytes:CFIndex, encoding:CFStringEncoding, isExternalRepresentation:Boolean, contentsDeallocator:CFAllocatorRef) -> CFStringRef: ...
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, c.POINTER[UniChar], CFIndex, CFAllocatorRef)
def CFStringCreateWithCharactersNoCopy(alloc:CFAllocatorRef, chars:c.POINTER[UniChar], numChars:CFIndex, contentsDeallocator:CFAllocatorRef) -> CFStringRef: ...
@c.record
class CFRange(c.Struct):
SIZE = 16
location: Annotated[CFIndex, 0]
length: Annotated[CFIndex, 8]
@dll.bind
location: int
length: int
CFRange.register_fields([('location', CFIndex, 0), ('length', CFIndex, 8)])
@dll.bind(CFStringRef, CFAllocatorRef, CFStringRef, CFRange)
def CFStringCreateWithSubstring(alloc:CFAllocatorRef, str:CFStringRef, range:CFRange) -> CFStringRef: ...
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, CFStringRef)
def CFStringCreateCopy(alloc:CFAllocatorRef, theString:CFStringRef) -> CFStringRef: ...
class struct___CFDictionary(c.Struct): SIZE = 0
class struct___CFDictionary(c.Struct): pass
CFDictionaryRef: TypeAlias = c.POINTER[struct___CFDictionary]
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, CFDictionaryRef, CFStringRef)
def CFStringCreateWithFormat(alloc:CFAllocatorRef, formatOptions:CFDictionaryRef, format:CFStringRef) -> CFStringRef: ...
@dll.bind
def CFStringCreateWithFormatAndArguments(alloc:CFAllocatorRef, formatOptions:CFDictionaryRef, format:CFStringRef, arguments:Annotated[int, ctypes.c_int32]) -> CFStringRef: ...
class struct___CFError(c.Struct): SIZE = 0
@dll.bind(CFStringRef, CFAllocatorRef, CFDictionaryRef, CFStringRef, ctypes.c_int32)
def CFStringCreateWithFormatAndArguments(alloc:CFAllocatorRef, formatOptions:CFDictionaryRef, format:CFStringRef, arguments:int) -> CFStringRef: ...
class struct___CFError(c.Struct): pass
CFErrorRef: TypeAlias = c.POINTER[struct___CFError]
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, CFDictionaryRef, CFStringRef, CFStringRef, c.POINTER[CFErrorRef])
def CFStringCreateStringWithValidatedFormat(alloc:CFAllocatorRef, formatOptions:CFDictionaryRef, validFormatSpecifiers:CFStringRef, format:CFStringRef, errorPtr:c.POINTER[CFErrorRef]) -> CFStringRef: ...
@dll.bind
def CFStringCreateStringWithValidatedFormatAndArguments(alloc:CFAllocatorRef, formatOptions:CFDictionaryRef, validFormatSpecifiers:CFStringRef, format:CFStringRef, arguments:Annotated[int, ctypes.c_int32], errorPtr:c.POINTER[CFErrorRef]) -> CFStringRef: ...
@dll.bind(CFStringRef, CFAllocatorRef, CFDictionaryRef, CFStringRef, CFStringRef, ctypes.c_int32, c.POINTER[CFErrorRef])
def CFStringCreateStringWithValidatedFormatAndArguments(alloc:CFAllocatorRef, formatOptions:CFDictionaryRef, validFormatSpecifiers:CFStringRef, format:CFStringRef, arguments:int, errorPtr:c.POINTER[CFErrorRef]) -> CFStringRef: ...
CFMutableStringRef: TypeAlias = c.POINTER[struct___CFString]
@dll.bind
@dll.bind(CFMutableStringRef, CFAllocatorRef, CFIndex)
def CFStringCreateMutable(alloc:CFAllocatorRef, maxLength:CFIndex) -> CFMutableStringRef: ...
@dll.bind
@dll.bind(CFMutableStringRef, CFAllocatorRef, CFIndex, CFStringRef)
def CFStringCreateMutableCopy(alloc:CFAllocatorRef, maxLength:CFIndex, theString:CFStringRef) -> CFMutableStringRef: ...
@dll.bind
@dll.bind(CFMutableStringRef, CFAllocatorRef, c.POINTER[UniChar], CFIndex, CFIndex, CFAllocatorRef)
def CFStringCreateMutableWithExternalCharactersNoCopy(alloc:CFAllocatorRef, chars:c.POINTER[UniChar], numChars:CFIndex, capacity:CFIndex, externalCharactersAllocator:CFAllocatorRef) -> CFMutableStringRef: ...
@dll.bind
@dll.bind(CFIndex, CFStringRef)
def CFStringGetLength(theString:CFStringRef) -> CFIndex: ...
@dll.bind
@dll.bind(UniChar, CFStringRef, CFIndex)
def CFStringGetCharacterAtIndex(theString:CFStringRef, idx:CFIndex) -> UniChar: ...
@dll.bind
@dll.bind(None, CFStringRef, CFRange, c.POINTER[UniChar])
def CFStringGetCharacters(theString:CFStringRef, range:CFRange, buffer:c.POINTER[UniChar]) -> None: ...
StringPtr: TypeAlias = c.POINTER[Annotated[int, ctypes.c_ubyte]]
@dll.bind
StringPtr: TypeAlias = c.POINTER[ctypes.c_ubyte]
@dll.bind(Boolean, CFStringRef, StringPtr, CFIndex, CFStringEncoding)
def CFStringGetPascalString(theString:CFStringRef, buffer:StringPtr, bufferSize:CFIndex, encoding:CFStringEncoding) -> Boolean: ...
@dll.bind
def CFStringGetCString(theString:CFStringRef, buffer:c.POINTER[Annotated[bytes, ctypes.c_char]], bufferSize:CFIndex, encoding:CFStringEncoding) -> Boolean: ...
ConstStringPtr: TypeAlias = c.POINTER[Annotated[int, ctypes.c_ubyte]]
@dll.bind
@dll.bind(Boolean, CFStringRef, c.POINTER[ctypes.c_char], CFIndex, CFStringEncoding)
def CFStringGetCString(theString:CFStringRef, buffer:c.POINTER[ctypes.c_char], bufferSize:CFIndex, encoding:CFStringEncoding) -> Boolean: ...
ConstStringPtr: TypeAlias = c.POINTER[ctypes.c_ubyte]
@dll.bind(ConstStringPtr, CFStringRef, CFStringEncoding)
def CFStringGetPascalStringPtr(theString:CFStringRef, encoding:CFStringEncoding) -> ConstStringPtr: ...
@dll.bind
def CFStringGetCStringPtr(theString:CFStringRef, encoding:CFStringEncoding) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
@dll.bind(c.POINTER[ctypes.c_char], CFStringRef, CFStringEncoding)
def CFStringGetCStringPtr(theString:CFStringRef, encoding:CFStringEncoding) -> c.POINTER[ctypes.c_char]: ...
@dll.bind(c.POINTER[UniChar], CFStringRef)
def CFStringGetCharactersPtr(theString:CFStringRef) -> c.POINTER[UniChar]: ...
@dll.bind
@dll.bind(CFIndex, CFStringRef, CFRange, CFStringEncoding, UInt8, Boolean, c.POINTER[UInt8], CFIndex, c.POINTER[CFIndex])
def CFStringGetBytes(theString:CFStringRef, range:CFRange, encoding:CFStringEncoding, lossByte:UInt8, isExternalRepresentation:Boolean, buffer:c.POINTER[UInt8], maxBufLen:CFIndex, usedBufLen:c.POINTER[CFIndex]) -> CFIndex: ...
class struct___CFData(c.Struct): SIZE = 0
class struct___CFData(c.Struct): pass
CFDataRef: TypeAlias = c.POINTER[struct___CFData]
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, CFDataRef, CFStringEncoding)
def CFStringCreateFromExternalRepresentation(alloc:CFAllocatorRef, data:CFDataRef, encoding:CFStringEncoding) -> CFStringRef: ...
@dll.bind
@dll.bind(CFDataRef, CFAllocatorRef, CFStringRef, CFStringEncoding, UInt8)
def CFStringCreateExternalRepresentation(alloc:CFAllocatorRef, theString:CFStringRef, encoding:CFStringEncoding, lossByte:UInt8) -> CFDataRef: ...
@dll.bind
@dll.bind(CFStringEncoding, CFStringRef)
def CFStringGetSmallestEncoding(theString:CFStringRef) -> CFStringEncoding: ...
@dll.bind
@dll.bind(CFStringEncoding, CFStringRef)
def CFStringGetFastestEncoding(theString:CFStringRef) -> CFStringEncoding: ...
@dll.bind
@dll.bind(CFStringEncoding)
def CFStringGetSystemEncoding() -> CFStringEncoding: ...
@dll.bind
@dll.bind(CFIndex, CFIndex, CFStringEncoding)
def CFStringGetMaximumSizeForEncoding(length:CFIndex, encoding:CFStringEncoding) -> CFIndex: ...
@dll.bind
def CFStringGetFileSystemRepresentation(string:CFStringRef, buffer:c.POINTER[Annotated[bytes, ctypes.c_char]], maxBufLen:CFIndex) -> Boolean: ...
@dll.bind
@dll.bind(Boolean, CFStringRef, c.POINTER[ctypes.c_char], CFIndex)
def CFStringGetFileSystemRepresentation(string:CFStringRef, buffer:c.POINTER[ctypes.c_char], maxBufLen:CFIndex) -> Boolean: ...
@dll.bind(CFIndex, CFStringRef)
def CFStringGetMaximumSizeOfFileSystemRepresentation(string:CFStringRef) -> CFIndex: ...
@dll.bind
def CFStringCreateWithFileSystemRepresentation(alloc:CFAllocatorRef, buffer:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> CFStringRef: ...
CFStringCompareFlags: TypeAlias = Annotated[int, ctypes.c_uint64]
class _anonenum1(Annotated[int, ctypes.c_uint32], c.Enum): pass
kCFCompareCaseInsensitive = _anonenum1.define('kCFCompareCaseInsensitive', 1)
kCFCompareBackwards = _anonenum1.define('kCFCompareBackwards', 4)
kCFCompareAnchored = _anonenum1.define('kCFCompareAnchored', 8)
kCFCompareNonliteral = _anonenum1.define('kCFCompareNonliteral', 16)
kCFCompareLocalized = _anonenum1.define('kCFCompareLocalized', 32)
kCFCompareNumerically = _anonenum1.define('kCFCompareNumerically', 64)
kCFCompareDiacriticInsensitive = _anonenum1.define('kCFCompareDiacriticInsensitive', 128)
kCFCompareWidthInsensitive = _anonenum1.define('kCFCompareWidthInsensitive', 256)
kCFCompareForcedOrdering = _anonenum1.define('kCFCompareForcedOrdering', 512)
class struct___CFLocale(c.Struct): SIZE = 0
@dll.bind(CFStringRef, CFAllocatorRef, c.POINTER[ctypes.c_char])
def CFStringCreateWithFileSystemRepresentation(alloc:CFAllocatorRef, buffer:c.POINTER[ctypes.c_char]) -> CFStringRef: ...
CFStringCompareFlags: TypeAlias = ctypes.c_uint64
_anonenum1: dict[int, str] = {(kCFCompareCaseInsensitive:=1): 'kCFCompareCaseInsensitive', (kCFCompareBackwards:=4): 'kCFCompareBackwards', (kCFCompareAnchored:=8): 'kCFCompareAnchored', (kCFCompareNonliteral:=16): 'kCFCompareNonliteral', (kCFCompareLocalized:=32): 'kCFCompareLocalized', (kCFCompareNumerically:=64): 'kCFCompareNumerically', (kCFCompareDiacriticInsensitive:=128): 'kCFCompareDiacriticInsensitive', (kCFCompareWidthInsensitive:=256): 'kCFCompareWidthInsensitive', (kCFCompareForcedOrdering:=512): 'kCFCompareForcedOrdering'}
CFComparisonResult: TypeAlias = ctypes.c_int64
class struct___CFLocale(c.Struct): pass
CFLocaleRef: TypeAlias = c.POINTER[struct___CFLocale]
CFComparisonResult: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
@dll.bind(CFComparisonResult, CFStringRef, CFStringRef, CFRange, CFStringCompareFlags, CFLocaleRef)
def CFStringCompareWithOptionsAndLocale(theString1:CFStringRef, theString2:CFStringRef, rangeToCompare:CFRange, compareOptions:CFStringCompareFlags, locale:CFLocaleRef) -> CFComparisonResult: ...
@dll.bind
@dll.bind(CFComparisonResult, CFStringRef, CFStringRef, CFRange, CFStringCompareFlags)
def CFStringCompareWithOptions(theString1:CFStringRef, theString2:CFStringRef, rangeToCompare:CFRange, compareOptions:CFStringCompareFlags) -> CFComparisonResult: ...
@dll.bind
@dll.bind(CFComparisonResult, CFStringRef, CFStringRef, CFStringCompareFlags)
def CFStringCompare(theString1:CFStringRef, theString2:CFStringRef, compareOptions:CFStringCompareFlags) -> CFComparisonResult: ...
@dll.bind
@dll.bind(Boolean, CFStringRef, CFStringRef, CFRange, CFStringCompareFlags, CFLocaleRef, c.POINTER[CFRange])
def CFStringFindWithOptionsAndLocale(theString:CFStringRef, stringToFind:CFStringRef, rangeToSearch:CFRange, searchOptions:CFStringCompareFlags, locale:CFLocaleRef, result:c.POINTER[CFRange]) -> Boolean: ...
@dll.bind
@dll.bind(Boolean, CFStringRef, CFStringRef, CFRange, CFStringCompareFlags, c.POINTER[CFRange])
def CFStringFindWithOptions(theString:CFStringRef, stringToFind:CFStringRef, rangeToSearch:CFRange, searchOptions:CFStringCompareFlags, result:c.POINTER[CFRange]) -> Boolean: ...
class struct___CFArray(c.Struct): SIZE = 0
class struct___CFArray(c.Struct): pass
CFArrayRef: TypeAlias = c.POINTER[struct___CFArray]
@dll.bind
@dll.bind(CFArrayRef, CFAllocatorRef, CFStringRef, CFStringRef, CFRange, CFStringCompareFlags)
def CFStringCreateArrayWithFindResults(alloc:CFAllocatorRef, theString:CFStringRef, stringToFind:CFStringRef, rangeToSearch:CFRange, compareOptions:CFStringCompareFlags) -> CFArrayRef: ...
@dll.bind
@dll.bind(CFRange, CFStringRef, CFStringRef, CFStringCompareFlags)
def CFStringFind(theString:CFStringRef, stringToFind:CFStringRef, compareOptions:CFStringCompareFlags) -> CFRange: ...
@dll.bind
@dll.bind(Boolean, CFStringRef, CFStringRef)
def CFStringHasPrefix(theString:CFStringRef, prefix:CFStringRef) -> Boolean: ...
@dll.bind
@dll.bind(Boolean, CFStringRef, CFStringRef)
def CFStringHasSuffix(theString:CFStringRef, suffix:CFStringRef) -> Boolean: ...
@dll.bind
@dll.bind(CFRange, CFStringRef, CFIndex)
def CFStringGetRangeOfComposedCharactersAtIndex(theString:CFStringRef, theIndex:CFIndex) -> CFRange: ...
class struct___CFCharacterSet(c.Struct): SIZE = 0
class struct___CFCharacterSet(c.Struct): pass
CFCharacterSetRef: TypeAlias = c.POINTER[struct___CFCharacterSet]
@dll.bind
@dll.bind(Boolean, CFStringRef, CFCharacterSetRef, CFRange, CFStringCompareFlags, c.POINTER[CFRange])
def CFStringFindCharacterFromSet(theString:CFStringRef, theSet:CFCharacterSetRef, rangeToSearch:CFRange, searchOptions:CFStringCompareFlags, result:c.POINTER[CFRange]) -> Boolean: ...
@dll.bind
@dll.bind(None, CFStringRef, CFRange, c.POINTER[CFIndex], c.POINTER[CFIndex], c.POINTER[CFIndex])
def CFStringGetLineBounds(theString:CFStringRef, range:CFRange, lineBeginIndex:c.POINTER[CFIndex], lineEndIndex:c.POINTER[CFIndex], contentsEndIndex:c.POINTER[CFIndex]) -> None: ...
@dll.bind
@dll.bind(None, CFStringRef, CFRange, c.POINTER[CFIndex], c.POINTER[CFIndex], c.POINTER[CFIndex])
def CFStringGetParagraphBounds(string:CFStringRef, range:CFRange, parBeginIndex:c.POINTER[CFIndex], parEndIndex:c.POINTER[CFIndex], contentsEndIndex:c.POINTER[CFIndex]) -> None: ...
CFOptionFlags: TypeAlias = Annotated[int, ctypes.c_uint64]
UTF32Char: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
CFOptionFlags: TypeAlias = ctypes.c_uint64
UTF32Char: TypeAlias = ctypes.c_uint32
@dll.bind(CFIndex, CFStringRef, CFIndex, CFRange, CFOptionFlags, CFLocaleRef, c.POINTER[UTF32Char])
def CFStringGetHyphenationLocationBeforeIndex(string:CFStringRef, location:CFIndex, limitRange:CFRange, options:CFOptionFlags, locale:CFLocaleRef, character:c.POINTER[UTF32Char]) -> CFIndex: ...
@dll.bind
@dll.bind(Boolean, CFLocaleRef)
def CFStringIsHyphenationAvailableForLocale(locale:CFLocaleRef) -> Boolean: ...
@dll.bind
@dll.bind(CFStringRef, CFAllocatorRef, CFArrayRef, CFStringRef)
def CFStringCreateByCombiningStrings(alloc:CFAllocatorRef, theArray:CFArrayRef, separatorString:CFStringRef) -> CFStringRef: ...
@dll.bind
@dll.bind(CFArrayRef, CFAllocatorRef, CFStringRef, CFStringRef)
def CFStringCreateArrayBySeparatingStrings(alloc:CFAllocatorRef, theString:CFStringRef, separatorString:CFStringRef) -> CFArrayRef: ...
SInt32: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
SInt32: TypeAlias = ctypes.c_int32
@dll.bind(SInt32, CFStringRef)
def CFStringGetIntValue(str:CFStringRef) -> SInt32: ...
@dll.bind
def CFStringGetDoubleValue(str:CFStringRef) -> Annotated[float, ctypes.c_double]: ...
@dll.bind
@dll.bind(ctypes.c_double, CFStringRef)
def CFStringGetDoubleValue(str:CFStringRef) -> float: ...
@dll.bind(None, CFMutableStringRef, CFStringRef)
def CFStringAppend(theString:CFMutableStringRef, appendedString:CFStringRef) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, c.POINTER[UniChar], CFIndex)
def CFStringAppendCharacters(theString:CFMutableStringRef, chars:c.POINTER[UniChar], numChars:CFIndex) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, ConstStr255Param, CFStringEncoding)
def CFStringAppendPascalString(theString:CFMutableStringRef, pStr:ConstStr255Param, encoding:CFStringEncoding) -> None: ...
@dll.bind
def CFStringAppendCString(theString:CFMutableStringRef, cStr:c.POINTER[Annotated[bytes, ctypes.c_char]], encoding:CFStringEncoding) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, c.POINTER[ctypes.c_char], CFStringEncoding)
def CFStringAppendCString(theString:CFMutableStringRef, cStr:c.POINTER[ctypes.c_char], encoding:CFStringEncoding) -> None: ...
@dll.bind(None, CFMutableStringRef, CFDictionaryRef, CFStringRef)
def CFStringAppendFormat(theString:CFMutableStringRef, formatOptions:CFDictionaryRef, format:CFStringRef) -> None: ...
@dll.bind
def CFStringAppendFormatAndArguments(theString:CFMutableStringRef, formatOptions:CFDictionaryRef, format:CFStringRef, arguments:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFDictionaryRef, CFStringRef, ctypes.c_int32)
def CFStringAppendFormatAndArguments(theString:CFMutableStringRef, formatOptions:CFDictionaryRef, format:CFStringRef, arguments:int) -> None: ...
@dll.bind(None, CFMutableStringRef, CFIndex, CFStringRef)
def CFStringInsert(str:CFMutableStringRef, idx:CFIndex, insertedStr:CFStringRef) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFRange)
def CFStringDelete(theString:CFMutableStringRef, range:CFRange) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFRange, CFStringRef)
def CFStringReplace(theString:CFMutableStringRef, range:CFRange, replacement:CFStringRef) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFStringRef)
def CFStringReplaceAll(theString:CFMutableStringRef, replacement:CFStringRef) -> None: ...
@dll.bind
@dll.bind(CFIndex, CFMutableStringRef, CFStringRef, CFStringRef, CFRange, CFStringCompareFlags)
def CFStringFindAndReplace(theString:CFMutableStringRef, stringToFind:CFStringRef, replacementString:CFStringRef, rangeToSearch:CFRange, compareOptions:CFStringCompareFlags) -> CFIndex: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, c.POINTER[UniChar], CFIndex, CFIndex)
def CFStringSetExternalCharactersNoCopy(theString:CFMutableStringRef, chars:c.POINTER[UniChar], length:CFIndex, capacity:CFIndex) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFStringRef, CFIndex, CFIndex)
def CFStringPad(theString:CFMutableStringRef, padString:CFStringRef, length:CFIndex, indexIntoPad:CFIndex) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFStringRef)
def CFStringTrim(theString:CFMutableStringRef, trimString:CFStringRef) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef)
def CFStringTrimWhitespace(theString:CFMutableStringRef) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFLocaleRef)
def CFStringLowercase(theString:CFMutableStringRef, locale:CFLocaleRef) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFLocaleRef)
def CFStringUppercase(theString:CFMutableStringRef, locale:CFLocaleRef) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFLocaleRef)
def CFStringCapitalize(theString:CFMutableStringRef, locale:CFLocaleRef) -> None: ...
CFStringNormalizationForm: TypeAlias = Annotated[int, ctypes.c_int64]
class _anonenum2(Annotated[int, ctypes.c_uint32], c.Enum): pass
kCFStringNormalizationFormD = _anonenum2.define('kCFStringNormalizationFormD', 0)
kCFStringNormalizationFormKD = _anonenum2.define('kCFStringNormalizationFormKD', 1)
kCFStringNormalizationFormC = _anonenum2.define('kCFStringNormalizationFormC', 2)
kCFStringNormalizationFormKC = _anonenum2.define('kCFStringNormalizationFormKC', 3)
@dll.bind
CFStringNormalizationForm: TypeAlias = ctypes.c_int64
_anonenum2: dict[int, str] = {(kCFStringNormalizationFormD:=0): 'kCFStringNormalizationFormD', (kCFStringNormalizationFormKD:=1): 'kCFStringNormalizationFormKD', (kCFStringNormalizationFormC:=2): 'kCFStringNormalizationFormC', (kCFStringNormalizationFormKC:=3): 'kCFStringNormalizationFormKC'}
@dll.bind(None, CFMutableStringRef, CFStringNormalizationForm)
def CFStringNormalize(theString:CFMutableStringRef, theForm:CFStringNormalizationForm) -> None: ...
@dll.bind
@dll.bind(None, CFMutableStringRef, CFStringCompareFlags, CFLocaleRef)
def CFStringFold(theString:CFMutableStringRef, theFlags:CFStringCompareFlags, theLocale:CFLocaleRef) -> None: ...
@dll.bind
@dll.bind(Boolean, CFMutableStringRef, c.POINTER[CFRange], CFStringRef, Boolean)
def CFStringTransform(string:CFMutableStringRef, range:c.POINTER[CFRange], transform:CFStringRef, reverse:Boolean) -> Boolean: ...
try: kCFStringTransformStripCombiningMarks = CFStringRef.in_dll(dll, 'kCFStringTransformStripCombiningMarks') # type: ignore
except (ValueError,AttributeError): pass
@ -260,83 +231,80 @@ try: kCFStringTransformToUnicodeName = CFStringRef.in_dll(dll, 'kCFStringTransfo
except (ValueError,AttributeError): pass
try: kCFStringTransformStripDiacritics = CFStringRef.in_dll(dll, 'kCFStringTransformStripDiacritics') # type: ignore
except (ValueError,AttributeError): pass
@dll.bind
@dll.bind(Boolean, CFStringEncoding)
def CFStringIsEncodingAvailable(encoding:CFStringEncoding) -> Boolean: ...
@dll.bind
@dll.bind(c.POINTER[CFStringEncoding])
def CFStringGetListOfAvailableEncodings() -> c.POINTER[CFStringEncoding]: ...
@dll.bind
@dll.bind(CFStringRef, CFStringEncoding)
def CFStringGetNameOfEncoding(encoding:CFStringEncoding) -> CFStringRef: ...
@dll.bind
def CFStringConvertEncodingToNSStringEncoding(encoding:CFStringEncoding) -> Annotated[int, ctypes.c_uint64]: ...
@dll.bind
def CFStringConvertNSStringEncodingToEncoding(encoding:Annotated[int, ctypes.c_uint64]) -> CFStringEncoding: ...
UInt32: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
@dll.bind(ctypes.c_uint64, CFStringEncoding)
def CFStringConvertEncodingToNSStringEncoding(encoding:CFStringEncoding) -> int: ...
@dll.bind(CFStringEncoding, ctypes.c_uint64)
def CFStringConvertNSStringEncodingToEncoding(encoding:int) -> CFStringEncoding: ...
UInt32: TypeAlias = ctypes.c_uint32
@dll.bind(UInt32, CFStringEncoding)
def CFStringConvertEncodingToWindowsCodepage(encoding:CFStringEncoding) -> UInt32: ...
@dll.bind
@dll.bind(CFStringEncoding, UInt32)
def CFStringConvertWindowsCodepageToEncoding(codepage:UInt32) -> CFStringEncoding: ...
@dll.bind
@dll.bind(CFStringEncoding, CFStringRef)
def CFStringConvertIANACharSetNameToEncoding(theString:CFStringRef) -> CFStringEncoding: ...
@dll.bind
@dll.bind(CFStringRef, CFStringEncoding)
def CFStringConvertEncodingToIANACharSetName(encoding:CFStringEncoding) -> CFStringRef: ...
@dll.bind
@dll.bind(CFStringEncoding, CFStringEncoding)
def CFStringGetMostCompatibleMacStringEncoding(encoding:CFStringEncoding) -> CFStringEncoding: ...
@c.record
class CFStringInlineBuffer(c.Struct):
SIZE = 184
buffer: Annotated[c.Array[UniChar, Literal[64]], 0]
theString: Annotated[CFStringRef, 128]
directUniCharBuffer: Annotated[c.POINTER[UniChar], 136]
directCStringBuffer: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 144]
rangeToBuffer: Annotated[CFRange, 152]
bufferedRangeStart: Annotated[CFIndex, 168]
bufferedRangeEnd: Annotated[CFIndex, 176]
buffer: c.Array[ctypes.c_uint16, Literal[64]]
theString: c.POINTER[struct___CFString]
directUniCharBuffer: c.POINTER[ctypes.c_uint16]
directCStringBuffer: c.POINTER[ctypes.c_char]
rangeToBuffer: CFRange
bufferedRangeStart: int
bufferedRangeEnd: int
CFStringInlineBuffer.register_fields([('buffer', c.Array[UniChar, Literal[64]], 0), ('theString', CFStringRef, 128), ('directUniCharBuffer', c.POINTER[UniChar], 136), ('directCStringBuffer', c.POINTER[ctypes.c_char], 144), ('rangeToBuffer', CFRange, 152), ('bufferedRangeStart', CFIndex, 168), ('bufferedRangeEnd', CFIndex, 176)])
CFTypeRef: TypeAlias = ctypes.c_void_p
@dll.bind
@dll.bind(None, CFTypeRef)
def CFShow(obj:CFTypeRef) -> None: ...
@dll.bind
@dll.bind(None, CFStringRef)
def CFShowStr(str:CFStringRef) -> None: ...
@dll.bind
def __CFStringMakeConstantString(cStr:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> CFStringRef: ...
@dll.bind(CFStringRef, c.POINTER[ctypes.c_char])
def __CFStringMakeConstantString(cStr:c.POINTER[ctypes.c_char]) -> CFStringRef: ...
CFMutableDataRef: TypeAlias = c.POINTER[struct___CFData]
@dll.bind
@dll.bind(CFTypeID)
def CFDataGetTypeID() -> CFTypeID: ...
@dll.bind
@dll.bind(CFDataRef, CFAllocatorRef, c.POINTER[UInt8], CFIndex)
def CFDataCreate(allocator:CFAllocatorRef, bytes:c.POINTER[UInt8], length:CFIndex) -> CFDataRef: ...
@dll.bind
@dll.bind(CFDataRef, CFAllocatorRef, c.POINTER[UInt8], CFIndex, CFAllocatorRef)
def CFDataCreateWithBytesNoCopy(allocator:CFAllocatorRef, bytes:c.POINTER[UInt8], length:CFIndex, bytesDeallocator:CFAllocatorRef) -> CFDataRef: ...
@dll.bind
@dll.bind(CFDataRef, CFAllocatorRef, CFDataRef)
def CFDataCreateCopy(allocator:CFAllocatorRef, theData:CFDataRef) -> CFDataRef: ...
@dll.bind
@dll.bind(CFMutableDataRef, CFAllocatorRef, CFIndex)
def CFDataCreateMutable(allocator:CFAllocatorRef, capacity:CFIndex) -> CFMutableDataRef: ...
@dll.bind
@dll.bind(CFMutableDataRef, CFAllocatorRef, CFIndex, CFDataRef)
def CFDataCreateMutableCopy(allocator:CFAllocatorRef, capacity:CFIndex, theData:CFDataRef) -> CFMutableDataRef: ...
@dll.bind
@dll.bind(CFIndex, CFDataRef)
def CFDataGetLength(theData:CFDataRef) -> CFIndex: ...
@dll.bind
@dll.bind(c.POINTER[UInt8], CFDataRef)
def CFDataGetBytePtr(theData:CFDataRef) -> c.POINTER[UInt8]: ...
@dll.bind
@dll.bind(c.POINTER[UInt8], CFMutableDataRef)
def CFDataGetMutableBytePtr(theData:CFMutableDataRef) -> c.POINTER[UInt8]: ...
@dll.bind
@dll.bind(None, CFDataRef, CFRange, c.POINTER[UInt8])
def CFDataGetBytes(theData:CFDataRef, range:CFRange, buffer:c.POINTER[UInt8]) -> None: ...
@dll.bind
@dll.bind(None, CFMutableDataRef, CFIndex)
def CFDataSetLength(theData:CFMutableDataRef, length:CFIndex) -> None: ...
@dll.bind
@dll.bind(None, CFMutableDataRef, CFIndex)
def CFDataIncreaseLength(theData:CFMutableDataRef, extraLength:CFIndex) -> None: ...
@dll.bind
@dll.bind(None, CFMutableDataRef, c.POINTER[UInt8], CFIndex)
def CFDataAppendBytes(theData:CFMutableDataRef, bytes:c.POINTER[UInt8], length:CFIndex) -> None: ...
@dll.bind
@dll.bind(None, CFMutableDataRef, CFRange, c.POINTER[UInt8], CFIndex)
def CFDataReplaceBytes(theData:CFMutableDataRef, range:CFRange, newBytes:c.POINTER[UInt8], newLength:CFIndex) -> None: ...
@dll.bind
@dll.bind(None, CFMutableDataRef, CFRange)
def CFDataDeleteBytes(theData:CFMutableDataRef, range:CFRange) -> None: ...
CFDataSearchFlags: TypeAlias = Annotated[int, ctypes.c_uint64]
class _anonenum3(Annotated[int, ctypes.c_uint32], c.Enum): pass
kCFDataSearchBackwards = _anonenum3.define('kCFDataSearchBackwards', 1)
kCFDataSearchAnchored = _anonenum3.define('kCFDataSearchAnchored', 2)
@dll.bind
CFDataSearchFlags: TypeAlias = ctypes.c_uint64
_anonenum3: dict[int, str] = {(kCFDataSearchBackwards:=1): 'kCFDataSearchBackwards', (kCFDataSearchAnchored:=2): 'kCFDataSearchAnchored'}
@dll.bind(CFRange, CFDataRef, CFDataRef, CFRange, CFDataSearchFlags)
def CFDataFind(theData:CFDataRef, dataToFind:CFDataRef, searchRange:CFRange, compareOptions:CFDataSearchFlags) -> CFRange: ...
c.init_records()
__COREFOUNDATION_CFSTRING__ = 1 # type: ignore
kCFStringEncodingInvalidId = (0xffffffff) # type: ignore
CF_FORMAT_FUNCTION = lambda F,A: __attribute__((format(CFString, F, A))) # type: ignore

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -1,561 +1,447 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
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_io_uring_sq(c.Struct):
SIZE = 104
khead: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 0]
ktail: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 8]
kring_mask: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 16]
kring_entries: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 24]
kflags: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 32]
kdropped: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 40]
array: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 48]
sqes: Annotated[c.POINTER[struct_io_uring_sqe], 56]
sqe_head: Annotated[Annotated[int, ctypes.c_uint32], 64]
sqe_tail: Annotated[Annotated[int, ctypes.c_uint32], 68]
ring_sz: Annotated[size_t, 72]
ring_ptr: Annotated[ctypes.c_void_p, 80]
ring_mask: Annotated[Annotated[int, ctypes.c_uint32], 88]
ring_entries: Annotated[Annotated[int, ctypes.c_uint32], 92]
sqes_sz: Annotated[Annotated[int, ctypes.c_uint32], 96]
pad: Annotated[Annotated[int, ctypes.c_uint32], 100]
khead: c.POINTER[ctypes.c_uint32]
ktail: c.POINTER[ctypes.c_uint32]
kring_mask: c.POINTER[ctypes.c_uint32]
kring_entries: c.POINTER[ctypes.c_uint32]
kflags: c.POINTER[ctypes.c_uint32]
kdropped: c.POINTER[ctypes.c_uint32]
array: c.POINTER[ctypes.c_uint32]
sqes: c.POINTER[struct_io_uring_sqe]
sqe_head: int
sqe_tail: int
ring_sz: int
ring_ptr: ctypes.c_void_p
ring_mask: int
ring_entries: int
sqes_sz: int
pad: int
@c.record
class struct_io_uring_sqe(c.Struct):
SIZE = 64
opcode: Annotated[Annotated[int, ctypes.c_ubyte], 0]
flags: Annotated[Annotated[int, ctypes.c_ubyte], 1]
ioprio: Annotated[Annotated[int, ctypes.c_uint16], 2]
fd: Annotated[Annotated[int, ctypes.c_int32], 4]
off: Annotated[Annotated[int, ctypes.c_uint64], 8]
addr2: Annotated[Annotated[int, ctypes.c_uint64], 8]
cmd_op: Annotated[Annotated[int, ctypes.c_uint32], 8]
__pad1: Annotated[Annotated[int, ctypes.c_uint32], 12]
addr: Annotated[Annotated[int, ctypes.c_uint64], 16]
splice_off_in: Annotated[Annotated[int, ctypes.c_uint64], 16]
len: Annotated[Annotated[int, ctypes.c_uint32], 24]
rw_flags: Annotated[Annotated[int, ctypes.c_int32], 28]
fsync_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
poll_events: Annotated[Annotated[int, ctypes.c_uint16], 28]
poll32_events: Annotated[Annotated[int, ctypes.c_uint32], 28]
sync_range_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
msg_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
timeout_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
accept_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
cancel_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
open_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
statx_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
fadvise_advice: Annotated[Annotated[int, ctypes.c_uint32], 28]
splice_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
rename_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
unlink_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
hardlink_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
xattr_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
msg_ring_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
uring_cmd_flags: Annotated[Annotated[int, ctypes.c_uint32], 28]
user_data: Annotated[Annotated[int, ctypes.c_uint64], 32]
buf_index: Annotated[Annotated[int, ctypes.c_uint16], 40]
buf_group: Annotated[Annotated[int, ctypes.c_uint16], 40]
personality: Annotated[Annotated[int, ctypes.c_uint16], 42]
splice_fd_in: Annotated[Annotated[int, ctypes.c_int32], 44]
file_index: Annotated[Annotated[int, ctypes.c_uint32], 44]
addr_len: Annotated[Annotated[int, ctypes.c_uint16], 44]
__pad3: Annotated[c.Array[Annotated[int, ctypes.c_uint16], Literal[1]], 46]
addr3: Annotated[Annotated[int, ctypes.c_uint64], 48]
__pad2: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[1]], 56]
cmd: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[0]], 48]
__u8: TypeAlias = Annotated[int, ctypes.c_ubyte]
__u16: TypeAlias = Annotated[int, ctypes.c_uint16]
__s32: TypeAlias = Annotated[int, ctypes.c_int32]
__u64: TypeAlias = Annotated[int, ctypes.c_uint64]
__u32: TypeAlias = Annotated[int, ctypes.c_uint32]
__kernel_rwf_t: TypeAlias = Annotated[int, ctypes.c_int32]
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
opcode: int
flags: int
ioprio: int
fd: int
off: int
addr2: int
cmd_op: int
__pad1: int
addr: int
splice_off_in: int
len: int
rw_flags: int
fsync_flags: int
poll_events: int
poll32_events: int
sync_range_flags: int
msg_flags: int
timeout_flags: int
accept_flags: int
cancel_flags: int
open_flags: int
statx_flags: int
fadvise_advice: int
splice_flags: int
rename_flags: int
unlink_flags: int
hardlink_flags: int
xattr_flags: int
msg_ring_flags: int
uring_cmd_flags: int
user_data: int
buf_index: int
buf_group: int
personality: int
splice_fd_in: int
file_index: int
addr_len: int
__pad3: c.Array[ctypes.c_uint16, Literal[1]]
addr3: int
__pad2: c.Array[ctypes.c_uint64, Literal[1]]
cmd: c.Array[ctypes.c_ubyte, Literal[0]]
__u8: TypeAlias = ctypes.c_ubyte
__u16: TypeAlias = ctypes.c_uint16
__s32: TypeAlias = ctypes.c_int32
__u64: TypeAlias = ctypes.c_uint64
__u32: TypeAlias = ctypes.c_uint32
__kernel_rwf_t: TypeAlias = ctypes.c_int32
struct_io_uring_sqe.register_fields([('opcode', ctypes.c_ubyte, 0), ('flags', ctypes.c_ubyte, 1), ('ioprio', ctypes.c_uint16, 2), ('fd', ctypes.c_int32, 4), ('off', ctypes.c_uint64, 8), ('addr2', ctypes.c_uint64, 8), ('cmd_op', ctypes.c_uint32, 8), ('__pad1', ctypes.c_uint32, 12), ('addr', ctypes.c_uint64, 16), ('splice_off_in', ctypes.c_uint64, 16), ('len', ctypes.c_uint32, 24), ('rw_flags', ctypes.c_int32, 28), ('fsync_flags', ctypes.c_uint32, 28), ('poll_events', ctypes.c_uint16, 28), ('poll32_events', ctypes.c_uint32, 28), ('sync_range_flags', ctypes.c_uint32, 28), ('msg_flags', ctypes.c_uint32, 28), ('timeout_flags', ctypes.c_uint32, 28), ('accept_flags', ctypes.c_uint32, 28), ('cancel_flags', ctypes.c_uint32, 28), ('open_flags', ctypes.c_uint32, 28), ('statx_flags', ctypes.c_uint32, 28), ('fadvise_advice', ctypes.c_uint32, 28), ('splice_flags', ctypes.c_uint32, 28), ('rename_flags', ctypes.c_uint32, 28), ('unlink_flags', ctypes.c_uint32, 28), ('hardlink_flags', ctypes.c_uint32, 28), ('xattr_flags', ctypes.c_uint32, 28), ('msg_ring_flags', ctypes.c_uint32, 28), ('uring_cmd_flags', ctypes.c_uint32, 28), ('user_data', ctypes.c_uint64, 32), ('buf_index', ctypes.c_uint16, 40), ('buf_group', ctypes.c_uint16, 40), ('personality', ctypes.c_uint16, 42), ('splice_fd_in', ctypes.c_int32, 44), ('file_index', ctypes.c_uint32, 44), ('addr_len', ctypes.c_uint16, 44), ('__pad3', c.Array[ctypes.c_uint16, Literal[1]], 46), ('addr3', ctypes.c_uint64, 48), ('__pad2', c.Array[ctypes.c_uint64, Literal[1]], 56), ('cmd', c.Array[ctypes.c_ubyte, Literal[0]], 48)])
size_t: TypeAlias = ctypes.c_uint64
struct_io_uring_sq.register_fields([('khead', c.POINTER[ctypes.c_uint32], 0), ('ktail', c.POINTER[ctypes.c_uint32], 8), ('kring_mask', c.POINTER[ctypes.c_uint32], 16), ('kring_entries', c.POINTER[ctypes.c_uint32], 24), ('kflags', c.POINTER[ctypes.c_uint32], 32), ('kdropped', c.POINTER[ctypes.c_uint32], 40), ('array', c.POINTER[ctypes.c_uint32], 48), ('sqes', c.POINTER[struct_io_uring_sqe], 56), ('sqe_head', ctypes.c_uint32, 64), ('sqe_tail', ctypes.c_uint32, 68), ('ring_sz', size_t, 72), ('ring_ptr', ctypes.c_void_p, 80), ('ring_mask', ctypes.c_uint32, 88), ('ring_entries', ctypes.c_uint32, 92), ('sqes_sz', ctypes.c_uint32, 96), ('pad', ctypes.c_uint32, 100)])
@c.record
class struct_io_uring_cq(c.Struct):
SIZE = 88
khead: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 0]
ktail: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 8]
kring_mask: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 16]
kring_entries: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 24]
kflags: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 32]
koverflow: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 40]
cqes: Annotated[c.POINTER[struct_io_uring_cqe], 48]
ring_sz: Annotated[size_t, 56]
ring_ptr: Annotated[ctypes.c_void_p, 64]
ring_mask: Annotated[Annotated[int, ctypes.c_uint32], 72]
ring_entries: Annotated[Annotated[int, ctypes.c_uint32], 76]
pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[2]], 80]
khead: c.POINTER[ctypes.c_uint32]
ktail: c.POINTER[ctypes.c_uint32]
kring_mask: c.POINTER[ctypes.c_uint32]
kring_entries: c.POINTER[ctypes.c_uint32]
kflags: c.POINTER[ctypes.c_uint32]
koverflow: c.POINTER[ctypes.c_uint32]
cqes: c.POINTER[struct_io_uring_cqe]
ring_sz: int
ring_ptr: ctypes.c_void_p
ring_mask: int
ring_entries: int
pad: c.Array[ctypes.c_uint32, Literal[2]]
@c.record
class struct_io_uring_cqe(c.Struct):
SIZE = 16
user_data: Annotated[Annotated[int, ctypes.c_uint64], 0]
res: Annotated[Annotated[int, ctypes.c_int32], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 12]
big_cqe: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[0]], 16]
user_data: int
res: int
flags: int
big_cqe: c.Array[ctypes.c_uint64, Literal[0]]
struct_io_uring_cqe.register_fields([('user_data', ctypes.c_uint64, 0), ('res', ctypes.c_int32, 8), ('flags', ctypes.c_uint32, 12), ('big_cqe', c.Array[ctypes.c_uint64, Literal[0]], 16)])
struct_io_uring_cq.register_fields([('khead', c.POINTER[ctypes.c_uint32], 0), ('ktail', c.POINTER[ctypes.c_uint32], 8), ('kring_mask', c.POINTER[ctypes.c_uint32], 16), ('kring_entries', c.POINTER[ctypes.c_uint32], 24), ('kflags', c.POINTER[ctypes.c_uint32], 32), ('koverflow', c.POINTER[ctypes.c_uint32], 40), ('cqes', c.POINTER[struct_io_uring_cqe], 48), ('ring_sz', size_t, 56), ('ring_ptr', ctypes.c_void_p, 64), ('ring_mask', ctypes.c_uint32, 72), ('ring_entries', ctypes.c_uint32, 76), ('pad', c.Array[ctypes.c_uint32, Literal[2]], 80)])
@c.record
class struct_io_uring(c.Struct):
SIZE = 216
sq: Annotated[struct_io_uring_sq, 0]
cq: Annotated[struct_io_uring_cq, 104]
flags: Annotated[Annotated[int, ctypes.c_uint32], 192]
ring_fd: Annotated[Annotated[int, ctypes.c_int32], 196]
features: Annotated[Annotated[int, ctypes.c_uint32], 200]
enter_ring_fd: Annotated[Annotated[int, ctypes.c_int32], 204]
int_flags: Annotated[Annotated[int, ctypes.c_ubyte], 208]
pad: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[3]], 209]
pad2: Annotated[Annotated[int, ctypes.c_uint32], 212]
sq: struct_io_uring_sq
cq: struct_io_uring_cq
flags: int
ring_fd: int
features: int
enter_ring_fd: int
int_flags: int
pad: c.Array[ctypes.c_ubyte, Literal[3]]
pad2: int
struct_io_uring.register_fields([('sq', struct_io_uring_sq, 0), ('cq', struct_io_uring_cq, 104), ('flags', ctypes.c_uint32, 192), ('ring_fd', ctypes.c_int32, 196), ('features', ctypes.c_uint32, 200), ('enter_ring_fd', ctypes.c_int32, 204), ('int_flags', ctypes.c_ubyte, 208), ('pad', c.Array[ctypes.c_ubyte, Literal[3]], 209), ('pad2', ctypes.c_uint32, 212)])
@c.record
class struct_io_uring_zcrx_rq(c.Struct):
SIZE = 40
khead: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 0]
ktail: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 8]
rq_tail: Annotated[Annotated[int, ctypes.c_uint32], 16]
ring_entries: Annotated[Annotated[int, ctypes.c_uint32], 20]
rqes: Annotated[c.POINTER[struct_io_uring_zcrx_rqe], 24]
ring_ptr: Annotated[ctypes.c_void_p, 32]
khead: c.POINTER[ctypes.c_uint32]
ktail: c.POINTER[ctypes.c_uint32]
rq_tail: int
ring_entries: int
rqes: c.POINTER[struct_io_uring_zcrx_rqe]
ring_ptr: ctypes.c_void_p
@c.record
class struct_io_uring_zcrx_rqe(c.Struct):
SIZE = 16
off: Annotated[Annotated[int, ctypes.c_uint64], 0]
len: Annotated[Annotated[int, ctypes.c_uint32], 8]
__pad: Annotated[Annotated[int, ctypes.c_uint32], 12]
off: int
len: int
__pad: int
struct_io_uring_zcrx_rq.register_fields([('khead', c.POINTER[ctypes.c_uint32], 0), ('ktail', c.POINTER[ctypes.c_uint32], 8), ('rq_tail', ctypes.c_uint32, 16), ('ring_entries', ctypes.c_uint32, 20), ('rqes', c.POINTER[struct_io_uring_zcrx_rqe], 24), ('ring_ptr', ctypes.c_void_p, 32)])
@c.record
class struct_io_uring_cqe_iter(c.Struct):
SIZE = 24
cqes: Annotated[c.POINTER[struct_io_uring_cqe], 0]
mask: Annotated[Annotated[int, ctypes.c_uint32], 8]
shift: Annotated[Annotated[int, ctypes.c_uint32], 12]
head: Annotated[Annotated[int, ctypes.c_uint32], 16]
tail: Annotated[Annotated[int, ctypes.c_uint32], 20]
class struct_epoll_event(c.Struct): SIZE = 0
class struct_statx(c.Struct): SIZE = 0
class struct_futex_waitv(c.Struct): SIZE = 0
cqes: c.POINTER[struct_io_uring_cqe]
mask: int
shift: int
head: int
tail: int
struct_io_uring_cqe_iter.register_fields([('cqes', c.POINTER[struct_io_uring_cqe], 0), ('mask', ctypes.c_uint32, 8), ('shift', ctypes.c_uint32, 12), ('head', ctypes.c_uint32, 16), ('tail', ctypes.c_uint32, 20)])
class struct_epoll_event(c.Struct): pass
class struct_statx(c.Struct): pass
class struct_futex_waitv(c.Struct): pass
@c.record
class struct_io_uring_attr_pi(c.Struct):
SIZE = 32
flags: Annotated[Annotated[int, ctypes.c_uint16], 0]
app_tag: Annotated[Annotated[int, ctypes.c_uint16], 2]
len: Annotated[Annotated[int, ctypes.c_uint32], 4]
addr: Annotated[Annotated[int, ctypes.c_uint64], 8]
seed: Annotated[Annotated[int, ctypes.c_uint64], 16]
rsvd: Annotated[Annotated[int, ctypes.c_uint64], 24]
class enum_io_uring_sqe_flags_bit(Annotated[int, ctypes.c_uint32], c.Enum): pass
IOSQE_FIXED_FILE_BIT = enum_io_uring_sqe_flags_bit.define('IOSQE_FIXED_FILE_BIT', 0)
IOSQE_IO_DRAIN_BIT = enum_io_uring_sqe_flags_bit.define('IOSQE_IO_DRAIN_BIT', 1)
IOSQE_IO_LINK_BIT = enum_io_uring_sqe_flags_bit.define('IOSQE_IO_LINK_BIT', 2)
IOSQE_IO_HARDLINK_BIT = enum_io_uring_sqe_flags_bit.define('IOSQE_IO_HARDLINK_BIT', 3)
IOSQE_ASYNC_BIT = enum_io_uring_sqe_flags_bit.define('IOSQE_ASYNC_BIT', 4)
IOSQE_BUFFER_SELECT_BIT = enum_io_uring_sqe_flags_bit.define('IOSQE_BUFFER_SELECT_BIT', 5)
IOSQE_CQE_SKIP_SUCCESS_BIT = enum_io_uring_sqe_flags_bit.define('IOSQE_CQE_SKIP_SUCCESS_BIT', 6)
class enum_io_uring_op(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_OP_NOP = enum_io_uring_op.define('IORING_OP_NOP', 0)
IORING_OP_READV = enum_io_uring_op.define('IORING_OP_READV', 1)
IORING_OP_WRITEV = enum_io_uring_op.define('IORING_OP_WRITEV', 2)
IORING_OP_FSYNC = enum_io_uring_op.define('IORING_OP_FSYNC', 3)
IORING_OP_READ_FIXED = enum_io_uring_op.define('IORING_OP_READ_FIXED', 4)
IORING_OP_WRITE_FIXED = enum_io_uring_op.define('IORING_OP_WRITE_FIXED', 5)
IORING_OP_POLL_ADD = enum_io_uring_op.define('IORING_OP_POLL_ADD', 6)
IORING_OP_POLL_REMOVE = enum_io_uring_op.define('IORING_OP_POLL_REMOVE', 7)
IORING_OP_SYNC_FILE_RANGE = enum_io_uring_op.define('IORING_OP_SYNC_FILE_RANGE', 8)
IORING_OP_SENDMSG = enum_io_uring_op.define('IORING_OP_SENDMSG', 9)
IORING_OP_RECVMSG = enum_io_uring_op.define('IORING_OP_RECVMSG', 10)
IORING_OP_TIMEOUT = enum_io_uring_op.define('IORING_OP_TIMEOUT', 11)
IORING_OP_TIMEOUT_REMOVE = enum_io_uring_op.define('IORING_OP_TIMEOUT_REMOVE', 12)
IORING_OP_ACCEPT = enum_io_uring_op.define('IORING_OP_ACCEPT', 13)
IORING_OP_ASYNC_CANCEL = enum_io_uring_op.define('IORING_OP_ASYNC_CANCEL', 14)
IORING_OP_LINK_TIMEOUT = enum_io_uring_op.define('IORING_OP_LINK_TIMEOUT', 15)
IORING_OP_CONNECT = enum_io_uring_op.define('IORING_OP_CONNECT', 16)
IORING_OP_FALLOCATE = enum_io_uring_op.define('IORING_OP_FALLOCATE', 17)
IORING_OP_OPENAT = enum_io_uring_op.define('IORING_OP_OPENAT', 18)
IORING_OP_CLOSE = enum_io_uring_op.define('IORING_OP_CLOSE', 19)
IORING_OP_FILES_UPDATE = enum_io_uring_op.define('IORING_OP_FILES_UPDATE', 20)
IORING_OP_STATX = enum_io_uring_op.define('IORING_OP_STATX', 21)
IORING_OP_READ = enum_io_uring_op.define('IORING_OP_READ', 22)
IORING_OP_WRITE = enum_io_uring_op.define('IORING_OP_WRITE', 23)
IORING_OP_FADVISE = enum_io_uring_op.define('IORING_OP_FADVISE', 24)
IORING_OP_MADVISE = enum_io_uring_op.define('IORING_OP_MADVISE', 25)
IORING_OP_SEND = enum_io_uring_op.define('IORING_OP_SEND', 26)
IORING_OP_RECV = enum_io_uring_op.define('IORING_OP_RECV', 27)
IORING_OP_OPENAT2 = enum_io_uring_op.define('IORING_OP_OPENAT2', 28)
IORING_OP_EPOLL_CTL = enum_io_uring_op.define('IORING_OP_EPOLL_CTL', 29)
IORING_OP_SPLICE = enum_io_uring_op.define('IORING_OP_SPLICE', 30)
IORING_OP_PROVIDE_BUFFERS = enum_io_uring_op.define('IORING_OP_PROVIDE_BUFFERS', 31)
IORING_OP_REMOVE_BUFFERS = enum_io_uring_op.define('IORING_OP_REMOVE_BUFFERS', 32)
IORING_OP_TEE = enum_io_uring_op.define('IORING_OP_TEE', 33)
IORING_OP_SHUTDOWN = enum_io_uring_op.define('IORING_OP_SHUTDOWN', 34)
IORING_OP_RENAMEAT = enum_io_uring_op.define('IORING_OP_RENAMEAT', 35)
IORING_OP_UNLINKAT = enum_io_uring_op.define('IORING_OP_UNLINKAT', 36)
IORING_OP_MKDIRAT = enum_io_uring_op.define('IORING_OP_MKDIRAT', 37)
IORING_OP_SYMLINKAT = enum_io_uring_op.define('IORING_OP_SYMLINKAT', 38)
IORING_OP_LINKAT = enum_io_uring_op.define('IORING_OP_LINKAT', 39)
IORING_OP_MSG_RING = enum_io_uring_op.define('IORING_OP_MSG_RING', 40)
IORING_OP_FSETXATTR = enum_io_uring_op.define('IORING_OP_FSETXATTR', 41)
IORING_OP_SETXATTR = enum_io_uring_op.define('IORING_OP_SETXATTR', 42)
IORING_OP_FGETXATTR = enum_io_uring_op.define('IORING_OP_FGETXATTR', 43)
IORING_OP_GETXATTR = enum_io_uring_op.define('IORING_OP_GETXATTR', 44)
IORING_OP_SOCKET = enum_io_uring_op.define('IORING_OP_SOCKET', 45)
IORING_OP_URING_CMD = enum_io_uring_op.define('IORING_OP_URING_CMD', 46)
IORING_OP_SEND_ZC = enum_io_uring_op.define('IORING_OP_SEND_ZC', 47)
IORING_OP_SENDMSG_ZC = enum_io_uring_op.define('IORING_OP_SENDMSG_ZC', 48)
IORING_OP_READ_MULTISHOT = enum_io_uring_op.define('IORING_OP_READ_MULTISHOT', 49)
IORING_OP_WAITID = enum_io_uring_op.define('IORING_OP_WAITID', 50)
IORING_OP_FUTEX_WAIT = enum_io_uring_op.define('IORING_OP_FUTEX_WAIT', 51)
IORING_OP_FUTEX_WAKE = enum_io_uring_op.define('IORING_OP_FUTEX_WAKE', 52)
IORING_OP_FUTEX_WAITV = enum_io_uring_op.define('IORING_OP_FUTEX_WAITV', 53)
IORING_OP_FIXED_FD_INSTALL = enum_io_uring_op.define('IORING_OP_FIXED_FD_INSTALL', 54)
IORING_OP_FTRUNCATE = enum_io_uring_op.define('IORING_OP_FTRUNCATE', 55)
IORING_OP_BIND = enum_io_uring_op.define('IORING_OP_BIND', 56)
IORING_OP_LISTEN = enum_io_uring_op.define('IORING_OP_LISTEN', 57)
IORING_OP_RECV_ZC = enum_io_uring_op.define('IORING_OP_RECV_ZC', 58)
IORING_OP_EPOLL_WAIT = enum_io_uring_op.define('IORING_OP_EPOLL_WAIT', 59)
IORING_OP_READV_FIXED = enum_io_uring_op.define('IORING_OP_READV_FIXED', 60)
IORING_OP_WRITEV_FIXED = enum_io_uring_op.define('IORING_OP_WRITEV_FIXED', 61)
IORING_OP_PIPE = enum_io_uring_op.define('IORING_OP_PIPE', 62)
IORING_OP_LAST = enum_io_uring_op.define('IORING_OP_LAST', 63)
class enum_io_uring_msg_ring_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_MSG_DATA = enum_io_uring_msg_ring_flags.define('IORING_MSG_DATA', 0)
IORING_MSG_SEND_FD = enum_io_uring_msg_ring_flags.define('IORING_MSG_SEND_FD', 1)
flags: int
app_tag: int
len: int
addr: int
seed: int
rsvd: int
struct_io_uring_attr_pi.register_fields([('flags', ctypes.c_uint16, 0), ('app_tag', ctypes.c_uint16, 2), ('len', ctypes.c_uint32, 4), ('addr', ctypes.c_uint64, 8), ('seed', ctypes.c_uint64, 16), ('rsvd', ctypes.c_uint64, 24)])
enum_io_uring_sqe_flags_bit: dict[int, str] = {(IOSQE_FIXED_FILE_BIT:=0): 'IOSQE_FIXED_FILE_BIT', (IOSQE_IO_DRAIN_BIT:=1): 'IOSQE_IO_DRAIN_BIT', (IOSQE_IO_LINK_BIT:=2): 'IOSQE_IO_LINK_BIT', (IOSQE_IO_HARDLINK_BIT:=3): 'IOSQE_IO_HARDLINK_BIT', (IOSQE_ASYNC_BIT:=4): 'IOSQE_ASYNC_BIT', (IOSQE_BUFFER_SELECT_BIT:=5): 'IOSQE_BUFFER_SELECT_BIT', (IOSQE_CQE_SKIP_SUCCESS_BIT:=6): 'IOSQE_CQE_SKIP_SUCCESS_BIT'}
enum_io_uring_op: dict[int, str] = {(IORING_OP_NOP:=0): 'IORING_OP_NOP', (IORING_OP_READV:=1): 'IORING_OP_READV', (IORING_OP_WRITEV:=2): 'IORING_OP_WRITEV', (IORING_OP_FSYNC:=3): 'IORING_OP_FSYNC', (IORING_OP_READ_FIXED:=4): 'IORING_OP_READ_FIXED', (IORING_OP_WRITE_FIXED:=5): 'IORING_OP_WRITE_FIXED', (IORING_OP_POLL_ADD:=6): 'IORING_OP_POLL_ADD', (IORING_OP_POLL_REMOVE:=7): 'IORING_OP_POLL_REMOVE', (IORING_OP_SYNC_FILE_RANGE:=8): 'IORING_OP_SYNC_FILE_RANGE', (IORING_OP_SENDMSG:=9): 'IORING_OP_SENDMSG', (IORING_OP_RECVMSG:=10): 'IORING_OP_RECVMSG', (IORING_OP_TIMEOUT:=11): 'IORING_OP_TIMEOUT', (IORING_OP_TIMEOUT_REMOVE:=12): 'IORING_OP_TIMEOUT_REMOVE', (IORING_OP_ACCEPT:=13): 'IORING_OP_ACCEPT', (IORING_OP_ASYNC_CANCEL:=14): 'IORING_OP_ASYNC_CANCEL', (IORING_OP_LINK_TIMEOUT:=15): 'IORING_OP_LINK_TIMEOUT', (IORING_OP_CONNECT:=16): 'IORING_OP_CONNECT', (IORING_OP_FALLOCATE:=17): 'IORING_OP_FALLOCATE', (IORING_OP_OPENAT:=18): 'IORING_OP_OPENAT', (IORING_OP_CLOSE:=19): 'IORING_OP_CLOSE', (IORING_OP_FILES_UPDATE:=20): 'IORING_OP_FILES_UPDATE', (IORING_OP_STATX:=21): 'IORING_OP_STATX', (IORING_OP_READ:=22): 'IORING_OP_READ', (IORING_OP_WRITE:=23): 'IORING_OP_WRITE', (IORING_OP_FADVISE:=24): 'IORING_OP_FADVISE', (IORING_OP_MADVISE:=25): 'IORING_OP_MADVISE', (IORING_OP_SEND:=26): 'IORING_OP_SEND', (IORING_OP_RECV:=27): 'IORING_OP_RECV', (IORING_OP_OPENAT2:=28): 'IORING_OP_OPENAT2', (IORING_OP_EPOLL_CTL:=29): 'IORING_OP_EPOLL_CTL', (IORING_OP_SPLICE:=30): 'IORING_OP_SPLICE', (IORING_OP_PROVIDE_BUFFERS:=31): 'IORING_OP_PROVIDE_BUFFERS', (IORING_OP_REMOVE_BUFFERS:=32): 'IORING_OP_REMOVE_BUFFERS', (IORING_OP_TEE:=33): 'IORING_OP_TEE', (IORING_OP_SHUTDOWN:=34): 'IORING_OP_SHUTDOWN', (IORING_OP_RENAMEAT:=35): 'IORING_OP_RENAMEAT', (IORING_OP_UNLINKAT:=36): 'IORING_OP_UNLINKAT', (IORING_OP_MKDIRAT:=37): 'IORING_OP_MKDIRAT', (IORING_OP_SYMLINKAT:=38): 'IORING_OP_SYMLINKAT', (IORING_OP_LINKAT:=39): 'IORING_OP_LINKAT', (IORING_OP_MSG_RING:=40): 'IORING_OP_MSG_RING', (IORING_OP_FSETXATTR:=41): 'IORING_OP_FSETXATTR', (IORING_OP_SETXATTR:=42): 'IORING_OP_SETXATTR', (IORING_OP_FGETXATTR:=43): 'IORING_OP_FGETXATTR', (IORING_OP_GETXATTR:=44): 'IORING_OP_GETXATTR', (IORING_OP_SOCKET:=45): 'IORING_OP_SOCKET', (IORING_OP_URING_CMD:=46): 'IORING_OP_URING_CMD', (IORING_OP_SEND_ZC:=47): 'IORING_OP_SEND_ZC', (IORING_OP_SENDMSG_ZC:=48): 'IORING_OP_SENDMSG_ZC', (IORING_OP_READ_MULTISHOT:=49): 'IORING_OP_READ_MULTISHOT', (IORING_OP_WAITID:=50): 'IORING_OP_WAITID', (IORING_OP_FUTEX_WAIT:=51): 'IORING_OP_FUTEX_WAIT', (IORING_OP_FUTEX_WAKE:=52): 'IORING_OP_FUTEX_WAKE', (IORING_OP_FUTEX_WAITV:=53): 'IORING_OP_FUTEX_WAITV', (IORING_OP_FIXED_FD_INSTALL:=54): 'IORING_OP_FIXED_FD_INSTALL', (IORING_OP_FTRUNCATE:=55): 'IORING_OP_FTRUNCATE', (IORING_OP_BIND:=56): 'IORING_OP_BIND', (IORING_OP_LISTEN:=57): 'IORING_OP_LISTEN', (IORING_OP_RECV_ZC:=58): 'IORING_OP_RECV_ZC', (IORING_OP_EPOLL_WAIT:=59): 'IORING_OP_EPOLL_WAIT', (IORING_OP_READV_FIXED:=60): 'IORING_OP_READV_FIXED', (IORING_OP_WRITEV_FIXED:=61): 'IORING_OP_WRITEV_FIXED', (IORING_OP_PIPE:=62): 'IORING_OP_PIPE', (IORING_OP_LAST:=63): 'IORING_OP_LAST'}
enum_io_uring_msg_ring_flags: dict[int, str] = {(IORING_MSG_DATA:=0): 'IORING_MSG_DATA', (IORING_MSG_SEND_FD:=1): 'IORING_MSG_SEND_FD'}
@c.record
class struct_io_sqring_offsets(c.Struct):
SIZE = 40
head: Annotated[Annotated[int, ctypes.c_uint32], 0]
tail: Annotated[Annotated[int, ctypes.c_uint32], 4]
ring_mask: Annotated[Annotated[int, ctypes.c_uint32], 8]
ring_entries: Annotated[Annotated[int, ctypes.c_uint32], 12]
flags: Annotated[Annotated[int, ctypes.c_uint32], 16]
dropped: Annotated[Annotated[int, ctypes.c_uint32], 20]
array: Annotated[Annotated[int, ctypes.c_uint32], 24]
resv1: Annotated[Annotated[int, ctypes.c_uint32], 28]
user_addr: Annotated[Annotated[int, ctypes.c_uint64], 32]
head: int
tail: int
ring_mask: int
ring_entries: int
flags: int
dropped: int
array: int
resv1: int
user_addr: int
struct_io_sqring_offsets.register_fields([('head', ctypes.c_uint32, 0), ('tail', ctypes.c_uint32, 4), ('ring_mask', ctypes.c_uint32, 8), ('ring_entries', ctypes.c_uint32, 12), ('flags', ctypes.c_uint32, 16), ('dropped', ctypes.c_uint32, 20), ('array', ctypes.c_uint32, 24), ('resv1', ctypes.c_uint32, 28), ('user_addr', ctypes.c_uint64, 32)])
@c.record
class struct_io_cqring_offsets(c.Struct):
SIZE = 40
head: Annotated[Annotated[int, ctypes.c_uint32], 0]
tail: Annotated[Annotated[int, ctypes.c_uint32], 4]
ring_mask: Annotated[Annotated[int, ctypes.c_uint32], 8]
ring_entries: Annotated[Annotated[int, ctypes.c_uint32], 12]
overflow: Annotated[Annotated[int, ctypes.c_uint32], 16]
cqes: Annotated[Annotated[int, ctypes.c_uint32], 20]
flags: Annotated[Annotated[int, ctypes.c_uint32], 24]
resv1: Annotated[Annotated[int, ctypes.c_uint32], 28]
user_addr: Annotated[Annotated[int, ctypes.c_uint64], 32]
head: int
tail: int
ring_mask: int
ring_entries: int
overflow: int
cqes: int
flags: int
resv1: int
user_addr: int
struct_io_cqring_offsets.register_fields([('head', ctypes.c_uint32, 0), ('tail', ctypes.c_uint32, 4), ('ring_mask', ctypes.c_uint32, 8), ('ring_entries', ctypes.c_uint32, 12), ('overflow', ctypes.c_uint32, 16), ('cqes', ctypes.c_uint32, 20), ('flags', ctypes.c_uint32, 24), ('resv1', ctypes.c_uint32, 28), ('user_addr', ctypes.c_uint64, 32)])
@c.record
class struct_io_uring_params(c.Struct):
SIZE = 120
sq_entries: Annotated[Annotated[int, ctypes.c_uint32], 0]
cq_entries: Annotated[Annotated[int, ctypes.c_uint32], 4]
flags: Annotated[Annotated[int, ctypes.c_uint32], 8]
sq_thread_cpu: Annotated[Annotated[int, ctypes.c_uint32], 12]
sq_thread_idle: Annotated[Annotated[int, ctypes.c_uint32], 16]
features: Annotated[Annotated[int, ctypes.c_uint32], 20]
wq_fd: Annotated[Annotated[int, ctypes.c_uint32], 24]
resv: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 28]
sq_off: Annotated[struct_io_sqring_offsets, 40]
cq_off: Annotated[struct_io_cqring_offsets, 80]
class enum_io_uring_register_op(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_REGISTER_BUFFERS = enum_io_uring_register_op.define('IORING_REGISTER_BUFFERS', 0)
IORING_UNREGISTER_BUFFERS = enum_io_uring_register_op.define('IORING_UNREGISTER_BUFFERS', 1)
IORING_REGISTER_FILES = enum_io_uring_register_op.define('IORING_REGISTER_FILES', 2)
IORING_UNREGISTER_FILES = enum_io_uring_register_op.define('IORING_UNREGISTER_FILES', 3)
IORING_REGISTER_EVENTFD = enum_io_uring_register_op.define('IORING_REGISTER_EVENTFD', 4)
IORING_UNREGISTER_EVENTFD = enum_io_uring_register_op.define('IORING_UNREGISTER_EVENTFD', 5)
IORING_REGISTER_FILES_UPDATE = enum_io_uring_register_op.define('IORING_REGISTER_FILES_UPDATE', 6)
IORING_REGISTER_EVENTFD_ASYNC = enum_io_uring_register_op.define('IORING_REGISTER_EVENTFD_ASYNC', 7)
IORING_REGISTER_PROBE = enum_io_uring_register_op.define('IORING_REGISTER_PROBE', 8)
IORING_REGISTER_PERSONALITY = enum_io_uring_register_op.define('IORING_REGISTER_PERSONALITY', 9)
IORING_UNREGISTER_PERSONALITY = enum_io_uring_register_op.define('IORING_UNREGISTER_PERSONALITY', 10)
IORING_REGISTER_RESTRICTIONS = enum_io_uring_register_op.define('IORING_REGISTER_RESTRICTIONS', 11)
IORING_REGISTER_ENABLE_RINGS = enum_io_uring_register_op.define('IORING_REGISTER_ENABLE_RINGS', 12)
IORING_REGISTER_FILES2 = enum_io_uring_register_op.define('IORING_REGISTER_FILES2', 13)
IORING_REGISTER_FILES_UPDATE2 = enum_io_uring_register_op.define('IORING_REGISTER_FILES_UPDATE2', 14)
IORING_REGISTER_BUFFERS2 = enum_io_uring_register_op.define('IORING_REGISTER_BUFFERS2', 15)
IORING_REGISTER_BUFFERS_UPDATE = enum_io_uring_register_op.define('IORING_REGISTER_BUFFERS_UPDATE', 16)
IORING_REGISTER_IOWQ_AFF = enum_io_uring_register_op.define('IORING_REGISTER_IOWQ_AFF', 17)
IORING_UNREGISTER_IOWQ_AFF = enum_io_uring_register_op.define('IORING_UNREGISTER_IOWQ_AFF', 18)
IORING_REGISTER_IOWQ_MAX_WORKERS = enum_io_uring_register_op.define('IORING_REGISTER_IOWQ_MAX_WORKERS', 19)
IORING_REGISTER_RING_FDS = enum_io_uring_register_op.define('IORING_REGISTER_RING_FDS', 20)
IORING_UNREGISTER_RING_FDS = enum_io_uring_register_op.define('IORING_UNREGISTER_RING_FDS', 21)
IORING_REGISTER_PBUF_RING = enum_io_uring_register_op.define('IORING_REGISTER_PBUF_RING', 22)
IORING_UNREGISTER_PBUF_RING = enum_io_uring_register_op.define('IORING_UNREGISTER_PBUF_RING', 23)
IORING_REGISTER_SYNC_CANCEL = enum_io_uring_register_op.define('IORING_REGISTER_SYNC_CANCEL', 24)
IORING_REGISTER_FILE_ALLOC_RANGE = enum_io_uring_register_op.define('IORING_REGISTER_FILE_ALLOC_RANGE', 25)
IORING_REGISTER_PBUF_STATUS = enum_io_uring_register_op.define('IORING_REGISTER_PBUF_STATUS', 26)
IORING_REGISTER_NAPI = enum_io_uring_register_op.define('IORING_REGISTER_NAPI', 27)
IORING_UNREGISTER_NAPI = enum_io_uring_register_op.define('IORING_UNREGISTER_NAPI', 28)
IORING_REGISTER_CLOCK = enum_io_uring_register_op.define('IORING_REGISTER_CLOCK', 29)
IORING_REGISTER_CLONE_BUFFERS = enum_io_uring_register_op.define('IORING_REGISTER_CLONE_BUFFERS', 30)
IORING_REGISTER_SEND_MSG_RING = enum_io_uring_register_op.define('IORING_REGISTER_SEND_MSG_RING', 31)
IORING_REGISTER_ZCRX_IFQ = enum_io_uring_register_op.define('IORING_REGISTER_ZCRX_IFQ', 32)
IORING_REGISTER_RESIZE_RINGS = enum_io_uring_register_op.define('IORING_REGISTER_RESIZE_RINGS', 33)
IORING_REGISTER_MEM_REGION = enum_io_uring_register_op.define('IORING_REGISTER_MEM_REGION', 34)
IORING_REGISTER_QUERY = enum_io_uring_register_op.define('IORING_REGISTER_QUERY', 35)
IORING_REGISTER_LAST = enum_io_uring_register_op.define('IORING_REGISTER_LAST', 36)
IORING_REGISTER_USE_REGISTERED_RING = enum_io_uring_register_op.define('IORING_REGISTER_USE_REGISTERED_RING', 2147483648)
class enum_io_wq_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
IO_WQ_BOUND = enum_io_wq_type.define('IO_WQ_BOUND', 0)
IO_WQ_UNBOUND = enum_io_wq_type.define('IO_WQ_UNBOUND', 1)
sq_entries: int
cq_entries: int
flags: int
sq_thread_cpu: int
sq_thread_idle: int
features: int
wq_fd: int
resv: c.Array[ctypes.c_uint32, Literal[3]]
sq_off: struct_io_sqring_offsets
cq_off: struct_io_cqring_offsets
struct_io_uring_params.register_fields([('sq_entries', ctypes.c_uint32, 0), ('cq_entries', ctypes.c_uint32, 4), ('flags', ctypes.c_uint32, 8), ('sq_thread_cpu', ctypes.c_uint32, 12), ('sq_thread_idle', ctypes.c_uint32, 16), ('features', ctypes.c_uint32, 20), ('wq_fd', ctypes.c_uint32, 24), ('resv', c.Array[ctypes.c_uint32, Literal[3]], 28), ('sq_off', struct_io_sqring_offsets, 40), ('cq_off', struct_io_cqring_offsets, 80)])
enum_io_uring_register_op: dict[int, str] = {(IORING_REGISTER_BUFFERS:=0): 'IORING_REGISTER_BUFFERS', (IORING_UNREGISTER_BUFFERS:=1): 'IORING_UNREGISTER_BUFFERS', (IORING_REGISTER_FILES:=2): 'IORING_REGISTER_FILES', (IORING_UNREGISTER_FILES:=3): 'IORING_UNREGISTER_FILES', (IORING_REGISTER_EVENTFD:=4): 'IORING_REGISTER_EVENTFD', (IORING_UNREGISTER_EVENTFD:=5): 'IORING_UNREGISTER_EVENTFD', (IORING_REGISTER_FILES_UPDATE:=6): 'IORING_REGISTER_FILES_UPDATE', (IORING_REGISTER_EVENTFD_ASYNC:=7): 'IORING_REGISTER_EVENTFD_ASYNC', (IORING_REGISTER_PROBE:=8): 'IORING_REGISTER_PROBE', (IORING_REGISTER_PERSONALITY:=9): 'IORING_REGISTER_PERSONALITY', (IORING_UNREGISTER_PERSONALITY:=10): 'IORING_UNREGISTER_PERSONALITY', (IORING_REGISTER_RESTRICTIONS:=11): 'IORING_REGISTER_RESTRICTIONS', (IORING_REGISTER_ENABLE_RINGS:=12): 'IORING_REGISTER_ENABLE_RINGS', (IORING_REGISTER_FILES2:=13): 'IORING_REGISTER_FILES2', (IORING_REGISTER_FILES_UPDATE2:=14): 'IORING_REGISTER_FILES_UPDATE2', (IORING_REGISTER_BUFFERS2:=15): 'IORING_REGISTER_BUFFERS2', (IORING_REGISTER_BUFFERS_UPDATE:=16): 'IORING_REGISTER_BUFFERS_UPDATE', (IORING_REGISTER_IOWQ_AFF:=17): 'IORING_REGISTER_IOWQ_AFF', (IORING_UNREGISTER_IOWQ_AFF:=18): 'IORING_UNREGISTER_IOWQ_AFF', (IORING_REGISTER_IOWQ_MAX_WORKERS:=19): 'IORING_REGISTER_IOWQ_MAX_WORKERS', (IORING_REGISTER_RING_FDS:=20): 'IORING_REGISTER_RING_FDS', (IORING_UNREGISTER_RING_FDS:=21): 'IORING_UNREGISTER_RING_FDS', (IORING_REGISTER_PBUF_RING:=22): 'IORING_REGISTER_PBUF_RING', (IORING_UNREGISTER_PBUF_RING:=23): 'IORING_UNREGISTER_PBUF_RING', (IORING_REGISTER_SYNC_CANCEL:=24): 'IORING_REGISTER_SYNC_CANCEL', (IORING_REGISTER_FILE_ALLOC_RANGE:=25): 'IORING_REGISTER_FILE_ALLOC_RANGE', (IORING_REGISTER_PBUF_STATUS:=26): 'IORING_REGISTER_PBUF_STATUS', (IORING_REGISTER_NAPI:=27): 'IORING_REGISTER_NAPI', (IORING_UNREGISTER_NAPI:=28): 'IORING_UNREGISTER_NAPI', (IORING_REGISTER_CLOCK:=29): 'IORING_REGISTER_CLOCK', (IORING_REGISTER_CLONE_BUFFERS:=30): 'IORING_REGISTER_CLONE_BUFFERS', (IORING_REGISTER_SEND_MSG_RING:=31): 'IORING_REGISTER_SEND_MSG_RING', (IORING_REGISTER_ZCRX_IFQ:=32): 'IORING_REGISTER_ZCRX_IFQ', (IORING_REGISTER_RESIZE_RINGS:=33): 'IORING_REGISTER_RESIZE_RINGS', (IORING_REGISTER_MEM_REGION:=34): 'IORING_REGISTER_MEM_REGION', (IORING_REGISTER_QUERY:=35): 'IORING_REGISTER_QUERY', (IORING_REGISTER_LAST:=36): 'IORING_REGISTER_LAST', (IORING_REGISTER_USE_REGISTERED_RING:=2147483648): 'IORING_REGISTER_USE_REGISTERED_RING'}
enum_io_wq_type: dict[int, str] = {(IO_WQ_BOUND:=0): 'IO_WQ_BOUND', (IO_WQ_UNBOUND:=1): 'IO_WQ_UNBOUND'}
@c.record
class struct_io_uring_files_update(c.Struct):
SIZE = 16
offset: Annotated[Annotated[int, ctypes.c_uint32], 0]
resv: Annotated[Annotated[int, ctypes.c_uint32], 4]
fds: Annotated[Annotated[int, ctypes.c_uint64], 8]
class _anonenum0(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_MEM_REGION_TYPE_USER = _anonenum0.define('IORING_MEM_REGION_TYPE_USER', 1)
offset: int
resv: int
fds: int
struct_io_uring_files_update.register_fields([('offset', ctypes.c_uint32, 0), ('resv', ctypes.c_uint32, 4), ('fds', ctypes.c_uint64, 8)])
_anonenum0: dict[int, str] = {(IORING_MEM_REGION_TYPE_USER:=1): 'IORING_MEM_REGION_TYPE_USER'}
@c.record
class struct_io_uring_region_desc(c.Struct):
SIZE = 64
user_addr: Annotated[Annotated[int, ctypes.c_uint64], 0]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 16]
id: Annotated[Annotated[int, ctypes.c_uint32], 20]
mmap_offset: Annotated[Annotated[int, ctypes.c_uint64], 24]
__resv: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[4]], 32]
class _anonenum1(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_MEM_REGION_REG_WAIT_ARG = _anonenum1.define('IORING_MEM_REGION_REG_WAIT_ARG', 1)
user_addr: int
size: int
flags: int
id: int
mmap_offset: int
__resv: c.Array[ctypes.c_uint64, Literal[4]]
struct_io_uring_region_desc.register_fields([('user_addr', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('flags', ctypes.c_uint32, 16), ('id', ctypes.c_uint32, 20), ('mmap_offset', ctypes.c_uint64, 24), ('__resv', c.Array[ctypes.c_uint64, Literal[4]], 32)])
_anonenum1: dict[int, str] = {(IORING_MEM_REGION_REG_WAIT_ARG:=1): 'IORING_MEM_REGION_REG_WAIT_ARG'}
@c.record
class struct_io_uring_mem_region_reg(c.Struct):
SIZE = 32
region_uptr: Annotated[Annotated[int, ctypes.c_uint64], 0]
flags: Annotated[Annotated[int, ctypes.c_uint64], 8]
__resv: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[2]], 16]
region_uptr: int
flags: int
__resv: c.Array[ctypes.c_uint64, Literal[2]]
struct_io_uring_mem_region_reg.register_fields([('region_uptr', ctypes.c_uint64, 0), ('flags', ctypes.c_uint64, 8), ('__resv', c.Array[ctypes.c_uint64, Literal[2]], 16)])
@c.record
class struct_io_uring_rsrc_register(c.Struct):
SIZE = 32
nr: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
resv2: Annotated[Annotated[int, ctypes.c_uint64], 8]
data: Annotated[Annotated[int, ctypes.c_uint64], 16]
tags: Annotated[Annotated[int, ctypes.c_uint64], 24]
nr: int
flags: int
resv2: int
data: int
tags: int
struct_io_uring_rsrc_register.register_fields([('nr', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('resv2', ctypes.c_uint64, 8), ('data', ctypes.c_uint64, 16), ('tags', ctypes.c_uint64, 24)])
@c.record
class struct_io_uring_rsrc_update(c.Struct):
SIZE = 16
offset: Annotated[Annotated[int, ctypes.c_uint32], 0]
resv: Annotated[Annotated[int, ctypes.c_uint32], 4]
data: Annotated[Annotated[int, ctypes.c_uint64], 8]
offset: int
resv: int
data: int
struct_io_uring_rsrc_update.register_fields([('offset', ctypes.c_uint32, 0), ('resv', ctypes.c_uint32, 4), ('data', ctypes.c_uint64, 8)])
@c.record
class struct_io_uring_rsrc_update2(c.Struct):
SIZE = 32
offset: Annotated[Annotated[int, ctypes.c_uint32], 0]
resv: Annotated[Annotated[int, ctypes.c_uint32], 4]
data: Annotated[Annotated[int, ctypes.c_uint64], 8]
tags: Annotated[Annotated[int, ctypes.c_uint64], 16]
nr: Annotated[Annotated[int, ctypes.c_uint32], 24]
resv2: Annotated[Annotated[int, ctypes.c_uint32], 28]
offset: int
resv: int
data: int
tags: int
nr: int
resv2: int
struct_io_uring_rsrc_update2.register_fields([('offset', ctypes.c_uint32, 0), ('resv', ctypes.c_uint32, 4), ('data', ctypes.c_uint64, 8), ('tags', ctypes.c_uint64, 16), ('nr', ctypes.c_uint32, 24), ('resv2', ctypes.c_uint32, 28)])
@c.record
class struct_io_uring_probe_op(c.Struct):
SIZE = 8
op: Annotated[Annotated[int, ctypes.c_ubyte], 0]
resv: Annotated[Annotated[int, ctypes.c_ubyte], 1]
flags: Annotated[Annotated[int, ctypes.c_uint16], 2]
resv2: Annotated[Annotated[int, ctypes.c_uint32], 4]
op: int
resv: int
flags: int
resv2: int
struct_io_uring_probe_op.register_fields([('op', ctypes.c_ubyte, 0), ('resv', ctypes.c_ubyte, 1), ('flags', ctypes.c_uint16, 2), ('resv2', ctypes.c_uint32, 4)])
@c.record
class struct_io_uring_probe(c.Struct):
SIZE = 16
last_op: Annotated[Annotated[int, ctypes.c_ubyte], 0]
ops_len: Annotated[Annotated[int, ctypes.c_ubyte], 1]
resv: Annotated[Annotated[int, ctypes.c_uint16], 2]
resv2: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 4]
ops: Annotated[c.Array[struct_io_uring_probe_op, Literal[0]], 16]
last_op: int
ops_len: int
resv: int
resv2: c.Array[ctypes.c_uint32, Literal[3]]
ops: c.Array[struct_io_uring_probe_op, Literal[0]]
struct_io_uring_probe.register_fields([('last_op', ctypes.c_ubyte, 0), ('ops_len', ctypes.c_ubyte, 1), ('resv', ctypes.c_uint16, 2), ('resv2', c.Array[ctypes.c_uint32, Literal[3]], 4), ('ops', c.Array[struct_io_uring_probe_op, Literal[0]], 16)])
@c.record
class struct_io_uring_restriction(c.Struct):
SIZE = 16
opcode: Annotated[Annotated[int, ctypes.c_uint16], 0]
register_op: Annotated[Annotated[int, ctypes.c_ubyte], 2]
sqe_op: Annotated[Annotated[int, ctypes.c_ubyte], 2]
sqe_flags: Annotated[Annotated[int, ctypes.c_ubyte], 2]
resv: Annotated[Annotated[int, ctypes.c_ubyte], 3]
resv2: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 4]
opcode: int
register_op: int
sqe_op: int
sqe_flags: int
resv: int
resv2: c.Array[ctypes.c_uint32, Literal[3]]
struct_io_uring_restriction.register_fields([('opcode', ctypes.c_uint16, 0), ('register_op', ctypes.c_ubyte, 2), ('sqe_op', ctypes.c_ubyte, 2), ('sqe_flags', ctypes.c_ubyte, 2), ('resv', ctypes.c_ubyte, 3), ('resv2', c.Array[ctypes.c_uint32, Literal[3]], 4)])
@c.record
class struct_io_uring_clock_register(c.Struct):
SIZE = 16
clockid: Annotated[Annotated[int, ctypes.c_uint32], 0]
__resv: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 4]
class _anonenum2(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_REGISTER_SRC_REGISTERED = _anonenum2.define('IORING_REGISTER_SRC_REGISTERED', 1)
IORING_REGISTER_DST_REPLACE = _anonenum2.define('IORING_REGISTER_DST_REPLACE', 2)
clockid: int
__resv: c.Array[ctypes.c_uint32, Literal[3]]
struct_io_uring_clock_register.register_fields([('clockid', ctypes.c_uint32, 0), ('__resv', c.Array[ctypes.c_uint32, Literal[3]], 4)])
_anonenum2: dict[int, str] = {(IORING_REGISTER_SRC_REGISTERED:=1): 'IORING_REGISTER_SRC_REGISTERED', (IORING_REGISTER_DST_REPLACE:=2): 'IORING_REGISTER_DST_REPLACE'}
@c.record
class struct_io_uring_clone_buffers(c.Struct):
SIZE = 32
src_fd: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
src_off: Annotated[Annotated[int, ctypes.c_uint32], 8]
dst_off: Annotated[Annotated[int, ctypes.c_uint32], 12]
nr: Annotated[Annotated[int, ctypes.c_uint32], 16]
pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 20]
src_fd: int
flags: int
src_off: int
dst_off: int
nr: int
pad: c.Array[ctypes.c_uint32, Literal[3]]
struct_io_uring_clone_buffers.register_fields([('src_fd', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('src_off', ctypes.c_uint32, 8), ('dst_off', ctypes.c_uint32, 12), ('nr', ctypes.c_uint32, 16), ('pad', c.Array[ctypes.c_uint32, Literal[3]], 20)])
@c.record
class struct_io_uring_buf(c.Struct):
SIZE = 16
addr: Annotated[Annotated[int, ctypes.c_uint64], 0]
len: Annotated[Annotated[int, ctypes.c_uint32], 8]
bid: Annotated[Annotated[int, ctypes.c_uint16], 12]
resv: Annotated[Annotated[int, ctypes.c_uint16], 14]
addr: int
len: int
bid: int
resv: int
struct_io_uring_buf.register_fields([('addr', ctypes.c_uint64, 0), ('len', ctypes.c_uint32, 8), ('bid', ctypes.c_uint16, 12), ('resv', ctypes.c_uint16, 14)])
@c.record
class struct_io_uring_buf_ring(c.Struct):
SIZE = 16
resv1: Annotated[Annotated[int, ctypes.c_uint64], 0]
resv2: Annotated[Annotated[int, ctypes.c_uint32], 8]
resv3: Annotated[Annotated[int, ctypes.c_uint16], 12]
tail: Annotated[Annotated[int, ctypes.c_uint16], 14]
__empty_bufs: Annotated[struct_io_uring_buf_ring___empty_bufs, 0]
bufs: Annotated[c.Array[struct_io_uring_buf, Literal[0]], 0]
class struct_io_uring_buf_ring___empty_bufs(c.Struct): SIZE = 0
class enum_io_uring_register_pbuf_ring_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
IOU_PBUF_RING_MMAP = enum_io_uring_register_pbuf_ring_flags.define('IOU_PBUF_RING_MMAP', 1)
IOU_PBUF_RING_INC = enum_io_uring_register_pbuf_ring_flags.define('IOU_PBUF_RING_INC', 2)
resv1: int
resv2: int
resv3: int
tail: int
__empty_bufs: struct_io_uring_buf_ring___empty_bufs
bufs: c.Array[struct_io_uring_buf, Literal[0]]
class struct_io_uring_buf_ring___empty_bufs(c.Struct): pass
struct_io_uring_buf_ring.register_fields([('resv1', ctypes.c_uint64, 0), ('resv2', ctypes.c_uint32, 8), ('resv3', ctypes.c_uint16, 12), ('tail', ctypes.c_uint16, 14), ('__empty_bufs', struct_io_uring_buf_ring___empty_bufs, 0), ('bufs', c.Array[struct_io_uring_buf, Literal[0]], 0)])
enum_io_uring_register_pbuf_ring_flags: dict[int, str] = {(IOU_PBUF_RING_MMAP:=1): 'IOU_PBUF_RING_MMAP', (IOU_PBUF_RING_INC:=2): 'IOU_PBUF_RING_INC'}
@c.record
class struct_io_uring_buf_reg(c.Struct):
SIZE = 40
ring_addr: Annotated[Annotated[int, ctypes.c_uint64], 0]
ring_entries: Annotated[Annotated[int, ctypes.c_uint32], 8]
bgid: Annotated[Annotated[int, ctypes.c_uint16], 12]
flags: Annotated[Annotated[int, ctypes.c_uint16], 14]
resv: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[3]], 16]
ring_addr: int
ring_entries: int
bgid: int
flags: int
resv: c.Array[ctypes.c_uint64, Literal[3]]
struct_io_uring_buf_reg.register_fields([('ring_addr', ctypes.c_uint64, 0), ('ring_entries', ctypes.c_uint32, 8), ('bgid', ctypes.c_uint16, 12), ('flags', ctypes.c_uint16, 14), ('resv', c.Array[ctypes.c_uint64, Literal[3]], 16)])
@c.record
class struct_io_uring_buf_status(c.Struct):
SIZE = 40
buf_group: Annotated[Annotated[int, ctypes.c_uint32], 0]
head: Annotated[Annotated[int, ctypes.c_uint32], 4]
resv: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[8]], 8]
class enum_io_uring_napi_op(Annotated[int, ctypes.c_uint32], c.Enum): pass
IO_URING_NAPI_REGISTER_OP = enum_io_uring_napi_op.define('IO_URING_NAPI_REGISTER_OP', 0)
IO_URING_NAPI_STATIC_ADD_ID = enum_io_uring_napi_op.define('IO_URING_NAPI_STATIC_ADD_ID', 1)
IO_URING_NAPI_STATIC_DEL_ID = enum_io_uring_napi_op.define('IO_URING_NAPI_STATIC_DEL_ID', 2)
class enum_io_uring_napi_tracking_strategy(Annotated[int, ctypes.c_uint32], c.Enum): pass
IO_URING_NAPI_TRACKING_DYNAMIC = enum_io_uring_napi_tracking_strategy.define('IO_URING_NAPI_TRACKING_DYNAMIC', 0)
IO_URING_NAPI_TRACKING_STATIC = enum_io_uring_napi_tracking_strategy.define('IO_URING_NAPI_TRACKING_STATIC', 1)
IO_URING_NAPI_TRACKING_INACTIVE = enum_io_uring_napi_tracking_strategy.define('IO_URING_NAPI_TRACKING_INACTIVE', 255)
buf_group: int
head: int
resv: c.Array[ctypes.c_uint32, Literal[8]]
struct_io_uring_buf_status.register_fields([('buf_group', ctypes.c_uint32, 0), ('head', ctypes.c_uint32, 4), ('resv', c.Array[ctypes.c_uint32, Literal[8]], 8)])
enum_io_uring_napi_op: dict[int, str] = {(IO_URING_NAPI_REGISTER_OP:=0): 'IO_URING_NAPI_REGISTER_OP', (IO_URING_NAPI_STATIC_ADD_ID:=1): 'IO_URING_NAPI_STATIC_ADD_ID', (IO_URING_NAPI_STATIC_DEL_ID:=2): 'IO_URING_NAPI_STATIC_DEL_ID'}
enum_io_uring_napi_tracking_strategy: dict[int, str] = {(IO_URING_NAPI_TRACKING_DYNAMIC:=0): 'IO_URING_NAPI_TRACKING_DYNAMIC', (IO_URING_NAPI_TRACKING_STATIC:=1): 'IO_URING_NAPI_TRACKING_STATIC', (IO_URING_NAPI_TRACKING_INACTIVE:=255): 'IO_URING_NAPI_TRACKING_INACTIVE'}
@c.record
class struct_io_uring_napi(c.Struct):
SIZE = 16
busy_poll_to: Annotated[Annotated[int, ctypes.c_uint32], 0]
prefer_busy_poll: Annotated[Annotated[int, ctypes.c_ubyte], 4]
opcode: Annotated[Annotated[int, ctypes.c_ubyte], 5]
pad: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[2]], 6]
op_param: Annotated[Annotated[int, ctypes.c_uint32], 8]
resv: Annotated[Annotated[int, ctypes.c_uint32], 12]
class enum_io_uring_register_restriction_op(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_RESTRICTION_REGISTER_OP = enum_io_uring_register_restriction_op.define('IORING_RESTRICTION_REGISTER_OP', 0)
IORING_RESTRICTION_SQE_OP = enum_io_uring_register_restriction_op.define('IORING_RESTRICTION_SQE_OP', 1)
IORING_RESTRICTION_SQE_FLAGS_ALLOWED = enum_io_uring_register_restriction_op.define('IORING_RESTRICTION_SQE_FLAGS_ALLOWED', 2)
IORING_RESTRICTION_SQE_FLAGS_REQUIRED = enum_io_uring_register_restriction_op.define('IORING_RESTRICTION_SQE_FLAGS_REQUIRED', 3)
IORING_RESTRICTION_LAST = enum_io_uring_register_restriction_op.define('IORING_RESTRICTION_LAST', 4)
class _anonenum3(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_REG_WAIT_TS = _anonenum3.define('IORING_REG_WAIT_TS', 1)
busy_poll_to: int
prefer_busy_poll: int
opcode: int
pad: c.Array[ctypes.c_ubyte, Literal[2]]
op_param: int
resv: int
struct_io_uring_napi.register_fields([('busy_poll_to', ctypes.c_uint32, 0), ('prefer_busy_poll', ctypes.c_ubyte, 4), ('opcode', ctypes.c_ubyte, 5), ('pad', c.Array[ctypes.c_ubyte, Literal[2]], 6), ('op_param', ctypes.c_uint32, 8), ('resv', ctypes.c_uint32, 12)])
enum_io_uring_register_restriction_op: dict[int, str] = {(IORING_RESTRICTION_REGISTER_OP:=0): 'IORING_RESTRICTION_REGISTER_OP', (IORING_RESTRICTION_SQE_OP:=1): 'IORING_RESTRICTION_SQE_OP', (IORING_RESTRICTION_SQE_FLAGS_ALLOWED:=2): 'IORING_RESTRICTION_SQE_FLAGS_ALLOWED', (IORING_RESTRICTION_SQE_FLAGS_REQUIRED:=3): 'IORING_RESTRICTION_SQE_FLAGS_REQUIRED', (IORING_RESTRICTION_LAST:=4): 'IORING_RESTRICTION_LAST'}
_anonenum3: dict[int, str] = {(IORING_REG_WAIT_TS:=1): 'IORING_REG_WAIT_TS'}
@c.record
class struct_io_uring_reg_wait(c.Struct):
SIZE = 64
ts: Annotated[struct___kernel_timespec, 0]
min_wait_usec: Annotated[Annotated[int, ctypes.c_uint32], 16]
flags: Annotated[Annotated[int, ctypes.c_uint32], 20]
sigmask: Annotated[Annotated[int, ctypes.c_uint64], 24]
sigmask_sz: Annotated[Annotated[int, ctypes.c_uint32], 32]
pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 36]
pad2: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[2]], 48]
ts: struct___kernel_timespec
min_wait_usec: int
flags: int
sigmask: int
sigmask_sz: int
pad: c.Array[ctypes.c_uint32, Literal[3]]
pad2: c.Array[ctypes.c_uint64, Literal[2]]
@c.record
class struct___kernel_timespec(c.Struct):
SIZE = 16
tv_sec: Annotated[Annotated[int, ctypes.c_int64], 0]
tv_nsec: Annotated[Annotated[int, ctypes.c_int64], 8]
__kernel_time64_t: TypeAlias = Annotated[int, ctypes.c_int64]
tv_sec: int
tv_nsec: int
__kernel_time64_t: TypeAlias = ctypes.c_int64
struct___kernel_timespec.register_fields([('tv_sec', ctypes.c_int64, 0), ('tv_nsec', ctypes.c_int64, 8)])
struct_io_uring_reg_wait.register_fields([('ts', struct___kernel_timespec, 0), ('min_wait_usec', ctypes.c_uint32, 16), ('flags', ctypes.c_uint32, 20), ('sigmask', ctypes.c_uint64, 24), ('sigmask_sz', ctypes.c_uint32, 32), ('pad', c.Array[ctypes.c_uint32, Literal[3]], 36), ('pad2', c.Array[ctypes.c_uint64, Literal[2]], 48)])
@c.record
class struct_io_uring_getevents_arg(c.Struct):
SIZE = 24
sigmask: Annotated[Annotated[int, ctypes.c_uint64], 0]
sigmask_sz: Annotated[Annotated[int, ctypes.c_uint32], 8]
min_wait_usec: Annotated[Annotated[int, ctypes.c_uint32], 12]
ts: Annotated[Annotated[int, ctypes.c_uint64], 16]
sigmask: int
sigmask_sz: int
min_wait_usec: int
ts: int
struct_io_uring_getevents_arg.register_fields([('sigmask', ctypes.c_uint64, 0), ('sigmask_sz', ctypes.c_uint32, 8), ('min_wait_usec', ctypes.c_uint32, 12), ('ts', ctypes.c_uint64, 16)])
@c.record
class struct_io_uring_sync_cancel_reg(c.Struct):
SIZE = 64
addr: Annotated[Annotated[int, ctypes.c_uint64], 0]
fd: Annotated[Annotated[int, ctypes.c_int32], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 12]
timeout: Annotated[struct___kernel_timespec, 16]
opcode: Annotated[Annotated[int, ctypes.c_ubyte], 32]
pad: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[7]], 33]
pad2: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[3]], 40]
addr: int
fd: int
flags: int
timeout: struct___kernel_timespec
opcode: int
pad: c.Array[ctypes.c_ubyte, Literal[7]]
pad2: c.Array[ctypes.c_uint64, Literal[3]]
struct_io_uring_sync_cancel_reg.register_fields([('addr', ctypes.c_uint64, 0), ('fd', ctypes.c_int32, 8), ('flags', ctypes.c_uint32, 12), ('timeout', struct___kernel_timespec, 16), ('opcode', ctypes.c_ubyte, 32), ('pad', c.Array[ctypes.c_ubyte, Literal[7]], 33), ('pad2', c.Array[ctypes.c_uint64, Literal[3]], 40)])
@c.record
class struct_io_uring_file_index_range(c.Struct):
SIZE = 16
off: Annotated[Annotated[int, ctypes.c_uint32], 0]
len: Annotated[Annotated[int, ctypes.c_uint32], 4]
resv: Annotated[Annotated[int, ctypes.c_uint64], 8]
off: int
len: int
resv: int
struct_io_uring_file_index_range.register_fields([('off', ctypes.c_uint32, 0), ('len', ctypes.c_uint32, 4), ('resv', ctypes.c_uint64, 8)])
@c.record
class struct_io_uring_recvmsg_out(c.Struct):
SIZE = 16
namelen: Annotated[Annotated[int, ctypes.c_uint32], 0]
controllen: Annotated[Annotated[int, ctypes.c_uint32], 4]
payloadlen: Annotated[Annotated[int, ctypes.c_uint32], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 12]
class enum_io_uring_socket_op(Annotated[int, ctypes.c_uint32], c.Enum): pass
SOCKET_URING_OP_SIOCINQ = enum_io_uring_socket_op.define('SOCKET_URING_OP_SIOCINQ', 0)
SOCKET_URING_OP_SIOCOUTQ = enum_io_uring_socket_op.define('SOCKET_URING_OP_SIOCOUTQ', 1)
SOCKET_URING_OP_GETSOCKOPT = enum_io_uring_socket_op.define('SOCKET_URING_OP_GETSOCKOPT', 2)
SOCKET_URING_OP_SETSOCKOPT = enum_io_uring_socket_op.define('SOCKET_URING_OP_SETSOCKOPT', 3)
SOCKET_URING_OP_TX_TIMESTAMP = enum_io_uring_socket_op.define('SOCKET_URING_OP_TX_TIMESTAMP', 4)
namelen: int
controllen: int
payloadlen: int
flags: int
struct_io_uring_recvmsg_out.register_fields([('namelen', ctypes.c_uint32, 0), ('controllen', ctypes.c_uint32, 4), ('payloadlen', ctypes.c_uint32, 8), ('flags', ctypes.c_uint32, 12)])
enum_io_uring_socket_op: dict[int, str] = {(SOCKET_URING_OP_SIOCINQ:=0): 'SOCKET_URING_OP_SIOCINQ', (SOCKET_URING_OP_SIOCOUTQ:=1): 'SOCKET_URING_OP_SIOCOUTQ', (SOCKET_URING_OP_GETSOCKOPT:=2): 'SOCKET_URING_OP_GETSOCKOPT', (SOCKET_URING_OP_SETSOCKOPT:=3): 'SOCKET_URING_OP_SETSOCKOPT', (SOCKET_URING_OP_TX_TIMESTAMP:=4): 'SOCKET_URING_OP_TX_TIMESTAMP'}
@c.record
class struct_io_timespec(c.Struct):
SIZE = 16
tv_sec: Annotated[Annotated[int, ctypes.c_uint64], 0]
tv_nsec: Annotated[Annotated[int, ctypes.c_uint64], 8]
tv_sec: int
tv_nsec: int
struct_io_timespec.register_fields([('tv_sec', ctypes.c_uint64, 0), ('tv_nsec', ctypes.c_uint64, 8)])
struct_io_uring_zcrx_rqe.register_fields([('off', ctypes.c_uint64, 0), ('len', ctypes.c_uint32, 8), ('__pad', ctypes.c_uint32, 12)])
@c.record
class struct_io_uring_zcrx_cqe(c.Struct):
SIZE = 16
off: Annotated[Annotated[int, ctypes.c_uint64], 0]
__pad: Annotated[Annotated[int, ctypes.c_uint64], 8]
off: int
__pad: int
struct_io_uring_zcrx_cqe.register_fields([('off', ctypes.c_uint64, 0), ('__pad', ctypes.c_uint64, 8)])
@c.record
class struct_io_uring_zcrx_offsets(c.Struct):
SIZE = 32
head: Annotated[Annotated[int, ctypes.c_uint32], 0]
tail: Annotated[Annotated[int, ctypes.c_uint32], 4]
rqes: Annotated[Annotated[int, ctypes.c_uint32], 8]
__resv2: Annotated[Annotated[int, ctypes.c_uint32], 12]
__resv: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[2]], 16]
class enum_io_uring_zcrx_area_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
IORING_ZCRX_AREA_DMABUF = enum_io_uring_zcrx_area_flags.define('IORING_ZCRX_AREA_DMABUF', 1)
head: int
tail: int
rqes: int
__resv2: int
__resv: c.Array[ctypes.c_uint64, Literal[2]]
struct_io_uring_zcrx_offsets.register_fields([('head', ctypes.c_uint32, 0), ('tail', ctypes.c_uint32, 4), ('rqes', ctypes.c_uint32, 8), ('__resv2', ctypes.c_uint32, 12), ('__resv', c.Array[ctypes.c_uint64, Literal[2]], 16)])
enum_io_uring_zcrx_area_flags: dict[int, str] = {(IORING_ZCRX_AREA_DMABUF:=1): 'IORING_ZCRX_AREA_DMABUF'}
@c.record
class struct_io_uring_zcrx_area_reg(c.Struct):
SIZE = 48
addr: Annotated[Annotated[int, ctypes.c_uint64], 0]
len: Annotated[Annotated[int, ctypes.c_uint64], 8]
rq_area_token: Annotated[Annotated[int, ctypes.c_uint64], 16]
flags: Annotated[Annotated[int, ctypes.c_uint32], 24]
dmabuf_fd: Annotated[Annotated[int, ctypes.c_uint32], 28]
__resv2: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[2]], 32]
addr: int
len: int
rq_area_token: int
flags: int
dmabuf_fd: int
__resv2: c.Array[ctypes.c_uint64, Literal[2]]
struct_io_uring_zcrx_area_reg.register_fields([('addr', ctypes.c_uint64, 0), ('len', ctypes.c_uint64, 8), ('rq_area_token', ctypes.c_uint64, 16), ('flags', ctypes.c_uint32, 24), ('dmabuf_fd', ctypes.c_uint32, 28), ('__resv2', c.Array[ctypes.c_uint64, Literal[2]], 32)])
@c.record
class struct_io_uring_zcrx_ifq_reg(c.Struct):
SIZE = 96
if_idx: Annotated[Annotated[int, ctypes.c_uint32], 0]
if_rxq: Annotated[Annotated[int, ctypes.c_uint32], 4]
rq_entries: Annotated[Annotated[int, ctypes.c_uint32], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 12]
area_ptr: Annotated[Annotated[int, ctypes.c_uint64], 16]
region_ptr: Annotated[Annotated[int, ctypes.c_uint64], 24]
offsets: Annotated[struct_io_uring_zcrx_offsets, 32]
zcrx_id: Annotated[Annotated[int, ctypes.c_uint32], 64]
__resv2: Annotated[Annotated[int, ctypes.c_uint32], 68]
__resv: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[3]], 72]
c.init_records()
if_idx: int
if_rxq: int
rq_entries: int
flags: int
area_ptr: int
region_ptr: int
offsets: struct_io_uring_zcrx_offsets
zcrx_id: int
__resv2: int
__resv: c.Array[ctypes.c_uint64, Literal[3]]
struct_io_uring_zcrx_ifq_reg.register_fields([('if_idx', ctypes.c_uint32, 0), ('if_rxq', ctypes.c_uint32, 4), ('rq_entries', ctypes.c_uint32, 8), ('flags', ctypes.c_uint32, 12), ('area_ptr', ctypes.c_uint64, 16), ('region_ptr', ctypes.c_uint64, 24), ('offsets', struct_io_uring_zcrx_offsets, 32), ('zcrx_id', ctypes.c_uint32, 64), ('__resv2', ctypes.c_uint32, 68), ('__resv', c.Array[ctypes.c_uint64, Literal[3]], 72)])
uring_unlikely = lambda cond: __builtin_expect( not not (cond), 0) # type: ignore
uring_likely = lambda cond: __builtin_expect( not not (cond), 1) # type: ignore
NR_io_uring_setup = 425 # type: ignore

View file

@ -1,279 +1,275 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
dll = c.DLL('iokit', 'IOKit')
class struct_IONotificationPort(c.Struct): SIZE = 0
class struct_IONotificationPort(c.Struct): pass
IONotificationPortRef: TypeAlias = c.POINTER[struct_IONotificationPort]
IOServiceMatchingCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, Annotated[int, ctypes.c_uint32]]]
IOServiceInterestCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, Annotated[int, ctypes.c_uint32], Annotated[int, ctypes.c_uint32], ctypes.c_void_p]]
mach_port_t: TypeAlias = Annotated[int, ctypes.c_uint32]
IOServiceMatchingCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_uint32]]
IOServiceInterestCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_void_p]]
mach_port_t: TypeAlias = ctypes.c_uint32
try: kIOMainPortDefault = mach_port_t.in_dll(dll, 'kIOMainPortDefault') # type: ignore
except (ValueError,AttributeError): pass
kern_return_t: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
kern_return_t: TypeAlias = ctypes.c_int32
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_port_t])
def IOMainPort(bootstrapPort:mach_port_t, mainPort:c.POINTER[mach_port_t]) -> kern_return_t: ...
try: kIOMasterPortDefault = mach_port_t.in_dll(dll, 'kIOMasterPortDefault') # type: ignore
except (ValueError,AttributeError): pass
@dll.bind
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_port_t])
def IOMasterPort(bootstrapPort:mach_port_t, mainPort:c.POINTER[mach_port_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(IONotificationPortRef, mach_port_t)
def IONotificationPortCreate(mainPort:mach_port_t) -> IONotificationPortRef: ...
@dll.bind
@dll.bind(None, IONotificationPortRef)
def IONotificationPortDestroy(notify:IONotificationPortRef) -> None: ...
class struct___CFRunLoopSource(c.Struct): SIZE = 0
class struct___CFRunLoopSource(c.Struct): pass
CFRunLoopSourceRef: TypeAlias = c.POINTER[struct___CFRunLoopSource]
@dll.bind
@dll.bind(CFRunLoopSourceRef, IONotificationPortRef)
def IONotificationPortGetRunLoopSource(notify:IONotificationPortRef) -> CFRunLoopSourceRef: ...
@dll.bind
@dll.bind(mach_port_t, IONotificationPortRef)
def IONotificationPortGetMachPort(notify:IONotificationPortRef) -> mach_port_t: ...
@dll.bind
@dll.bind(kern_return_t, IONotificationPortRef)
def IONotificationPortSetImportanceReceiver(notify:IONotificationPortRef) -> kern_return_t: ...
class struct_dispatch_queue_s(c.Struct): SIZE = 0
class struct_dispatch_queue_s(c.Struct): pass
dispatch_queue_t: TypeAlias = c.POINTER[struct_dispatch_queue_s]
@dll.bind
@dll.bind(None, IONotificationPortRef, dispatch_queue_t)
def IONotificationPortSetDispatchQueue(notify:IONotificationPortRef, queue:dispatch_queue_t) -> None: ...
@c.record
class mach_msg_header_t(c.Struct):
SIZE = 24
msgh_bits: Annotated[mach_msg_bits_t, 0]
msgh_size: Annotated[mach_msg_size_t, 4]
msgh_remote_port: Annotated[mach_port_t, 8]
msgh_local_port: Annotated[mach_port_t, 12]
msgh_voucher_port: Annotated[mach_port_name_t, 16]
msgh_id: Annotated[mach_msg_id_t, 20]
mach_msg_bits_t: TypeAlias = Annotated[int, ctypes.c_uint32]
mach_msg_size_t: TypeAlias = Annotated[int, ctypes.c_uint32]
mach_port_name_t: TypeAlias = Annotated[int, ctypes.c_uint32]
mach_msg_id_t: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
msgh_bits: int
msgh_size: int
msgh_remote_port: int
msgh_local_port: int
msgh_voucher_port: int
msgh_id: int
mach_msg_bits_t: TypeAlias = ctypes.c_uint32
mach_msg_size_t: TypeAlias = ctypes.c_uint32
mach_port_name_t: TypeAlias = ctypes.c_uint32
mach_msg_id_t: TypeAlias = ctypes.c_int32
mach_msg_header_t.register_fields([('msgh_bits', mach_msg_bits_t, 0), ('msgh_size', mach_msg_size_t, 4), ('msgh_remote_port', mach_port_t, 8), ('msgh_local_port', mach_port_t, 12), ('msgh_voucher_port', mach_port_name_t, 16), ('msgh_id', mach_msg_id_t, 20)])
@dll.bind(None, ctypes.c_void_p, c.POINTER[mach_msg_header_t], ctypes.c_void_p)
def IODispatchCalloutFromMessage(unused:ctypes.c_void_p, msg:c.POINTER[mach_msg_header_t], reference:ctypes.c_void_p) -> None: ...
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
uint32_t: TypeAlias = ctypes.c_uint32
@dll.bind(kern_return_t, uint32_t, c.POINTER[mach_port_t])
def IOCreateReceivePort(msgType:uint32_t, recvPort:c.POINTER[mach_port_t]) -> kern_return_t: ...
io_object_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
io_object_t: TypeAlias = ctypes.c_uint32
@dll.bind(kern_return_t, io_object_t)
def IOObjectRelease(object:io_object_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_object_t)
def IOObjectRetain(object:io_object_t) -> kern_return_t: ...
io_name_t: TypeAlias = c.Array[Annotated[bytes, ctypes.c_char], Literal[128]]
@dll.bind
io_name_t: TypeAlias = c.Array[ctypes.c_char, Literal[128]]
@dll.bind(kern_return_t, io_object_t, io_name_t)
def IOObjectGetClass(object:io_object_t, className:io_name_t) -> kern_return_t: ...
class struct___CFString(c.Struct): SIZE = 0
class struct___CFString(c.Struct): pass
CFStringRef: TypeAlias = c.POINTER[struct___CFString]
@dll.bind
@dll.bind(CFStringRef, io_object_t)
def IOObjectCopyClass(object:io_object_t) -> CFStringRef: ...
@dll.bind
@dll.bind(CFStringRef, CFStringRef)
def IOObjectCopySuperclassForClass(classname:CFStringRef) -> CFStringRef: ...
@dll.bind
@dll.bind(CFStringRef, CFStringRef)
def IOObjectCopyBundleIdentifierForClass(classname:CFStringRef) -> CFStringRef: ...
boolean_t: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
boolean_t: TypeAlias = ctypes.c_int32
@dll.bind(boolean_t, io_object_t, io_name_t)
def IOObjectConformsTo(object:io_object_t, className:io_name_t) -> boolean_t: ...
@dll.bind
@dll.bind(boolean_t, io_object_t, io_object_t)
def IOObjectIsEqualTo(object:io_object_t, anObject:io_object_t) -> boolean_t: ...
@dll.bind
@dll.bind(uint32_t, io_object_t)
def IOObjectGetKernelRetainCount(object:io_object_t) -> uint32_t: ...
@dll.bind
@dll.bind(uint32_t, io_object_t)
def IOObjectGetUserRetainCount(object:io_object_t) -> uint32_t: ...
@dll.bind
@dll.bind(uint32_t, io_object_t)
def IOObjectGetRetainCount(object:io_object_t) -> uint32_t: ...
io_iterator_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
io_iterator_t: TypeAlias = ctypes.c_uint32
@dll.bind(io_object_t, io_iterator_t)
def IOIteratorNext(iterator:io_iterator_t) -> io_object_t: ...
@dll.bind
@dll.bind(None, io_iterator_t)
def IOIteratorReset(iterator:io_iterator_t) -> None: ...
@dll.bind
@dll.bind(boolean_t, io_iterator_t)
def IOIteratorIsValid(iterator:io_iterator_t) -> boolean_t: ...
class struct___CFDictionary(c.Struct): SIZE = 0
io_service_t: TypeAlias = ctypes.c_uint32
class struct___CFDictionary(c.Struct): pass
CFDictionaryRef: TypeAlias = c.POINTER[struct___CFDictionary]
io_service_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
@dll.bind(io_service_t, mach_port_t, CFDictionaryRef)
def IOServiceGetMatchingService(mainPort:mach_port_t, matching:CFDictionaryRef) -> io_service_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, CFDictionaryRef, c.POINTER[io_iterator_t])
def IOServiceGetMatchingServices(mainPort:mach_port_t, matching:CFDictionaryRef, existing:c.POINTER[io_iterator_t]) -> kern_return_t: ...
uintptr_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
uintptr_t: TypeAlias = ctypes.c_uint64
@dll.bind(kern_return_t, mach_port_t, io_name_t, CFDictionaryRef, mach_port_t, uintptr_t, c.POINTER[io_iterator_t])
def IOServiceAddNotification(mainPort:mach_port_t, notificationType:io_name_t, matching:CFDictionaryRef, wakePort:mach_port_t, reference:uintptr_t, notification:c.POINTER[io_iterator_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, IONotificationPortRef, io_name_t, CFDictionaryRef, IOServiceMatchingCallback, ctypes.c_void_p, c.POINTER[io_iterator_t])
def IOServiceAddMatchingNotification(notifyPort:IONotificationPortRef, notificationType:io_name_t, matching:CFDictionaryRef, callback:IOServiceMatchingCallback, refCon:ctypes.c_void_p, notification:c.POINTER[io_iterator_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, IONotificationPortRef, io_service_t, io_name_t, IOServiceInterestCallback, ctypes.c_void_p, c.POINTER[io_object_t])
def IOServiceAddInterestNotification(notifyPort:IONotificationPortRef, service:io_service_t, interestType:io_name_t, callback:IOServiceInterestCallback, refCon:ctypes.c_void_p, notification:c.POINTER[io_object_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_service_t, CFDictionaryRef, c.POINTER[boolean_t])
def IOServiceMatchPropertyTable(service:io_service_t, matching:CFDictionaryRef, matches:c.POINTER[boolean_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_service_t, c.POINTER[uint32_t])
def IOServiceGetBusyState(service:io_service_t, busyState:c.POINTER[uint32_t]) -> kern_return_t: ...
@c.record
class struct_mach_timespec(c.Struct):
SIZE = 8
tv_sec: Annotated[Annotated[int, ctypes.c_uint32], 0]
tv_nsec: Annotated[clock_res_t, 4]
tv_sec: int
tv_nsec: int
mach_timespec_t: TypeAlias = struct_mach_timespec
clock_res_t: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
clock_res_t: TypeAlias = ctypes.c_int32
struct_mach_timespec.register_fields([('tv_sec', ctypes.c_uint32, 0), ('tv_nsec', clock_res_t, 4)])
@dll.bind(kern_return_t, io_service_t, c.POINTER[mach_timespec_t])
def IOServiceWaitQuiet(service:io_service_t, waitTime:c.POINTER[mach_timespec_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, c.POINTER[uint32_t])
def IOKitGetBusyState(mainPort:mach_port_t, busyState:c.POINTER[uint32_t]) -> kern_return_t: ...
IOOptionBits: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
IOOptionBits: TypeAlias = ctypes.c_uint32
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_timespec_t], IOOptionBits)
def IOKitWaitQuietWithOptions(mainPort:mach_port_t, waitTime:c.POINTER[mach_timespec_t], options:IOOptionBits) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_timespec_t])
def IOKitWaitQuiet(mainPort:mach_port_t, waitTime:c.POINTER[mach_timespec_t]) -> kern_return_t: ...
task_port_t: TypeAlias = Annotated[int, ctypes.c_uint32]
io_connect_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
task_port_t: TypeAlias = ctypes.c_uint32
io_connect_t: TypeAlias = ctypes.c_uint32
@dll.bind(kern_return_t, io_service_t, task_port_t, uint32_t, c.POINTER[io_connect_t])
def IOServiceOpen(service:io_service_t, owningTask:task_port_t, type:uint32_t, connect:c.POINTER[io_connect_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_service_t, uint32_t)
def IOServiceRequestProbe(service:io_service_t, options:uint32_t) -> kern_return_t: ...
class _anonenum0(Annotated[int, ctypes.c_uint32], c.Enum): pass
kIOServiceInteractionAllowed = _anonenum0.define('kIOServiceInteractionAllowed', 1)
@dll.bind
_anonenum0: dict[int, str] = {(kIOServiceInteractionAllowed:=1): 'kIOServiceInteractionAllowed'}
@dll.bind(kern_return_t, io_service_t, uint32_t)
def IOServiceAuthorize(service:io_service_t, options:uint32_t) -> kern_return_t: ...
@dll.bind
def IOServiceOpenAsFileDescriptor(service:io_service_t, oflag:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, io_service_t, ctypes.c_int32)
def IOServiceOpenAsFileDescriptor(service:io_service_t, oflag:int) -> int: ...
@dll.bind(kern_return_t, io_connect_t)
def IOServiceClose(connect:io_connect_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t)
def IOConnectAddRef(connect:io_connect_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t)
def IOConnectRelease(connect:io_connect_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, c.POINTER[io_service_t])
def IOConnectGetService(connect:io_connect_t, service:c.POINTER[io_service_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, mach_port_t, uintptr_t)
def IOConnectSetNotificationPort(connect:io_connect_t, type:uint32_t, port:mach_port_t, reference:uintptr_t) -> kern_return_t: ...
mach_vm_address_t: TypeAlias = Annotated[int, ctypes.c_uint64]
mach_vm_size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
mach_vm_address_t: TypeAlias = ctypes.c_uint64
mach_vm_size_t: TypeAlias = ctypes.c_uint64
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, c.POINTER[mach_vm_address_t], c.POINTER[mach_vm_size_t], IOOptionBits)
def IOConnectMapMemory(connect:io_connect_t, memoryType:uint32_t, intoTask:task_port_t, atAddress:c.POINTER[mach_vm_address_t], ofSize:c.POINTER[mach_vm_size_t], options:IOOptionBits) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, c.POINTER[mach_vm_address_t], c.POINTER[mach_vm_size_t], IOOptionBits)
def IOConnectMapMemory64(connect:io_connect_t, memoryType:uint32_t, intoTask:task_port_t, atAddress:c.POINTER[mach_vm_address_t], ofSize:c.POINTER[mach_vm_size_t], options:IOOptionBits) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, mach_vm_address_t)
def IOConnectUnmapMemory(connect:io_connect_t, memoryType:uint32_t, fromTask:task_port_t, atAddress:mach_vm_address_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, mach_vm_address_t)
def IOConnectUnmapMemory64(connect:io_connect_t, memoryType:uint32_t, fromTask:task_port_t, atAddress:mach_vm_address_t) -> kern_return_t: ...
CFTypeRef: TypeAlias = ctypes.c_void_p
@dll.bind
@dll.bind(kern_return_t, io_connect_t, CFTypeRef)
def IOConnectSetCFProperties(connect:io_connect_t, properties:CFTypeRef) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, CFStringRef, CFTypeRef)
def IOConnectSetCFProperty(connect:io_connect_t, propertyName:CFStringRef, property:CFTypeRef) -> kern_return_t: ...
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
uint64_t: TypeAlias = ctypes.c_uint64
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[uint64_t], uint32_t, ctypes.c_void_p, size_t, c.POINTER[uint64_t], c.POINTER[uint32_t], ctypes.c_void_p, c.POINTER[size_t])
def IOConnectCallMethod(connection:mach_port_t, selector:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t], outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t, mach_port_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], uint32_t, ctypes.c_void_p, size_t, c.POINTER[uint64_t], c.POINTER[uint32_t], ctypes.c_void_p, c.POINTER[size_t])
def IOConnectCallAsyncMethod(connection:mach_port_t, selector:uint32_t, wake_port:mach_port_t, reference:c.POINTER[uint64_t], referenceCnt:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t], outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t, ctypes.c_void_p, size_t, ctypes.c_void_p, c.POINTER[size_t])
def IOConnectCallStructMethod(connection:mach_port_t, selector:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t, mach_port_t, c.POINTER[uint64_t], uint32_t, ctypes.c_void_p, size_t, ctypes.c_void_p, c.POINTER[size_t])
def IOConnectCallAsyncStructMethod(connection:mach_port_t, selector:uint32_t, wake_port:mach_port_t, reference:c.POINTER[uint64_t], referenceCnt:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], c.POINTER[uint32_t])
def IOConnectCallScalarMethod(connection:mach_port_t, selector:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t, mach_port_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], c.POINTER[uint32_t])
def IOConnectCallAsyncScalarMethod(connection:mach_port_t, selector:uint32_t, wake_port:mach_port_t, reference:c.POINTER[uint64_t], referenceCnt:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t)
def IOConnectTrap0(connect:io_connect_t, index:uint32_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t)
def IOConnectTrap1(connect:io_connect_t, index:uint32_t, p1:uintptr_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t)
def IOConnectTrap2(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t)
def IOConnectTrap3(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t)
def IOConnectTrap4(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t, p4:uintptr_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t)
def IOConnectTrap5(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t, p4:uintptr_t, p5:uintptr_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t)
def IOConnectTrap6(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t, p4:uintptr_t, p5:uintptr_t, p6:uintptr_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_connect_t, io_connect_t)
def IOConnectAddClient(connect:io_connect_t, client:io_connect_t) -> kern_return_t: ...
io_registry_entry_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
io_registry_entry_t: TypeAlias = ctypes.c_uint32
@dll.bind(io_registry_entry_t, mach_port_t)
def IORegistryGetRootEntry(mainPort:mach_port_t) -> io_registry_entry_t: ...
io_string_t: TypeAlias = c.Array[Annotated[bytes, ctypes.c_char], Literal[512]]
@dll.bind
io_string_t: TypeAlias = c.Array[ctypes.c_char, Literal[512]]
@dll.bind(io_registry_entry_t, mach_port_t, io_string_t)
def IORegistryEntryFromPath(mainPort:mach_port_t, path:io_string_t) -> io_registry_entry_t: ...
@dll.bind
@dll.bind(io_registry_entry_t, mach_port_t, CFStringRef)
def IORegistryEntryCopyFromPath(mainPort:mach_port_t, path:CFStringRef) -> io_registry_entry_t: ...
class _anonenum1(Annotated[int, ctypes.c_uint32], c.Enum): pass
kIORegistryIterateRecursively = _anonenum1.define('kIORegistryIterateRecursively', 1)
kIORegistryIterateParents = _anonenum1.define('kIORegistryIterateParents', 2)
@dll.bind
_anonenum1: dict[int, str] = {(kIORegistryIterateRecursively:=1): 'kIORegistryIterateRecursively', (kIORegistryIterateParents:=2): 'kIORegistryIterateParents'}
@dll.bind(kern_return_t, mach_port_t, io_name_t, IOOptionBits, c.POINTER[io_iterator_t])
def IORegistryCreateIterator(mainPort:mach_port_t, plane:io_name_t, options:IOOptionBits, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, IOOptionBits, c.POINTER[io_iterator_t])
def IORegistryEntryCreateIterator(entry:io_registry_entry_t, plane:io_name_t, options:IOOptionBits, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_iterator_t)
def IORegistryIteratorEnterEntry(iterator:io_iterator_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_iterator_t)
def IORegistryIteratorExitEntry(iterator:io_iterator_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t)
def IORegistryEntryGetName(entry:io_registry_entry_t, name:io_name_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_name_t)
def IORegistryEntryGetNameInPlane(entry:io_registry_entry_t, plane:io_name_t, name:io_name_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_name_t)
def IORegistryEntryGetLocationInPlane(entry:io_registry_entry_t, plane:io_name_t, location:io_name_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_string_t)
def IORegistryEntryGetPath(entry:io_registry_entry_t, plane:io_name_t, path:io_string_t) -> kern_return_t: ...
@dll.bind
@dll.bind(CFStringRef, io_registry_entry_t, io_name_t)
def IORegistryEntryCopyPath(entry:io_registry_entry_t, plane:io_name_t) -> CFStringRef: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, c.POINTER[uint64_t])
def IORegistryEntryGetRegistryEntryID(entry:io_registry_entry_t, entryID:c.POINTER[uint64_t]) -> kern_return_t: ...
CFMutableDictionaryRef: TypeAlias = c.POINTER[struct___CFDictionary]
class struct___CFAllocator(c.Struct): SIZE = 0
class struct___CFAllocator(c.Struct): pass
CFAllocatorRef: TypeAlias = c.POINTER[struct___CFAllocator]
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, c.POINTER[CFMutableDictionaryRef], CFAllocatorRef, IOOptionBits)
def IORegistryEntryCreateCFProperties(entry:io_registry_entry_t, properties:c.POINTER[CFMutableDictionaryRef], allocator:CFAllocatorRef, options:IOOptionBits) -> kern_return_t: ...
@dll.bind
@dll.bind(CFTypeRef, io_registry_entry_t, CFStringRef, CFAllocatorRef, IOOptionBits)
def IORegistryEntryCreateCFProperty(entry:io_registry_entry_t, key:CFStringRef, allocator:CFAllocatorRef, options:IOOptionBits) -> CFTypeRef: ...
@dll.bind
@dll.bind(CFTypeRef, io_registry_entry_t, io_name_t, CFStringRef, CFAllocatorRef, IOOptionBits)
def IORegistryEntrySearchCFProperty(entry:io_registry_entry_t, plane:io_name_t, key:CFStringRef, allocator:CFAllocatorRef, options:IOOptionBits) -> CFTypeRef: ...
io_struct_inband_t: TypeAlias = c.Array[Annotated[bytes, ctypes.c_char], Literal[4096]]
@dll.bind
io_struct_inband_t: TypeAlias = c.Array[ctypes.c_char, Literal[4096]]
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_struct_inband_t, c.POINTER[uint32_t])
def IORegistryEntryGetProperty(entry:io_registry_entry_t, propertyName:io_name_t, buffer:io_struct_inband_t, size:c.POINTER[uint32_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, CFTypeRef)
def IORegistryEntrySetCFProperties(entry:io_registry_entry_t, properties:CFTypeRef) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, CFStringRef, CFTypeRef)
def IORegistryEntrySetCFProperty(entry:io_registry_entry_t, propertyName:CFStringRef, property:CFTypeRef) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_iterator_t])
def IORegistryEntryGetChildIterator(entry:io_registry_entry_t, plane:io_name_t, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_registry_entry_t])
def IORegistryEntryGetChildEntry(entry:io_registry_entry_t, plane:io_name_t, child:c.POINTER[io_registry_entry_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_iterator_t])
def IORegistryEntryGetParentIterator(entry:io_registry_entry_t, plane:io_name_t, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_registry_entry_t])
def IORegistryEntryGetParentEntry(entry:io_registry_entry_t, plane:io_name_t, parent:c.POINTER[io_registry_entry_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(boolean_t, io_registry_entry_t, io_name_t)
def IORegistryEntryInPlane(entry:io_registry_entry_t, plane:io_name_t) -> boolean_t: ...
@dll.bind
def IOServiceMatching(name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> CFMutableDictionaryRef: ...
@dll.bind
def IOServiceNameMatching(name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> CFMutableDictionaryRef: ...
@dll.bind
def IOBSDNameMatching(mainPort:mach_port_t, options:uint32_t, bsdName:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> CFMutableDictionaryRef: ...
@dll.bind
def IOOpenFirmwarePathMatching(mainPort:mach_port_t, options:uint32_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> CFMutableDictionaryRef: ...
@dll.bind
@dll.bind(CFMutableDictionaryRef, c.POINTER[ctypes.c_char])
def IOServiceMatching(name:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
@dll.bind(CFMutableDictionaryRef, c.POINTER[ctypes.c_char])
def IOServiceNameMatching(name:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
@dll.bind(CFMutableDictionaryRef, mach_port_t, uint32_t, c.POINTER[ctypes.c_char])
def IOBSDNameMatching(mainPort:mach_port_t, options:uint32_t, bsdName:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
@dll.bind(CFMutableDictionaryRef, mach_port_t, uint32_t, c.POINTER[ctypes.c_char])
def IOOpenFirmwarePathMatching(mainPort:mach_port_t, options:uint32_t, path:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
@dll.bind(CFMutableDictionaryRef, uint64_t)
def IORegistryEntryIDMatching(entryID:uint64_t) -> CFMutableDictionaryRef: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, io_name_t, io_name_t)
def IOServiceOFPathToBSDName(mainPort:mach_port_t, openFirmwarePath:io_name_t, bsdName:io_name_t) -> kern_return_t: ...
IOAsyncCallback0: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, Annotated[int, ctypes.c_int32]]]
IOAsyncCallback1: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, Annotated[int, ctypes.c_int32], ctypes.c_void_p]]
IOAsyncCallback2: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, Annotated[int, ctypes.c_int32], ctypes.c_void_p, ctypes.c_void_p]]
IOAsyncCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, Annotated[int, ctypes.c_int32], c.POINTER[ctypes.c_void_p], Annotated[int, ctypes.c_uint32]]]
vm_size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
IOAsyncCallback0: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32]]
IOAsyncCallback1: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_void_p]]
IOAsyncCallback2: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_void_p, ctypes.c_void_p]]
IOAsyncCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32, c.POINTER[ctypes.c_void_p], ctypes.c_uint32]]
vm_size_t: TypeAlias = ctypes.c_uint64
@dll.bind(kern_return_t, c.POINTER[mach_msg_header_t], uint32_t, c.POINTER[uint32_t], c.POINTER[uintptr_t], c.POINTER[ctypes.c_void_p], c.POINTER[vm_size_t])
def OSGetNotificationFromMessage(msg:c.POINTER[mach_msg_header_t], index:uint32_t, type:c.POINTER[uint32_t], reference:c.POINTER[uintptr_t], content:c.POINTER[ctypes.c_void_p], size:c.POINTER[vm_size_t]) -> kern_return_t: ...
@dll.bind
def IOCatalogueSendData(mainPort:mach_port_t, flag:uint32_t, buffer:c.POINTER[Annotated[bytes, ctypes.c_char]], size:uint32_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[ctypes.c_char], uint32_t)
def IOCatalogueSendData(mainPort:mach_port_t, flag:uint32_t, buffer:c.POINTER[ctypes.c_char], size:uint32_t) -> kern_return_t: ...
@dll.bind(kern_return_t, mach_port_t, uint32_t, io_name_t)
def IOCatalogueTerminate(mainPort:mach_port_t, flag:uint32_t, description:io_name_t) -> kern_return_t: ...
@dll.bind
def IOCatalogueGetData(mainPort:mach_port_t, flag:uint32_t, buffer:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], size:c.POINTER[uint32_t]) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[c.POINTER[ctypes.c_char]], c.POINTER[uint32_t])
def IOCatalogueGetData(mainPort:mach_port_t, flag:uint32_t, buffer:c.POINTER[c.POINTER[ctypes.c_char]], size:c.POINTER[uint32_t]) -> kern_return_t: ...
@dll.bind(kern_return_t, mach_port_t, io_name_t)
def IOCatalogueModuleLoaded(mainPort:mach_port_t, name:io_name_t) -> kern_return_t: ...
@dll.bind
@dll.bind(kern_return_t, mach_port_t, uint32_t)
def IOCatalogueReset(mainPort:mach_port_t, flag:uint32_t) -> kern_return_t: ...
c.init_records()

File diff suppressed because it is too large Load diff

View file

@ -1,514 +1,557 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
class enum_kgsl_user_mem_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
KGSL_USER_MEM_TYPE_PMEM = enum_kgsl_user_mem_type.define('KGSL_USER_MEM_TYPE_PMEM', 0)
KGSL_USER_MEM_TYPE_ASHMEM = enum_kgsl_user_mem_type.define('KGSL_USER_MEM_TYPE_ASHMEM', 1)
KGSL_USER_MEM_TYPE_ADDR = enum_kgsl_user_mem_type.define('KGSL_USER_MEM_TYPE_ADDR', 2)
KGSL_USER_MEM_TYPE_ION = enum_kgsl_user_mem_type.define('KGSL_USER_MEM_TYPE_ION', 3)
KGSL_USER_MEM_TYPE_DMABUF = enum_kgsl_user_mem_type.define('KGSL_USER_MEM_TYPE_DMABUF', 3)
KGSL_USER_MEM_TYPE_MAX = enum_kgsl_user_mem_type.define('KGSL_USER_MEM_TYPE_MAX', 7)
class enum_kgsl_ctx_reset_stat(Annotated[int, ctypes.c_uint32], c.Enum): pass
KGSL_CTX_STAT_NO_ERROR = enum_kgsl_ctx_reset_stat.define('KGSL_CTX_STAT_NO_ERROR', 0)
KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = enum_kgsl_ctx_reset_stat.define('KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT', 1)
KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = enum_kgsl_ctx_reset_stat.define('KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT', 2)
KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = enum_kgsl_ctx_reset_stat.define('KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT', 3)
class enum_kgsl_deviceid(Annotated[int, ctypes.c_uint32], c.Enum): pass
KGSL_DEVICE_3D0 = enum_kgsl_deviceid.define('KGSL_DEVICE_3D0', 0)
KGSL_DEVICE_MAX = enum_kgsl_deviceid.define('KGSL_DEVICE_MAX', 1)
enum_kgsl_user_mem_type: dict[int, str] = {(KGSL_USER_MEM_TYPE_PMEM:=0): 'KGSL_USER_MEM_TYPE_PMEM', (KGSL_USER_MEM_TYPE_ASHMEM:=1): 'KGSL_USER_MEM_TYPE_ASHMEM', (KGSL_USER_MEM_TYPE_ADDR:=2): 'KGSL_USER_MEM_TYPE_ADDR', (KGSL_USER_MEM_TYPE_ION:=3): 'KGSL_USER_MEM_TYPE_ION', (KGSL_USER_MEM_TYPE_DMABUF:=3): 'KGSL_USER_MEM_TYPE_DMABUF', (KGSL_USER_MEM_TYPE_MAX:=7): 'KGSL_USER_MEM_TYPE_MAX'}
enum_kgsl_ctx_reset_stat: dict[int, str] = {(KGSL_CTX_STAT_NO_ERROR:=0): 'KGSL_CTX_STAT_NO_ERROR', (KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT:=1): 'KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT', (KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT:=2): 'KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT', (KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT:=3): 'KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT'}
enum_kgsl_deviceid: dict[int, str] = {(KGSL_DEVICE_3D0:=0): 'KGSL_DEVICE_3D0', (KGSL_DEVICE_MAX:=1): 'KGSL_DEVICE_MAX'}
@c.record
class struct_kgsl_devinfo(c.Struct):
SIZE = 40
device_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
chip_id: Annotated[Annotated[int, ctypes.c_uint32], 4]
mmu_enabled: Annotated[Annotated[int, ctypes.c_uint32], 8]
gmem_gpubaseaddr: Annotated[Annotated[int, ctypes.c_uint64], 16]
gpu_id: Annotated[Annotated[int, ctypes.c_uint32], 24]
gmem_sizebytes: Annotated[Annotated[int, ctypes.c_uint64], 32]
device_id: int
chip_id: int
mmu_enabled: int
gmem_gpubaseaddr: int
gpu_id: int
gmem_sizebytes: int
struct_kgsl_devinfo.register_fields([('device_id', ctypes.c_uint32, 0), ('chip_id', ctypes.c_uint32, 4), ('mmu_enabled', ctypes.c_uint32, 8), ('gmem_gpubaseaddr', ctypes.c_uint64, 16), ('gpu_id', ctypes.c_uint32, 24), ('gmem_sizebytes', ctypes.c_uint64, 32)])
@c.record
class struct_kgsl_devmemstore(c.Struct):
SIZE = 40
soptimestamp: Annotated[Annotated[int, ctypes.c_uint32], 0]
sbz: Annotated[Annotated[int, ctypes.c_uint32], 4]
eoptimestamp: Annotated[Annotated[int, ctypes.c_uint32], 8]
sbz2: Annotated[Annotated[int, ctypes.c_uint32], 12]
preempted: Annotated[Annotated[int, ctypes.c_uint32], 16]
sbz3: Annotated[Annotated[int, ctypes.c_uint32], 20]
ref_wait_ts: Annotated[Annotated[int, ctypes.c_uint32], 24]
sbz4: Annotated[Annotated[int, ctypes.c_uint32], 28]
current_context: Annotated[Annotated[int, ctypes.c_uint32], 32]
sbz5: Annotated[Annotated[int, ctypes.c_uint32], 36]
class enum_kgsl_timestamp_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
KGSL_TIMESTAMP_CONSUMED = enum_kgsl_timestamp_type.define('KGSL_TIMESTAMP_CONSUMED', 1)
KGSL_TIMESTAMP_RETIRED = enum_kgsl_timestamp_type.define('KGSL_TIMESTAMP_RETIRED', 2)
KGSL_TIMESTAMP_QUEUED = enum_kgsl_timestamp_type.define('KGSL_TIMESTAMP_QUEUED', 3)
soptimestamp: int
sbz: int
eoptimestamp: int
sbz2: int
preempted: int
sbz3: int
ref_wait_ts: int
sbz4: int
current_context: int
sbz5: int
struct_kgsl_devmemstore.register_fields([('soptimestamp', ctypes.c_uint32, 0), ('sbz', ctypes.c_uint32, 4), ('eoptimestamp', ctypes.c_uint32, 8), ('sbz2', ctypes.c_uint32, 12), ('preempted', ctypes.c_uint32, 16), ('sbz3', ctypes.c_uint32, 20), ('ref_wait_ts', ctypes.c_uint32, 24), ('sbz4', ctypes.c_uint32, 28), ('current_context', ctypes.c_uint32, 32), ('sbz5', ctypes.c_uint32, 36)])
enum_kgsl_timestamp_type: dict[int, str] = {(KGSL_TIMESTAMP_CONSUMED:=1): 'KGSL_TIMESTAMP_CONSUMED', (KGSL_TIMESTAMP_RETIRED:=2): 'KGSL_TIMESTAMP_RETIRED', (KGSL_TIMESTAMP_QUEUED:=3): 'KGSL_TIMESTAMP_QUEUED'}
@c.record
class struct_kgsl_shadowprop(c.Struct):
SIZE = 24
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 16]
gpuaddr: int
size: int
flags: int
struct_kgsl_shadowprop.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('flags', ctypes.c_uint32, 16)])
@c.record
class struct_kgsl_version(c.Struct):
SIZE = 16
drv_major: Annotated[Annotated[int, ctypes.c_uint32], 0]
drv_minor: Annotated[Annotated[int, ctypes.c_uint32], 4]
dev_major: Annotated[Annotated[int, ctypes.c_uint32], 8]
dev_minor: Annotated[Annotated[int, ctypes.c_uint32], 12]
drv_major: int
drv_minor: int
dev_major: int
dev_minor: int
struct_kgsl_version.register_fields([('drv_major', ctypes.c_uint32, 0), ('drv_minor', ctypes.c_uint32, 4), ('dev_major', ctypes.c_uint32, 8), ('dev_minor', ctypes.c_uint32, 12)])
@c.record
class struct_kgsl_sp_generic_mem(c.Struct):
SIZE = 16
local: Annotated[Annotated[int, ctypes.c_uint64], 0]
pvt: Annotated[Annotated[int, ctypes.c_uint64], 8]
local: int
pvt: int
struct_kgsl_sp_generic_mem.register_fields([('local', ctypes.c_uint64, 0), ('pvt', ctypes.c_uint64, 8)])
@c.record
class struct_kgsl_ucode_version(c.Struct):
SIZE = 8
pfp: Annotated[Annotated[int, ctypes.c_uint32], 0]
pm4: Annotated[Annotated[int, ctypes.c_uint32], 4]
pfp: int
pm4: int
struct_kgsl_ucode_version.register_fields([('pfp', ctypes.c_uint32, 0), ('pm4', ctypes.c_uint32, 4)])
@c.record
class struct_kgsl_gpmu_version(c.Struct):
SIZE = 12
major: Annotated[Annotated[int, ctypes.c_uint32], 0]
minor: Annotated[Annotated[int, ctypes.c_uint32], 4]
features: Annotated[Annotated[int, ctypes.c_uint32], 8]
major: int
minor: int
features: int
struct_kgsl_gpmu_version.register_fields([('major', ctypes.c_uint32, 0), ('minor', ctypes.c_uint32, 4), ('features', ctypes.c_uint32, 8)])
@c.record
class struct_kgsl_ibdesc(c.Struct):
SIZE = 32
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
__pad: Annotated[Annotated[int, ctypes.c_uint64], 8]
sizedwords: Annotated[Annotated[int, ctypes.c_uint64], 16]
ctrl: Annotated[Annotated[int, ctypes.c_uint32], 24]
gpuaddr: int
__pad: int
sizedwords: int
ctrl: int
struct_kgsl_ibdesc.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('__pad', ctypes.c_uint64, 8), ('sizedwords', ctypes.c_uint64, 16), ('ctrl', ctypes.c_uint32, 24)])
@c.record
class struct_kgsl_cmdbatch_profiling_buffer(c.Struct):
SIZE = 40
wall_clock_s: Annotated[Annotated[int, ctypes.c_uint64], 0]
wall_clock_ns: Annotated[Annotated[int, ctypes.c_uint64], 8]
gpu_ticks_queued: Annotated[Annotated[int, ctypes.c_uint64], 16]
gpu_ticks_submitted: Annotated[Annotated[int, ctypes.c_uint64], 24]
gpu_ticks_retired: Annotated[Annotated[int, ctypes.c_uint64], 32]
wall_clock_s: int
wall_clock_ns: int
gpu_ticks_queued: int
gpu_ticks_submitted: int
gpu_ticks_retired: int
struct_kgsl_cmdbatch_profiling_buffer.register_fields([('wall_clock_s', ctypes.c_uint64, 0), ('wall_clock_ns', ctypes.c_uint64, 8), ('gpu_ticks_queued', ctypes.c_uint64, 16), ('gpu_ticks_submitted', ctypes.c_uint64, 24), ('gpu_ticks_retired', ctypes.c_uint64, 32)])
@c.record
class struct_kgsl_device_getproperty(c.Struct):
SIZE = 24
type: Annotated[Annotated[int, ctypes.c_uint32], 0]
value: Annotated[ctypes.c_void_p, 8]
sizebytes: Annotated[Annotated[int, ctypes.c_uint64], 16]
type: int
value: ctypes.c_void_p
sizebytes: int
struct_kgsl_device_getproperty.register_fields([('type', ctypes.c_uint32, 0), ('value', ctypes.c_void_p, 8), ('sizebytes', ctypes.c_uint64, 16)])
@c.record
class struct_kgsl_device_waittimestamp(c.Struct):
SIZE = 8
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 0]
timeout: Annotated[Annotated[int, ctypes.c_uint32], 4]
timestamp: int
timeout: int
struct_kgsl_device_waittimestamp.register_fields([('timestamp', ctypes.c_uint32, 0), ('timeout', ctypes.c_uint32, 4)])
@c.record
class struct_kgsl_device_waittimestamp_ctxtid(c.Struct):
SIZE = 12
context_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 4]
timeout: Annotated[Annotated[int, ctypes.c_uint32], 8]
context_id: int
timestamp: int
timeout: int
struct_kgsl_device_waittimestamp_ctxtid.register_fields([('context_id', ctypes.c_uint32, 0), ('timestamp', ctypes.c_uint32, 4), ('timeout', ctypes.c_uint32, 8)])
@c.record
class struct_kgsl_ringbuffer_issueibcmds(c.Struct):
SIZE = 32
drawctxt_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
ibdesc_addr: Annotated[Annotated[int, ctypes.c_uint64], 8]
numibs: Annotated[Annotated[int, ctypes.c_uint32], 16]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 20]
flags: Annotated[Annotated[int, ctypes.c_uint32], 24]
drawctxt_id: int
ibdesc_addr: int
numibs: int
timestamp: int
flags: int
struct_kgsl_ringbuffer_issueibcmds.register_fields([('drawctxt_id', ctypes.c_uint32, 0), ('ibdesc_addr', ctypes.c_uint64, 8), ('numibs', ctypes.c_uint32, 16), ('timestamp', ctypes.c_uint32, 20), ('flags', ctypes.c_uint32, 24)])
@c.record
class struct_kgsl_cmdstream_readtimestamp(c.Struct):
SIZE = 8
type: Annotated[Annotated[int, ctypes.c_uint32], 0]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 4]
type: int
timestamp: int
struct_kgsl_cmdstream_readtimestamp.register_fields([('type', ctypes.c_uint32, 0), ('timestamp', ctypes.c_uint32, 4)])
@c.record
class struct_kgsl_cmdstream_freememontimestamp(c.Struct):
SIZE = 16
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
type: Annotated[Annotated[int, ctypes.c_uint32], 8]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 12]
gpuaddr: int
type: int
timestamp: int
struct_kgsl_cmdstream_freememontimestamp.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('type', ctypes.c_uint32, 8), ('timestamp', ctypes.c_uint32, 12)])
@c.record
class struct_kgsl_drawctxt_create(c.Struct):
SIZE = 8
flags: Annotated[Annotated[int, ctypes.c_uint32], 0]
drawctxt_id: Annotated[Annotated[int, ctypes.c_uint32], 4]
flags: int
drawctxt_id: int
struct_kgsl_drawctxt_create.register_fields([('flags', ctypes.c_uint32, 0), ('drawctxt_id', ctypes.c_uint32, 4)])
@c.record
class struct_kgsl_drawctxt_destroy(c.Struct):
SIZE = 4
drawctxt_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
drawctxt_id: int
struct_kgsl_drawctxt_destroy.register_fields([('drawctxt_id', ctypes.c_uint32, 0)])
@c.record
class struct_kgsl_map_user_mem(c.Struct):
SIZE = 48
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 8]
len: Annotated[Annotated[int, ctypes.c_uint64], 16]
offset: Annotated[Annotated[int, ctypes.c_uint64], 24]
hostptr: Annotated[Annotated[int, ctypes.c_uint64], 32]
memtype: Annotated[enum_kgsl_user_mem_type, 40]
flags: Annotated[Annotated[int, ctypes.c_uint32], 44]
fd: int
gpuaddr: int
len: int
offset: int
hostptr: int
memtype: int
flags: int
struct_kgsl_map_user_mem.register_fields([('fd', ctypes.c_int32, 0), ('gpuaddr', ctypes.c_uint64, 8), ('len', ctypes.c_uint64, 16), ('offset', ctypes.c_uint64, 24), ('hostptr', ctypes.c_uint64, 32), ('memtype', ctypes.c_uint32, 40), ('flags', ctypes.c_uint32, 44)])
@c.record
class struct_kgsl_cmdstream_readtimestamp_ctxtid(c.Struct):
SIZE = 12
context_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
type: Annotated[Annotated[int, ctypes.c_uint32], 4]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 8]
context_id: int
type: int
timestamp: int
struct_kgsl_cmdstream_readtimestamp_ctxtid.register_fields([('context_id', ctypes.c_uint32, 0), ('type', ctypes.c_uint32, 4), ('timestamp', ctypes.c_uint32, 8)])
@c.record
class struct_kgsl_cmdstream_freememontimestamp_ctxtid(c.Struct):
SIZE = 24
context_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 8]
type: Annotated[Annotated[int, ctypes.c_uint32], 16]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 20]
context_id: int
gpuaddr: int
type: int
timestamp: int
struct_kgsl_cmdstream_freememontimestamp_ctxtid.register_fields([('context_id', ctypes.c_uint32, 0), ('gpuaddr', ctypes.c_uint64, 8), ('type', ctypes.c_uint32, 16), ('timestamp', ctypes.c_uint32, 20)])
@c.record
class struct_kgsl_sharedmem_from_pmem(c.Struct):
SIZE = 24
pmem_fd: Annotated[Annotated[int, ctypes.c_int32], 0]
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 8]
len: Annotated[Annotated[int, ctypes.c_uint32], 16]
offset: Annotated[Annotated[int, ctypes.c_uint32], 20]
pmem_fd: int
gpuaddr: int
len: int
offset: int
struct_kgsl_sharedmem_from_pmem.register_fields([('pmem_fd', ctypes.c_int32, 0), ('gpuaddr', ctypes.c_uint64, 8), ('len', ctypes.c_uint32, 16), ('offset', ctypes.c_uint32, 20)])
@c.record
class struct_kgsl_sharedmem_free(c.Struct):
SIZE = 8
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
gpuaddr: int
struct_kgsl_sharedmem_free.register_fields([('gpuaddr', ctypes.c_uint64, 0)])
@c.record
class struct_kgsl_cff_user_event(c.Struct):
SIZE = 32
cff_opcode: Annotated[Annotated[int, ctypes.c_ubyte], 0]
op1: Annotated[Annotated[int, ctypes.c_uint32], 4]
op2: Annotated[Annotated[int, ctypes.c_uint32], 8]
op3: Annotated[Annotated[int, ctypes.c_uint32], 12]
op4: Annotated[Annotated[int, ctypes.c_uint32], 16]
op5: Annotated[Annotated[int, ctypes.c_uint32], 20]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[2]], 24]
cff_opcode: int
op1: int
op2: int
op3: int
op4: int
op5: int
__pad: c.Array[ctypes.c_uint32, Literal[2]]
struct_kgsl_cff_user_event.register_fields([('cff_opcode', ctypes.c_ubyte, 0), ('op1', ctypes.c_uint32, 4), ('op2', ctypes.c_uint32, 8), ('op3', ctypes.c_uint32, 12), ('op4', ctypes.c_uint32, 16), ('op5', ctypes.c_uint32, 20), ('__pad', c.Array[ctypes.c_uint32, Literal[2]], 24)])
@c.record
class struct_kgsl_gmem_desc(c.Struct):
SIZE = 20
x: Annotated[Annotated[int, ctypes.c_uint32], 0]
y: Annotated[Annotated[int, ctypes.c_uint32], 4]
width: Annotated[Annotated[int, ctypes.c_uint32], 8]
height: Annotated[Annotated[int, ctypes.c_uint32], 12]
pitch: Annotated[Annotated[int, ctypes.c_uint32], 16]
x: int
y: int
width: int
height: int
pitch: int
struct_kgsl_gmem_desc.register_fields([('x', ctypes.c_uint32, 0), ('y', ctypes.c_uint32, 4), ('width', ctypes.c_uint32, 8), ('height', ctypes.c_uint32, 12), ('pitch', ctypes.c_uint32, 16)])
@c.record
class struct_kgsl_buffer_desc(c.Struct):
SIZE = 32
hostptr: Annotated[ctypes.c_void_p, 0]
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 8]
size: Annotated[Annotated[int, ctypes.c_int32], 16]
format: Annotated[Annotated[int, ctypes.c_uint32], 20]
pitch: Annotated[Annotated[int, ctypes.c_uint32], 24]
enabled: Annotated[Annotated[int, ctypes.c_uint32], 28]
hostptr: ctypes.c_void_p
gpuaddr: int
size: int
format: int
pitch: int
enabled: int
struct_kgsl_buffer_desc.register_fields([('hostptr', ctypes.c_void_p, 0), ('gpuaddr', ctypes.c_uint64, 8), ('size', ctypes.c_int32, 16), ('format', ctypes.c_uint32, 20), ('pitch', ctypes.c_uint32, 24), ('enabled', ctypes.c_uint32, 28)])
@c.record
class struct_kgsl_bind_gmem_shadow(c.Struct):
SIZE = 72
drawctxt_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
gmem_desc: Annotated[struct_kgsl_gmem_desc, 4]
shadow_x: Annotated[Annotated[int, ctypes.c_uint32], 24]
shadow_y: Annotated[Annotated[int, ctypes.c_uint32], 28]
shadow_buffer: Annotated[struct_kgsl_buffer_desc, 32]
buffer_id: Annotated[Annotated[int, ctypes.c_uint32], 64]
drawctxt_id: int
gmem_desc: struct_kgsl_gmem_desc
shadow_x: int
shadow_y: int
shadow_buffer: struct_kgsl_buffer_desc
buffer_id: int
struct_kgsl_bind_gmem_shadow.register_fields([('drawctxt_id', ctypes.c_uint32, 0), ('gmem_desc', struct_kgsl_gmem_desc, 4), ('shadow_x', ctypes.c_uint32, 24), ('shadow_y', ctypes.c_uint32, 28), ('shadow_buffer', struct_kgsl_buffer_desc, 32), ('buffer_id', ctypes.c_uint32, 64)])
@c.record
class struct_kgsl_sharedmem_from_vmalloc(c.Struct):
SIZE = 16
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
hostptr: Annotated[Annotated[int, ctypes.c_uint32], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 12]
gpuaddr: int
hostptr: int
flags: int
struct_kgsl_sharedmem_from_vmalloc.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('hostptr', ctypes.c_uint32, 8), ('flags', ctypes.c_uint32, 12)])
@c.record
class struct_kgsl_drawctxt_set_bin_base_offset(c.Struct):
SIZE = 8
drawctxt_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
offset: Annotated[Annotated[int, ctypes.c_uint32], 4]
class enum_kgsl_cmdwindow_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
KGSL_CMDWINDOW_MIN = enum_kgsl_cmdwindow_type.define('KGSL_CMDWINDOW_MIN', 0)
KGSL_CMDWINDOW_2D = enum_kgsl_cmdwindow_type.define('KGSL_CMDWINDOW_2D', 0)
KGSL_CMDWINDOW_3D = enum_kgsl_cmdwindow_type.define('KGSL_CMDWINDOW_3D', 1)
KGSL_CMDWINDOW_MMU = enum_kgsl_cmdwindow_type.define('KGSL_CMDWINDOW_MMU', 2)
KGSL_CMDWINDOW_ARBITER = enum_kgsl_cmdwindow_type.define('KGSL_CMDWINDOW_ARBITER', 255)
KGSL_CMDWINDOW_MAX = enum_kgsl_cmdwindow_type.define('KGSL_CMDWINDOW_MAX', 255)
drawctxt_id: int
offset: int
struct_kgsl_drawctxt_set_bin_base_offset.register_fields([('drawctxt_id', ctypes.c_uint32, 0), ('offset', ctypes.c_uint32, 4)])
enum_kgsl_cmdwindow_type: dict[int, str] = {(KGSL_CMDWINDOW_MIN:=0): 'KGSL_CMDWINDOW_MIN', (KGSL_CMDWINDOW_2D:=0): 'KGSL_CMDWINDOW_2D', (KGSL_CMDWINDOW_3D:=1): 'KGSL_CMDWINDOW_3D', (KGSL_CMDWINDOW_MMU:=2): 'KGSL_CMDWINDOW_MMU', (KGSL_CMDWINDOW_ARBITER:=255): 'KGSL_CMDWINDOW_ARBITER', (KGSL_CMDWINDOW_MAX:=255): 'KGSL_CMDWINDOW_MAX'}
@c.record
class struct_kgsl_cmdwindow_write(c.Struct):
SIZE = 12
target: Annotated[enum_kgsl_cmdwindow_type, 0]
addr: Annotated[Annotated[int, ctypes.c_uint32], 4]
data: Annotated[Annotated[int, ctypes.c_uint32], 8]
target: int
addr: int
data: int
struct_kgsl_cmdwindow_write.register_fields([('target', ctypes.c_uint32, 0), ('addr', ctypes.c_uint32, 4), ('data', ctypes.c_uint32, 8)])
@c.record
class struct_kgsl_gpumem_alloc(c.Struct):
SIZE = 24
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 16]
gpuaddr: int
size: int
flags: int
struct_kgsl_gpumem_alloc.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('flags', ctypes.c_uint32, 16)])
@c.record
class struct_kgsl_cff_syncmem(c.Struct):
SIZE = 24
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
len: Annotated[Annotated[int, ctypes.c_uint64], 8]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[2]], 16]
gpuaddr: int
len: int
__pad: c.Array[ctypes.c_uint32, Literal[2]]
struct_kgsl_cff_syncmem.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('len', ctypes.c_uint64, 8), ('__pad', c.Array[ctypes.c_uint32, Literal[2]], 16)])
@c.record
class struct_kgsl_timestamp_event(c.Struct):
SIZE = 32
type: Annotated[Annotated[int, ctypes.c_int32], 0]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 4]
context_id: Annotated[Annotated[int, ctypes.c_uint32], 8]
priv: Annotated[ctypes.c_void_p, 16]
len: Annotated[Annotated[int, ctypes.c_uint64], 24]
type: int
timestamp: int
context_id: int
priv: ctypes.c_void_p
len: int
struct_kgsl_timestamp_event.register_fields([('type', ctypes.c_int32, 0), ('timestamp', ctypes.c_uint32, 4), ('context_id', ctypes.c_uint32, 8), ('priv', ctypes.c_void_p, 16), ('len', ctypes.c_uint64, 24)])
@c.record
class struct_kgsl_timestamp_event_genlock(c.Struct):
SIZE = 4
handle: Annotated[Annotated[int, ctypes.c_int32], 0]
handle: int
struct_kgsl_timestamp_event_genlock.register_fields([('handle', ctypes.c_int32, 0)])
@c.record
class struct_kgsl_timestamp_event_fence(c.Struct):
SIZE = 4
fence_fd: Annotated[Annotated[int, ctypes.c_int32], 0]
fence_fd: int
struct_kgsl_timestamp_event_fence.register_fields([('fence_fd', ctypes.c_int32, 0)])
@c.record
class struct_kgsl_gpumem_alloc_id(c.Struct):
SIZE = 48
id: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
mmapsize: Annotated[Annotated[int, ctypes.c_uint64], 16]
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 24]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[2]], 32]
id: int
flags: int
size: int
mmapsize: int
gpuaddr: int
__pad: c.Array[ctypes.c_uint64, Literal[2]]
struct_kgsl_gpumem_alloc_id.register_fields([('id', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('size', ctypes.c_uint64, 8), ('mmapsize', ctypes.c_uint64, 16), ('gpuaddr', ctypes.c_uint64, 24), ('__pad', c.Array[ctypes.c_uint64, Literal[2]], 32)])
@c.record
class struct_kgsl_gpumem_free_id(c.Struct):
SIZE = 8
id: Annotated[Annotated[int, ctypes.c_uint32], 0]
__pad: Annotated[Annotated[int, ctypes.c_uint32], 4]
id: int
__pad: int
struct_kgsl_gpumem_free_id.register_fields([('id', ctypes.c_uint32, 0), ('__pad', ctypes.c_uint32, 4)])
@c.record
class struct_kgsl_gpumem_get_info(c.Struct):
SIZE = 72
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
id: Annotated[Annotated[int, ctypes.c_uint32], 8]
flags: Annotated[Annotated[int, ctypes.c_uint32], 12]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
mmapsize: Annotated[Annotated[int, ctypes.c_uint64], 24]
useraddr: Annotated[Annotated[int, ctypes.c_uint64], 32]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[4]], 40]
gpuaddr: int
id: int
flags: int
size: int
mmapsize: int
useraddr: int
__pad: c.Array[ctypes.c_uint64, Literal[4]]
struct_kgsl_gpumem_get_info.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('id', ctypes.c_uint32, 8), ('flags', ctypes.c_uint32, 12), ('size', ctypes.c_uint64, 16), ('mmapsize', ctypes.c_uint64, 24), ('useraddr', ctypes.c_uint64, 32), ('__pad', c.Array[ctypes.c_uint64, Literal[4]], 40)])
@c.record
class struct_kgsl_gpumem_sync_cache(c.Struct):
SIZE = 32
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
id: Annotated[Annotated[int, ctypes.c_uint32], 8]
op: Annotated[Annotated[int, ctypes.c_uint32], 12]
offset: Annotated[Annotated[int, ctypes.c_uint64], 16]
length: Annotated[Annotated[int, ctypes.c_uint64], 24]
gpuaddr: int
id: int
op: int
offset: int
length: int
struct_kgsl_gpumem_sync_cache.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('id', ctypes.c_uint32, 8), ('op', ctypes.c_uint32, 12), ('offset', ctypes.c_uint64, 16), ('length', ctypes.c_uint64, 24)])
@c.record
class struct_kgsl_perfcounter_get(c.Struct):
SIZE = 20
groupid: Annotated[Annotated[int, ctypes.c_uint32], 0]
countable: Annotated[Annotated[int, ctypes.c_uint32], 4]
offset: Annotated[Annotated[int, ctypes.c_uint32], 8]
offset_hi: Annotated[Annotated[int, ctypes.c_uint32], 12]
__pad: Annotated[Annotated[int, ctypes.c_uint32], 16]
groupid: int
countable: int
offset: int
offset_hi: int
__pad: int
struct_kgsl_perfcounter_get.register_fields([('groupid', ctypes.c_uint32, 0), ('countable', ctypes.c_uint32, 4), ('offset', ctypes.c_uint32, 8), ('offset_hi', ctypes.c_uint32, 12), ('__pad', ctypes.c_uint32, 16)])
@c.record
class struct_kgsl_perfcounter_put(c.Struct):
SIZE = 16
groupid: Annotated[Annotated[int, ctypes.c_uint32], 0]
countable: Annotated[Annotated[int, ctypes.c_uint32], 4]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[2]], 8]
groupid: int
countable: int
__pad: c.Array[ctypes.c_uint32, Literal[2]]
struct_kgsl_perfcounter_put.register_fields([('groupid', ctypes.c_uint32, 0), ('countable', ctypes.c_uint32, 4), ('__pad', c.Array[ctypes.c_uint32, Literal[2]], 8)])
@c.record
class struct_kgsl_perfcounter_query(c.Struct):
SIZE = 32
groupid: Annotated[Annotated[int, ctypes.c_uint32], 0]
countables: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 8]
count: Annotated[Annotated[int, ctypes.c_uint32], 16]
max_counters: Annotated[Annotated[int, ctypes.c_uint32], 20]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[2]], 24]
groupid: int
countables: c.POINTER[ctypes.c_uint32]
count: int
max_counters: int
__pad: c.Array[ctypes.c_uint32, Literal[2]]
struct_kgsl_perfcounter_query.register_fields([('groupid', ctypes.c_uint32, 0), ('countables', c.POINTER[ctypes.c_uint32], 8), ('count', ctypes.c_uint32, 16), ('max_counters', ctypes.c_uint32, 20), ('__pad', c.Array[ctypes.c_uint32, Literal[2]], 24)])
@c.record
class struct_kgsl_perfcounter_read_group(c.Struct):
SIZE = 16
groupid: Annotated[Annotated[int, ctypes.c_uint32], 0]
countable: Annotated[Annotated[int, ctypes.c_uint32], 4]
value: Annotated[Annotated[int, ctypes.c_uint64], 8]
groupid: int
countable: int
value: int
struct_kgsl_perfcounter_read_group.register_fields([('groupid', ctypes.c_uint32, 0), ('countable', ctypes.c_uint32, 4), ('value', ctypes.c_uint64, 8)])
@c.record
class struct_kgsl_perfcounter_read(c.Struct):
SIZE = 24
reads: Annotated[c.POINTER[struct_kgsl_perfcounter_read_group], 0]
count: Annotated[Annotated[int, ctypes.c_uint32], 8]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[2]], 12]
reads: c.POINTER[struct_kgsl_perfcounter_read_group]
count: int
__pad: c.Array[ctypes.c_uint32, Literal[2]]
struct_kgsl_perfcounter_read.register_fields([('reads', c.POINTER[struct_kgsl_perfcounter_read_group], 0), ('count', ctypes.c_uint32, 8), ('__pad', c.Array[ctypes.c_uint32, Literal[2]], 12)])
@c.record
class struct_kgsl_gpumem_sync_cache_bulk(c.Struct):
SIZE = 24
id_list: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 0]
count: Annotated[Annotated[int, ctypes.c_uint32], 8]
op: Annotated[Annotated[int, ctypes.c_uint32], 12]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[2]], 16]
id_list: c.POINTER[ctypes.c_uint32]
count: int
op: int
__pad: c.Array[ctypes.c_uint32, Literal[2]]
struct_kgsl_gpumem_sync_cache_bulk.register_fields([('id_list', c.POINTER[ctypes.c_uint32], 0), ('count', ctypes.c_uint32, 8), ('op', ctypes.c_uint32, 12), ('__pad', c.Array[ctypes.c_uint32, Literal[2]], 16)])
@c.record
class struct_kgsl_cmd_syncpoint_timestamp(c.Struct):
SIZE = 8
context_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 4]
context_id: int
timestamp: int
struct_kgsl_cmd_syncpoint_timestamp.register_fields([('context_id', ctypes.c_uint32, 0), ('timestamp', ctypes.c_uint32, 4)])
@c.record
class struct_kgsl_cmd_syncpoint_fence(c.Struct):
SIZE = 4
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
fd: int
struct_kgsl_cmd_syncpoint_fence.register_fields([('fd', ctypes.c_int32, 0)])
@c.record
class struct_kgsl_cmd_syncpoint(c.Struct):
SIZE = 24
type: Annotated[Annotated[int, ctypes.c_int32], 0]
priv: Annotated[ctypes.c_void_p, 8]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
type: int
priv: ctypes.c_void_p
size: int
struct_kgsl_cmd_syncpoint.register_fields([('type', ctypes.c_int32, 0), ('priv', ctypes.c_void_p, 8), ('size', ctypes.c_uint64, 16)])
@c.record
class struct_kgsl_submit_commands(c.Struct):
SIZE = 56
context_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
cmdlist: Annotated[c.POINTER[struct_kgsl_ibdesc], 8]
numcmds: Annotated[Annotated[int, ctypes.c_uint32], 16]
synclist: Annotated[c.POINTER[struct_kgsl_cmd_syncpoint], 24]
numsyncs: Annotated[Annotated[int, ctypes.c_uint32], 32]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 36]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[4]], 40]
context_id: int
flags: int
cmdlist: c.POINTER[struct_kgsl_ibdesc]
numcmds: int
synclist: c.POINTER[struct_kgsl_cmd_syncpoint]
numsyncs: int
timestamp: int
__pad: c.Array[ctypes.c_uint32, Literal[4]]
struct_kgsl_submit_commands.register_fields([('context_id', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('cmdlist', c.POINTER[struct_kgsl_ibdesc], 8), ('numcmds', ctypes.c_uint32, 16), ('synclist', c.POINTER[struct_kgsl_cmd_syncpoint], 24), ('numsyncs', ctypes.c_uint32, 32), ('timestamp', ctypes.c_uint32, 36), ('__pad', c.Array[ctypes.c_uint32, Literal[4]], 40)])
@c.record
class struct_kgsl_device_constraint(c.Struct):
SIZE = 24
type: Annotated[Annotated[int, ctypes.c_uint32], 0]
context_id: Annotated[Annotated[int, ctypes.c_uint32], 4]
data: Annotated[ctypes.c_void_p, 8]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
type: int
context_id: int
data: ctypes.c_void_p
size: int
struct_kgsl_device_constraint.register_fields([('type', ctypes.c_uint32, 0), ('context_id', ctypes.c_uint32, 4), ('data', ctypes.c_void_p, 8), ('size', ctypes.c_uint64, 16)])
@c.record
class struct_kgsl_device_constraint_pwrlevel(c.Struct):
SIZE = 4
level: Annotated[Annotated[int, ctypes.c_uint32], 0]
level: int
struct_kgsl_device_constraint_pwrlevel.register_fields([('level', ctypes.c_uint32, 0)])
@c.record
class struct_kgsl_syncsource_create(c.Struct):
SIZE = 16
id: Annotated[Annotated[int, ctypes.c_uint32], 0]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 4]
id: int
__pad: c.Array[ctypes.c_uint32, Literal[3]]
struct_kgsl_syncsource_create.register_fields([('id', ctypes.c_uint32, 0), ('__pad', c.Array[ctypes.c_uint32, Literal[3]], 4)])
@c.record
class struct_kgsl_syncsource_destroy(c.Struct):
SIZE = 16
id: Annotated[Annotated[int, ctypes.c_uint32], 0]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[3]], 4]
id: int
__pad: c.Array[ctypes.c_uint32, Literal[3]]
struct_kgsl_syncsource_destroy.register_fields([('id', ctypes.c_uint32, 0), ('__pad', c.Array[ctypes.c_uint32, Literal[3]], 4)])
@c.record
class struct_kgsl_syncsource_create_fence(c.Struct):
SIZE = 24
id: Annotated[Annotated[int, ctypes.c_uint32], 0]
fence_fd: Annotated[Annotated[int, ctypes.c_int32], 4]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[4]], 8]
id: int
fence_fd: int
__pad: c.Array[ctypes.c_uint32, Literal[4]]
struct_kgsl_syncsource_create_fence.register_fields([('id', ctypes.c_uint32, 0), ('fence_fd', ctypes.c_int32, 4), ('__pad', c.Array[ctypes.c_uint32, Literal[4]], 8)])
@c.record
class struct_kgsl_syncsource_signal_fence(c.Struct):
SIZE = 24
id: Annotated[Annotated[int, ctypes.c_uint32], 0]
fence_fd: Annotated[Annotated[int, ctypes.c_int32], 4]
__pad: Annotated[c.Array[Annotated[int, ctypes.c_uint32], Literal[4]], 8]
id: int
fence_fd: int
__pad: c.Array[ctypes.c_uint32, Literal[4]]
struct_kgsl_syncsource_signal_fence.register_fields([('id', ctypes.c_uint32, 0), ('fence_fd', ctypes.c_int32, 4), ('__pad', c.Array[ctypes.c_uint32, Literal[4]], 8)])
@c.record
class struct_kgsl_cff_sync_gpuobj(c.Struct):
SIZE = 24
offset: Annotated[Annotated[int, ctypes.c_uint64], 0]
length: Annotated[Annotated[int, ctypes.c_uint64], 8]
id: Annotated[Annotated[int, ctypes.c_uint32], 16]
offset: int
length: int
id: int
struct_kgsl_cff_sync_gpuobj.register_fields([('offset', ctypes.c_uint64, 0), ('length', ctypes.c_uint64, 8), ('id', ctypes.c_uint32, 16)])
@c.record
class struct_kgsl_gpuobj_alloc(c.Struct):
SIZE = 48
size: Annotated[Annotated[int, ctypes.c_uint64], 0]
flags: Annotated[Annotated[int, ctypes.c_uint64], 8]
va_len: Annotated[Annotated[int, ctypes.c_uint64], 16]
mmapsize: Annotated[Annotated[int, ctypes.c_uint64], 24]
id: Annotated[Annotated[int, ctypes.c_uint32], 32]
metadata_len: Annotated[Annotated[int, ctypes.c_uint32], 36]
metadata: Annotated[Annotated[int, ctypes.c_uint64], 40]
size: int
flags: int
va_len: int
mmapsize: int
id: int
metadata_len: int
metadata: int
struct_kgsl_gpuobj_alloc.register_fields([('size', ctypes.c_uint64, 0), ('flags', ctypes.c_uint64, 8), ('va_len', ctypes.c_uint64, 16), ('mmapsize', ctypes.c_uint64, 24), ('id', ctypes.c_uint32, 32), ('metadata_len', ctypes.c_uint32, 36), ('metadata', ctypes.c_uint64, 40)])
@c.record
class struct_kgsl_gpuobj_free(c.Struct):
SIZE = 32
flags: Annotated[Annotated[int, ctypes.c_uint64], 0]
priv: Annotated[Annotated[int, ctypes.c_uint64], 8]
id: Annotated[Annotated[int, ctypes.c_uint32], 16]
type: Annotated[Annotated[int, ctypes.c_uint32], 20]
len: Annotated[Annotated[int, ctypes.c_uint32], 24]
flags: int
priv: int
id: int
type: int
len: int
struct_kgsl_gpuobj_free.register_fields([('flags', ctypes.c_uint64, 0), ('priv', ctypes.c_uint64, 8), ('id', ctypes.c_uint32, 16), ('type', ctypes.c_uint32, 20), ('len', ctypes.c_uint32, 24)])
@c.record
class struct_kgsl_gpu_event_timestamp(c.Struct):
SIZE = 8
context_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 4]
context_id: int
timestamp: int
struct_kgsl_gpu_event_timestamp.register_fields([('context_id', ctypes.c_uint32, 0), ('timestamp', ctypes.c_uint32, 4)])
@c.record
class struct_kgsl_gpu_event_fence(c.Struct):
SIZE = 4
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
fd: int
struct_kgsl_gpu_event_fence.register_fields([('fd', ctypes.c_int32, 0)])
@c.record
class struct_kgsl_gpuobj_info(c.Struct):
SIZE = 48
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
flags: Annotated[Annotated[int, ctypes.c_uint64], 8]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
va_len: Annotated[Annotated[int, ctypes.c_uint64], 24]
va_addr: Annotated[Annotated[int, ctypes.c_uint64], 32]
id: Annotated[Annotated[int, ctypes.c_uint32], 40]
gpuaddr: int
flags: int
size: int
va_len: int
va_addr: int
id: int
struct_kgsl_gpuobj_info.register_fields([('gpuaddr', ctypes.c_uint64, 0), ('flags', ctypes.c_uint64, 8), ('size', ctypes.c_uint64, 16), ('va_len', ctypes.c_uint64, 24), ('va_addr', ctypes.c_uint64, 32), ('id', ctypes.c_uint32, 40)])
@c.record
class struct_kgsl_gpuobj_import(c.Struct):
SIZE = 32
priv: Annotated[Annotated[int, ctypes.c_uint64], 0]
priv_len: Annotated[Annotated[int, ctypes.c_uint64], 8]
flags: Annotated[Annotated[int, ctypes.c_uint64], 16]
type: Annotated[Annotated[int, ctypes.c_uint32], 24]
id: Annotated[Annotated[int, ctypes.c_uint32], 28]
priv: int
priv_len: int
flags: int
type: int
id: int
struct_kgsl_gpuobj_import.register_fields([('priv', ctypes.c_uint64, 0), ('priv_len', ctypes.c_uint64, 8), ('flags', ctypes.c_uint64, 16), ('type', ctypes.c_uint32, 24), ('id', ctypes.c_uint32, 28)])
@c.record
class struct_kgsl_gpuobj_import_dma_buf(c.Struct):
SIZE = 4
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
fd: int
struct_kgsl_gpuobj_import_dma_buf.register_fields([('fd', ctypes.c_int32, 0)])
@c.record
class struct_kgsl_gpuobj_import_useraddr(c.Struct):
SIZE = 8
virtaddr: Annotated[Annotated[int, ctypes.c_uint64], 0]
virtaddr: int
struct_kgsl_gpuobj_import_useraddr.register_fields([('virtaddr', ctypes.c_uint64, 0)])
@c.record
class struct_kgsl_gpuobj_sync_obj(c.Struct):
SIZE = 24
offset: Annotated[Annotated[int, ctypes.c_uint64], 0]
length: Annotated[Annotated[int, ctypes.c_uint64], 8]
id: Annotated[Annotated[int, ctypes.c_uint32], 16]
op: Annotated[Annotated[int, ctypes.c_uint32], 20]
offset: int
length: int
id: int
op: int
struct_kgsl_gpuobj_sync_obj.register_fields([('offset', ctypes.c_uint64, 0), ('length', ctypes.c_uint64, 8), ('id', ctypes.c_uint32, 16), ('op', ctypes.c_uint32, 20)])
@c.record
class struct_kgsl_gpuobj_sync(c.Struct):
SIZE = 16
objs: Annotated[Annotated[int, ctypes.c_uint64], 0]
obj_len: Annotated[Annotated[int, ctypes.c_uint32], 8]
count: Annotated[Annotated[int, ctypes.c_uint32], 12]
objs: int
obj_len: int
count: int
struct_kgsl_gpuobj_sync.register_fields([('objs', ctypes.c_uint64, 0), ('obj_len', ctypes.c_uint32, 8), ('count', ctypes.c_uint32, 12)])
@c.record
class struct_kgsl_command_object(c.Struct):
SIZE = 32
offset: Annotated[Annotated[int, ctypes.c_uint64], 0]
gpuaddr: Annotated[Annotated[int, ctypes.c_uint64], 8]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
flags: Annotated[Annotated[int, ctypes.c_uint32], 24]
id: Annotated[Annotated[int, ctypes.c_uint32], 28]
offset: int
gpuaddr: int
size: int
flags: int
id: int
struct_kgsl_command_object.register_fields([('offset', ctypes.c_uint64, 0), ('gpuaddr', ctypes.c_uint64, 8), ('size', ctypes.c_uint64, 16), ('flags', ctypes.c_uint32, 24), ('id', ctypes.c_uint32, 28)])
@c.record
class struct_kgsl_command_syncpoint(c.Struct):
SIZE = 24
priv: Annotated[Annotated[int, ctypes.c_uint64], 0]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
type: Annotated[Annotated[int, ctypes.c_uint32], 16]
priv: int
size: int
type: int
struct_kgsl_command_syncpoint.register_fields([('priv', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('type', ctypes.c_uint32, 16)])
@c.record
class struct_kgsl_gpu_command(c.Struct):
SIZE = 64
flags: Annotated[Annotated[int, ctypes.c_uint64], 0]
cmdlist: Annotated[Annotated[int, ctypes.c_uint64], 8]
cmdsize: Annotated[Annotated[int, ctypes.c_uint32], 16]
numcmds: Annotated[Annotated[int, ctypes.c_uint32], 20]
objlist: Annotated[Annotated[int, ctypes.c_uint64], 24]
objsize: Annotated[Annotated[int, ctypes.c_uint32], 32]
numobjs: Annotated[Annotated[int, ctypes.c_uint32], 36]
synclist: Annotated[Annotated[int, ctypes.c_uint64], 40]
syncsize: Annotated[Annotated[int, ctypes.c_uint32], 48]
numsyncs: Annotated[Annotated[int, ctypes.c_uint32], 52]
context_id: Annotated[Annotated[int, ctypes.c_uint32], 56]
timestamp: Annotated[Annotated[int, ctypes.c_uint32], 60]
flags: int
cmdlist: int
cmdsize: int
numcmds: int
objlist: int
objsize: int
numobjs: int
synclist: int
syncsize: int
numsyncs: int
context_id: int
timestamp: int
struct_kgsl_gpu_command.register_fields([('flags', ctypes.c_uint64, 0), ('cmdlist', ctypes.c_uint64, 8), ('cmdsize', ctypes.c_uint32, 16), ('numcmds', ctypes.c_uint32, 20), ('objlist', ctypes.c_uint64, 24), ('objsize', ctypes.c_uint32, 32), ('numobjs', ctypes.c_uint32, 36), ('synclist', ctypes.c_uint64, 40), ('syncsize', ctypes.c_uint32, 48), ('numsyncs', ctypes.c_uint32, 52), ('context_id', ctypes.c_uint32, 56), ('timestamp', ctypes.c_uint32, 60)])
@c.record
class struct_kgsl_preemption_counters_query(c.Struct):
SIZE = 24
counters: Annotated[Annotated[int, ctypes.c_uint64], 0]
size_user: Annotated[Annotated[int, ctypes.c_uint32], 8]
size_priority_level: Annotated[Annotated[int, ctypes.c_uint32], 12]
max_priority_level: Annotated[Annotated[int, ctypes.c_uint32], 16]
counters: int
size_user: int
size_priority_level: int
max_priority_level: int
struct_kgsl_preemption_counters_query.register_fields([('counters', ctypes.c_uint64, 0), ('size_user', ctypes.c_uint32, 8), ('size_priority_level', ctypes.c_uint32, 12), ('max_priority_level', ctypes.c_uint32, 16)])
@c.record
class struct_kgsl_gpuobj_set_info(c.Struct):
SIZE = 32
flags: Annotated[Annotated[int, ctypes.c_uint64], 0]
metadata: Annotated[Annotated[int, ctypes.c_uint64], 8]
id: Annotated[Annotated[int, ctypes.c_uint32], 16]
metadata_len: Annotated[Annotated[int, ctypes.c_uint32], 20]
type: Annotated[Annotated[int, ctypes.c_uint32], 24]
c.init_records()
flags: int
metadata: int
id: int
metadata_len: int
type: int
struct_kgsl_gpuobj_set_info.register_fields([('flags', ctypes.c_uint64, 0), ('metadata', ctypes.c_uint64, 8), ('id', ctypes.c_uint32, 16), ('metadata_len', ctypes.c_uint32, 20), ('type', ctypes.c_uint32, 24)])
KGSL_VERSION_MAJOR = 3 # type: ignore
KGSL_VERSION_MINOR = 14 # type: ignore
KGSL_CONTEXT_SAVE_GMEM = 0x00000001 # type: ignore

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,604 +1,467 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
dll = c.DLL('libusb', 'usb-1.0')
class enum_libusb_class_code(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_CLASS_PER_INTERFACE = enum_libusb_class_code.define('LIBUSB_CLASS_PER_INTERFACE', 0)
LIBUSB_CLASS_AUDIO = enum_libusb_class_code.define('LIBUSB_CLASS_AUDIO', 1)
LIBUSB_CLASS_COMM = enum_libusb_class_code.define('LIBUSB_CLASS_COMM', 2)
LIBUSB_CLASS_HID = enum_libusb_class_code.define('LIBUSB_CLASS_HID', 3)
LIBUSB_CLASS_PHYSICAL = enum_libusb_class_code.define('LIBUSB_CLASS_PHYSICAL', 5)
LIBUSB_CLASS_IMAGE = enum_libusb_class_code.define('LIBUSB_CLASS_IMAGE', 6)
LIBUSB_CLASS_PTP = enum_libusb_class_code.define('LIBUSB_CLASS_PTP', 6)
LIBUSB_CLASS_PRINTER = enum_libusb_class_code.define('LIBUSB_CLASS_PRINTER', 7)
LIBUSB_CLASS_MASS_STORAGE = enum_libusb_class_code.define('LIBUSB_CLASS_MASS_STORAGE', 8)
LIBUSB_CLASS_HUB = enum_libusb_class_code.define('LIBUSB_CLASS_HUB', 9)
LIBUSB_CLASS_DATA = enum_libusb_class_code.define('LIBUSB_CLASS_DATA', 10)
LIBUSB_CLASS_SMART_CARD = enum_libusb_class_code.define('LIBUSB_CLASS_SMART_CARD', 11)
LIBUSB_CLASS_CONTENT_SECURITY = enum_libusb_class_code.define('LIBUSB_CLASS_CONTENT_SECURITY', 13)
LIBUSB_CLASS_VIDEO = enum_libusb_class_code.define('LIBUSB_CLASS_VIDEO', 14)
LIBUSB_CLASS_PERSONAL_HEALTHCARE = enum_libusb_class_code.define('LIBUSB_CLASS_PERSONAL_HEALTHCARE', 15)
LIBUSB_CLASS_DIAGNOSTIC_DEVICE = enum_libusb_class_code.define('LIBUSB_CLASS_DIAGNOSTIC_DEVICE', 220)
LIBUSB_CLASS_WIRELESS = enum_libusb_class_code.define('LIBUSB_CLASS_WIRELESS', 224)
LIBUSB_CLASS_MISCELLANEOUS = enum_libusb_class_code.define('LIBUSB_CLASS_MISCELLANEOUS', 239)
LIBUSB_CLASS_APPLICATION = enum_libusb_class_code.define('LIBUSB_CLASS_APPLICATION', 254)
LIBUSB_CLASS_VENDOR_SPEC = enum_libusb_class_code.define('LIBUSB_CLASS_VENDOR_SPEC', 255)
class enum_libusb_descriptor_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_DT_DEVICE = enum_libusb_descriptor_type.define('LIBUSB_DT_DEVICE', 1)
LIBUSB_DT_CONFIG = enum_libusb_descriptor_type.define('LIBUSB_DT_CONFIG', 2)
LIBUSB_DT_STRING = enum_libusb_descriptor_type.define('LIBUSB_DT_STRING', 3)
LIBUSB_DT_INTERFACE = enum_libusb_descriptor_type.define('LIBUSB_DT_INTERFACE', 4)
LIBUSB_DT_ENDPOINT = enum_libusb_descriptor_type.define('LIBUSB_DT_ENDPOINT', 5)
LIBUSB_DT_INTERFACE_ASSOCIATION = enum_libusb_descriptor_type.define('LIBUSB_DT_INTERFACE_ASSOCIATION', 11)
LIBUSB_DT_BOS = enum_libusb_descriptor_type.define('LIBUSB_DT_BOS', 15)
LIBUSB_DT_DEVICE_CAPABILITY = enum_libusb_descriptor_type.define('LIBUSB_DT_DEVICE_CAPABILITY', 16)
LIBUSB_DT_HID = enum_libusb_descriptor_type.define('LIBUSB_DT_HID', 33)
LIBUSB_DT_REPORT = enum_libusb_descriptor_type.define('LIBUSB_DT_REPORT', 34)
LIBUSB_DT_PHYSICAL = enum_libusb_descriptor_type.define('LIBUSB_DT_PHYSICAL', 35)
LIBUSB_DT_HUB = enum_libusb_descriptor_type.define('LIBUSB_DT_HUB', 41)
LIBUSB_DT_SUPERSPEED_HUB = enum_libusb_descriptor_type.define('LIBUSB_DT_SUPERSPEED_HUB', 42)
LIBUSB_DT_SS_ENDPOINT_COMPANION = enum_libusb_descriptor_type.define('LIBUSB_DT_SS_ENDPOINT_COMPANION', 48)
class enum_libusb_endpoint_direction(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_ENDPOINT_OUT = enum_libusb_endpoint_direction.define('LIBUSB_ENDPOINT_OUT', 0)
LIBUSB_ENDPOINT_IN = enum_libusb_endpoint_direction.define('LIBUSB_ENDPOINT_IN', 128)
class enum_libusb_endpoint_transfer_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_ENDPOINT_TRANSFER_TYPE_CONTROL = enum_libusb_endpoint_transfer_type.define('LIBUSB_ENDPOINT_TRANSFER_TYPE_CONTROL', 0)
LIBUSB_ENDPOINT_TRANSFER_TYPE_ISOCHRONOUS = enum_libusb_endpoint_transfer_type.define('LIBUSB_ENDPOINT_TRANSFER_TYPE_ISOCHRONOUS', 1)
LIBUSB_ENDPOINT_TRANSFER_TYPE_BULK = enum_libusb_endpoint_transfer_type.define('LIBUSB_ENDPOINT_TRANSFER_TYPE_BULK', 2)
LIBUSB_ENDPOINT_TRANSFER_TYPE_INTERRUPT = enum_libusb_endpoint_transfer_type.define('LIBUSB_ENDPOINT_TRANSFER_TYPE_INTERRUPT', 3)
class enum_libusb_standard_request(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_REQUEST_GET_STATUS = enum_libusb_standard_request.define('LIBUSB_REQUEST_GET_STATUS', 0)
LIBUSB_REQUEST_CLEAR_FEATURE = enum_libusb_standard_request.define('LIBUSB_REQUEST_CLEAR_FEATURE', 1)
LIBUSB_REQUEST_SET_FEATURE = enum_libusb_standard_request.define('LIBUSB_REQUEST_SET_FEATURE', 3)
LIBUSB_REQUEST_SET_ADDRESS = enum_libusb_standard_request.define('LIBUSB_REQUEST_SET_ADDRESS', 5)
LIBUSB_REQUEST_GET_DESCRIPTOR = enum_libusb_standard_request.define('LIBUSB_REQUEST_GET_DESCRIPTOR', 6)
LIBUSB_REQUEST_SET_DESCRIPTOR = enum_libusb_standard_request.define('LIBUSB_REQUEST_SET_DESCRIPTOR', 7)
LIBUSB_REQUEST_GET_CONFIGURATION = enum_libusb_standard_request.define('LIBUSB_REQUEST_GET_CONFIGURATION', 8)
LIBUSB_REQUEST_SET_CONFIGURATION = enum_libusb_standard_request.define('LIBUSB_REQUEST_SET_CONFIGURATION', 9)
LIBUSB_REQUEST_GET_INTERFACE = enum_libusb_standard_request.define('LIBUSB_REQUEST_GET_INTERFACE', 10)
LIBUSB_REQUEST_SET_INTERFACE = enum_libusb_standard_request.define('LIBUSB_REQUEST_SET_INTERFACE', 11)
LIBUSB_REQUEST_SYNCH_FRAME = enum_libusb_standard_request.define('LIBUSB_REQUEST_SYNCH_FRAME', 12)
LIBUSB_REQUEST_SET_SEL = enum_libusb_standard_request.define('LIBUSB_REQUEST_SET_SEL', 48)
LIBUSB_SET_ISOCH_DELAY = enum_libusb_standard_request.define('LIBUSB_SET_ISOCH_DELAY', 49)
class enum_libusb_request_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_REQUEST_TYPE_STANDARD = enum_libusb_request_type.define('LIBUSB_REQUEST_TYPE_STANDARD', 0)
LIBUSB_REQUEST_TYPE_CLASS = enum_libusb_request_type.define('LIBUSB_REQUEST_TYPE_CLASS', 32)
LIBUSB_REQUEST_TYPE_VENDOR = enum_libusb_request_type.define('LIBUSB_REQUEST_TYPE_VENDOR', 64)
LIBUSB_REQUEST_TYPE_RESERVED = enum_libusb_request_type.define('LIBUSB_REQUEST_TYPE_RESERVED', 96)
class enum_libusb_request_recipient(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_RECIPIENT_DEVICE = enum_libusb_request_recipient.define('LIBUSB_RECIPIENT_DEVICE', 0)
LIBUSB_RECIPIENT_INTERFACE = enum_libusb_request_recipient.define('LIBUSB_RECIPIENT_INTERFACE', 1)
LIBUSB_RECIPIENT_ENDPOINT = enum_libusb_request_recipient.define('LIBUSB_RECIPIENT_ENDPOINT', 2)
LIBUSB_RECIPIENT_OTHER = enum_libusb_request_recipient.define('LIBUSB_RECIPIENT_OTHER', 3)
class enum_libusb_iso_sync_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_ISO_SYNC_TYPE_NONE = enum_libusb_iso_sync_type.define('LIBUSB_ISO_SYNC_TYPE_NONE', 0)
LIBUSB_ISO_SYNC_TYPE_ASYNC = enum_libusb_iso_sync_type.define('LIBUSB_ISO_SYNC_TYPE_ASYNC', 1)
LIBUSB_ISO_SYNC_TYPE_ADAPTIVE = enum_libusb_iso_sync_type.define('LIBUSB_ISO_SYNC_TYPE_ADAPTIVE', 2)
LIBUSB_ISO_SYNC_TYPE_SYNC = enum_libusb_iso_sync_type.define('LIBUSB_ISO_SYNC_TYPE_SYNC', 3)
class enum_libusb_iso_usage_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_ISO_USAGE_TYPE_DATA = enum_libusb_iso_usage_type.define('LIBUSB_ISO_USAGE_TYPE_DATA', 0)
LIBUSB_ISO_USAGE_TYPE_FEEDBACK = enum_libusb_iso_usage_type.define('LIBUSB_ISO_USAGE_TYPE_FEEDBACK', 1)
LIBUSB_ISO_USAGE_TYPE_IMPLICIT = enum_libusb_iso_usage_type.define('LIBUSB_ISO_USAGE_TYPE_IMPLICIT', 2)
class enum_libusb_supported_speed(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_LOW_SPEED_OPERATION = enum_libusb_supported_speed.define('LIBUSB_LOW_SPEED_OPERATION', 1)
LIBUSB_FULL_SPEED_OPERATION = enum_libusb_supported_speed.define('LIBUSB_FULL_SPEED_OPERATION', 2)
LIBUSB_HIGH_SPEED_OPERATION = enum_libusb_supported_speed.define('LIBUSB_HIGH_SPEED_OPERATION', 4)
LIBUSB_SUPER_SPEED_OPERATION = enum_libusb_supported_speed.define('LIBUSB_SUPER_SPEED_OPERATION', 8)
class enum_libusb_usb_2_0_extension_attributes(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_BM_LPM_SUPPORT = enum_libusb_usb_2_0_extension_attributes.define('LIBUSB_BM_LPM_SUPPORT', 2)
class enum_libusb_ss_usb_device_capability_attributes(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_BM_LTM_SUPPORT = enum_libusb_ss_usb_device_capability_attributes.define('LIBUSB_BM_LTM_SUPPORT', 2)
class enum_libusb_bos_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY = enum_libusb_bos_type.define('LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY', 1)
LIBUSB_BT_USB_2_0_EXTENSION = enum_libusb_bos_type.define('LIBUSB_BT_USB_2_0_EXTENSION', 2)
LIBUSB_BT_SS_USB_DEVICE_CAPABILITY = enum_libusb_bos_type.define('LIBUSB_BT_SS_USB_DEVICE_CAPABILITY', 3)
LIBUSB_BT_CONTAINER_ID = enum_libusb_bos_type.define('LIBUSB_BT_CONTAINER_ID', 4)
LIBUSB_BT_PLATFORM_DESCRIPTOR = enum_libusb_bos_type.define('LIBUSB_BT_PLATFORM_DESCRIPTOR', 5)
enum_libusb_class_code: dict[int, str] = {(LIBUSB_CLASS_PER_INTERFACE:=0): 'LIBUSB_CLASS_PER_INTERFACE', (LIBUSB_CLASS_AUDIO:=1): 'LIBUSB_CLASS_AUDIO', (LIBUSB_CLASS_COMM:=2): 'LIBUSB_CLASS_COMM', (LIBUSB_CLASS_HID:=3): 'LIBUSB_CLASS_HID', (LIBUSB_CLASS_PHYSICAL:=5): 'LIBUSB_CLASS_PHYSICAL', (LIBUSB_CLASS_IMAGE:=6): 'LIBUSB_CLASS_IMAGE', (LIBUSB_CLASS_PTP:=6): 'LIBUSB_CLASS_PTP', (LIBUSB_CLASS_PRINTER:=7): 'LIBUSB_CLASS_PRINTER', (LIBUSB_CLASS_MASS_STORAGE:=8): 'LIBUSB_CLASS_MASS_STORAGE', (LIBUSB_CLASS_HUB:=9): 'LIBUSB_CLASS_HUB', (LIBUSB_CLASS_DATA:=10): 'LIBUSB_CLASS_DATA', (LIBUSB_CLASS_SMART_CARD:=11): 'LIBUSB_CLASS_SMART_CARD', (LIBUSB_CLASS_CONTENT_SECURITY:=13): 'LIBUSB_CLASS_CONTENT_SECURITY', (LIBUSB_CLASS_VIDEO:=14): 'LIBUSB_CLASS_VIDEO', (LIBUSB_CLASS_PERSONAL_HEALTHCARE:=15): 'LIBUSB_CLASS_PERSONAL_HEALTHCARE', (LIBUSB_CLASS_DIAGNOSTIC_DEVICE:=220): 'LIBUSB_CLASS_DIAGNOSTIC_DEVICE', (LIBUSB_CLASS_WIRELESS:=224): 'LIBUSB_CLASS_WIRELESS', (LIBUSB_CLASS_MISCELLANEOUS:=239): 'LIBUSB_CLASS_MISCELLANEOUS', (LIBUSB_CLASS_APPLICATION:=254): 'LIBUSB_CLASS_APPLICATION', (LIBUSB_CLASS_VENDOR_SPEC:=255): 'LIBUSB_CLASS_VENDOR_SPEC'}
enum_libusb_descriptor_type: dict[int, str] = {(LIBUSB_DT_DEVICE:=1): 'LIBUSB_DT_DEVICE', (LIBUSB_DT_CONFIG:=2): 'LIBUSB_DT_CONFIG', (LIBUSB_DT_STRING:=3): 'LIBUSB_DT_STRING', (LIBUSB_DT_INTERFACE:=4): 'LIBUSB_DT_INTERFACE', (LIBUSB_DT_ENDPOINT:=5): 'LIBUSB_DT_ENDPOINT', (LIBUSB_DT_INTERFACE_ASSOCIATION:=11): 'LIBUSB_DT_INTERFACE_ASSOCIATION', (LIBUSB_DT_BOS:=15): 'LIBUSB_DT_BOS', (LIBUSB_DT_DEVICE_CAPABILITY:=16): 'LIBUSB_DT_DEVICE_CAPABILITY', (LIBUSB_DT_HID:=33): 'LIBUSB_DT_HID', (LIBUSB_DT_REPORT:=34): 'LIBUSB_DT_REPORT', (LIBUSB_DT_PHYSICAL:=35): 'LIBUSB_DT_PHYSICAL', (LIBUSB_DT_HUB:=41): 'LIBUSB_DT_HUB', (LIBUSB_DT_SUPERSPEED_HUB:=42): 'LIBUSB_DT_SUPERSPEED_HUB', (LIBUSB_DT_SS_ENDPOINT_COMPANION:=48): 'LIBUSB_DT_SS_ENDPOINT_COMPANION'}
enum_libusb_endpoint_direction: dict[int, str] = {(LIBUSB_ENDPOINT_OUT:=0): 'LIBUSB_ENDPOINT_OUT', (LIBUSB_ENDPOINT_IN:=128): 'LIBUSB_ENDPOINT_IN'}
enum_libusb_endpoint_transfer_type: dict[int, str] = {(LIBUSB_ENDPOINT_TRANSFER_TYPE_CONTROL:=0): 'LIBUSB_ENDPOINT_TRANSFER_TYPE_CONTROL', (LIBUSB_ENDPOINT_TRANSFER_TYPE_ISOCHRONOUS:=1): 'LIBUSB_ENDPOINT_TRANSFER_TYPE_ISOCHRONOUS', (LIBUSB_ENDPOINT_TRANSFER_TYPE_BULK:=2): 'LIBUSB_ENDPOINT_TRANSFER_TYPE_BULK', (LIBUSB_ENDPOINT_TRANSFER_TYPE_INTERRUPT:=3): 'LIBUSB_ENDPOINT_TRANSFER_TYPE_INTERRUPT'}
enum_libusb_standard_request: dict[int, str] = {(LIBUSB_REQUEST_GET_STATUS:=0): 'LIBUSB_REQUEST_GET_STATUS', (LIBUSB_REQUEST_CLEAR_FEATURE:=1): 'LIBUSB_REQUEST_CLEAR_FEATURE', (LIBUSB_REQUEST_SET_FEATURE:=3): 'LIBUSB_REQUEST_SET_FEATURE', (LIBUSB_REQUEST_SET_ADDRESS:=5): 'LIBUSB_REQUEST_SET_ADDRESS', (LIBUSB_REQUEST_GET_DESCRIPTOR:=6): 'LIBUSB_REQUEST_GET_DESCRIPTOR', (LIBUSB_REQUEST_SET_DESCRIPTOR:=7): 'LIBUSB_REQUEST_SET_DESCRIPTOR', (LIBUSB_REQUEST_GET_CONFIGURATION:=8): 'LIBUSB_REQUEST_GET_CONFIGURATION', (LIBUSB_REQUEST_SET_CONFIGURATION:=9): 'LIBUSB_REQUEST_SET_CONFIGURATION', (LIBUSB_REQUEST_GET_INTERFACE:=10): 'LIBUSB_REQUEST_GET_INTERFACE', (LIBUSB_REQUEST_SET_INTERFACE:=11): 'LIBUSB_REQUEST_SET_INTERFACE', (LIBUSB_REQUEST_SYNCH_FRAME:=12): 'LIBUSB_REQUEST_SYNCH_FRAME', (LIBUSB_REQUEST_SET_SEL:=48): 'LIBUSB_REQUEST_SET_SEL', (LIBUSB_SET_ISOCH_DELAY:=49): 'LIBUSB_SET_ISOCH_DELAY'}
enum_libusb_request_type: dict[int, str] = {(LIBUSB_REQUEST_TYPE_STANDARD:=0): 'LIBUSB_REQUEST_TYPE_STANDARD', (LIBUSB_REQUEST_TYPE_CLASS:=32): 'LIBUSB_REQUEST_TYPE_CLASS', (LIBUSB_REQUEST_TYPE_VENDOR:=64): 'LIBUSB_REQUEST_TYPE_VENDOR', (LIBUSB_REQUEST_TYPE_RESERVED:=96): 'LIBUSB_REQUEST_TYPE_RESERVED'}
enum_libusb_request_recipient: dict[int, str] = {(LIBUSB_RECIPIENT_DEVICE:=0): 'LIBUSB_RECIPIENT_DEVICE', (LIBUSB_RECIPIENT_INTERFACE:=1): 'LIBUSB_RECIPIENT_INTERFACE', (LIBUSB_RECIPIENT_ENDPOINT:=2): 'LIBUSB_RECIPIENT_ENDPOINT', (LIBUSB_RECIPIENT_OTHER:=3): 'LIBUSB_RECIPIENT_OTHER'}
enum_libusb_iso_sync_type: dict[int, str] = {(LIBUSB_ISO_SYNC_TYPE_NONE:=0): 'LIBUSB_ISO_SYNC_TYPE_NONE', (LIBUSB_ISO_SYNC_TYPE_ASYNC:=1): 'LIBUSB_ISO_SYNC_TYPE_ASYNC', (LIBUSB_ISO_SYNC_TYPE_ADAPTIVE:=2): 'LIBUSB_ISO_SYNC_TYPE_ADAPTIVE', (LIBUSB_ISO_SYNC_TYPE_SYNC:=3): 'LIBUSB_ISO_SYNC_TYPE_SYNC'}
enum_libusb_iso_usage_type: dict[int, str] = {(LIBUSB_ISO_USAGE_TYPE_DATA:=0): 'LIBUSB_ISO_USAGE_TYPE_DATA', (LIBUSB_ISO_USAGE_TYPE_FEEDBACK:=1): 'LIBUSB_ISO_USAGE_TYPE_FEEDBACK', (LIBUSB_ISO_USAGE_TYPE_IMPLICIT:=2): 'LIBUSB_ISO_USAGE_TYPE_IMPLICIT'}
enum_libusb_supported_speed: dict[int, str] = {(LIBUSB_LOW_SPEED_OPERATION:=1): 'LIBUSB_LOW_SPEED_OPERATION', (LIBUSB_FULL_SPEED_OPERATION:=2): 'LIBUSB_FULL_SPEED_OPERATION', (LIBUSB_HIGH_SPEED_OPERATION:=4): 'LIBUSB_HIGH_SPEED_OPERATION', (LIBUSB_SUPER_SPEED_OPERATION:=8): 'LIBUSB_SUPER_SPEED_OPERATION'}
enum_libusb_usb_2_0_extension_attributes: dict[int, str] = {(LIBUSB_BM_LPM_SUPPORT:=2): 'LIBUSB_BM_LPM_SUPPORT'}
enum_libusb_ss_usb_device_capability_attributes: dict[int, str] = {(LIBUSB_BM_LTM_SUPPORT:=2): 'LIBUSB_BM_LTM_SUPPORT'}
enum_libusb_bos_type: dict[int, str] = {(LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY:=1): 'LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY', (LIBUSB_BT_USB_2_0_EXTENSION:=2): 'LIBUSB_BT_USB_2_0_EXTENSION', (LIBUSB_BT_SS_USB_DEVICE_CAPABILITY:=3): 'LIBUSB_BT_SS_USB_DEVICE_CAPABILITY', (LIBUSB_BT_CONTAINER_ID:=4): 'LIBUSB_BT_CONTAINER_ID', (LIBUSB_BT_PLATFORM_DESCRIPTOR:=5): 'LIBUSB_BT_PLATFORM_DESCRIPTOR'}
@c.record
class struct_libusb_device_descriptor(c.Struct):
SIZE = 18
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bcdUSB: Annotated[uint16_t, 2]
bDeviceClass: Annotated[uint8_t, 4]
bDeviceSubClass: Annotated[uint8_t, 5]
bDeviceProtocol: Annotated[uint8_t, 6]
bMaxPacketSize0: Annotated[uint8_t, 7]
idVendor: Annotated[uint16_t, 8]
idProduct: Annotated[uint16_t, 10]
bcdDevice: Annotated[uint16_t, 12]
iManufacturer: Annotated[uint8_t, 14]
iProduct: Annotated[uint8_t, 15]
iSerialNumber: Annotated[uint8_t, 16]
bNumConfigurations: Annotated[uint8_t, 17]
uint8_t: TypeAlias = Annotated[int, ctypes.c_ubyte]
uint16_t: TypeAlias = Annotated[int, ctypes.c_uint16]
bLength: int
bDescriptorType: int
bcdUSB: int
bDeviceClass: int
bDeviceSubClass: int
bDeviceProtocol: int
bMaxPacketSize0: int
idVendor: int
idProduct: int
bcdDevice: int
iManufacturer: int
iProduct: int
iSerialNumber: int
bNumConfigurations: int
uint8_t: TypeAlias = ctypes.c_ubyte
uint16_t: TypeAlias = ctypes.c_uint16
struct_libusb_device_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bcdUSB', uint16_t, 2), ('bDeviceClass', uint8_t, 4), ('bDeviceSubClass', uint8_t, 5), ('bDeviceProtocol', uint8_t, 6), ('bMaxPacketSize0', uint8_t, 7), ('idVendor', uint16_t, 8), ('idProduct', uint16_t, 10), ('bcdDevice', uint16_t, 12), ('iManufacturer', uint8_t, 14), ('iProduct', uint8_t, 15), ('iSerialNumber', uint8_t, 16), ('bNumConfigurations', uint8_t, 17)])
@c.record
class struct_libusb_endpoint_descriptor(c.Struct):
SIZE = 32
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bEndpointAddress: Annotated[uint8_t, 2]
bmAttributes: Annotated[uint8_t, 3]
wMaxPacketSize: Annotated[uint16_t, 4]
bInterval: Annotated[uint8_t, 6]
bRefresh: Annotated[uint8_t, 7]
bSynchAddress: Annotated[uint8_t, 8]
extra: Annotated[c.POINTER[Annotated[int, ctypes.c_ubyte]], 16]
extra_length: Annotated[Annotated[int, ctypes.c_int32], 24]
bLength: int
bDescriptorType: int
bEndpointAddress: int
bmAttributes: int
wMaxPacketSize: int
bInterval: int
bRefresh: int
bSynchAddress: int
extra: c.POINTER[ctypes.c_ubyte]
extra_length: int
struct_libusb_endpoint_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bEndpointAddress', uint8_t, 2), ('bmAttributes', uint8_t, 3), ('wMaxPacketSize', uint16_t, 4), ('bInterval', uint8_t, 6), ('bRefresh', uint8_t, 7), ('bSynchAddress', uint8_t, 8), ('extra', c.POINTER[ctypes.c_ubyte], 16), ('extra_length', ctypes.c_int32, 24)])
@c.record
class struct_libusb_interface_association_descriptor(c.Struct):
SIZE = 8
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bFirstInterface: Annotated[uint8_t, 2]
bInterfaceCount: Annotated[uint8_t, 3]
bFunctionClass: Annotated[uint8_t, 4]
bFunctionSubClass: Annotated[uint8_t, 5]
bFunctionProtocol: Annotated[uint8_t, 6]
iFunction: Annotated[uint8_t, 7]
bLength: int
bDescriptorType: int
bFirstInterface: int
bInterfaceCount: int
bFunctionClass: int
bFunctionSubClass: int
bFunctionProtocol: int
iFunction: int
struct_libusb_interface_association_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bFirstInterface', uint8_t, 2), ('bInterfaceCount', uint8_t, 3), ('bFunctionClass', uint8_t, 4), ('bFunctionSubClass', uint8_t, 5), ('bFunctionProtocol', uint8_t, 6), ('iFunction', uint8_t, 7)])
@c.record
class struct_libusb_interface_association_descriptor_array(c.Struct):
SIZE = 16
iad: Annotated[c.POINTER[struct_libusb_interface_association_descriptor], 0]
length: Annotated[Annotated[int, ctypes.c_int32], 8]
iad: c.POINTER[struct_libusb_interface_association_descriptor]
length: int
struct_libusb_interface_association_descriptor_array.register_fields([('iad', c.POINTER[struct_libusb_interface_association_descriptor], 0), ('length', ctypes.c_int32, 8)])
@c.record
class struct_libusb_interface_descriptor(c.Struct):
SIZE = 40
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bInterfaceNumber: Annotated[uint8_t, 2]
bAlternateSetting: Annotated[uint8_t, 3]
bNumEndpoints: Annotated[uint8_t, 4]
bInterfaceClass: Annotated[uint8_t, 5]
bInterfaceSubClass: Annotated[uint8_t, 6]
bInterfaceProtocol: Annotated[uint8_t, 7]
iInterface: Annotated[uint8_t, 8]
endpoint: Annotated[c.POINTER[struct_libusb_endpoint_descriptor], 16]
extra: Annotated[c.POINTER[Annotated[int, ctypes.c_ubyte]], 24]
extra_length: Annotated[Annotated[int, ctypes.c_int32], 32]
bLength: int
bDescriptorType: int
bInterfaceNumber: int
bAlternateSetting: int
bNumEndpoints: int
bInterfaceClass: int
bInterfaceSubClass: int
bInterfaceProtocol: int
iInterface: int
endpoint: c.POINTER[struct_libusb_endpoint_descriptor]
extra: c.POINTER[ctypes.c_ubyte]
extra_length: int
struct_libusb_interface_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bInterfaceNumber', uint8_t, 2), ('bAlternateSetting', uint8_t, 3), ('bNumEndpoints', uint8_t, 4), ('bInterfaceClass', uint8_t, 5), ('bInterfaceSubClass', uint8_t, 6), ('bInterfaceProtocol', uint8_t, 7), ('iInterface', uint8_t, 8), ('endpoint', c.POINTER[struct_libusb_endpoint_descriptor], 16), ('extra', c.POINTER[ctypes.c_ubyte], 24), ('extra_length', ctypes.c_int32, 32)])
@c.record
class struct_libusb_interface(c.Struct):
SIZE = 16
altsetting: Annotated[c.POINTER[struct_libusb_interface_descriptor], 0]
num_altsetting: Annotated[Annotated[int, ctypes.c_int32], 8]
altsetting: c.POINTER[struct_libusb_interface_descriptor]
num_altsetting: int
struct_libusb_interface.register_fields([('altsetting', c.POINTER[struct_libusb_interface_descriptor], 0), ('num_altsetting', ctypes.c_int32, 8)])
@c.record
class struct_libusb_config_descriptor(c.Struct):
SIZE = 40
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
wTotalLength: Annotated[uint16_t, 2]
bNumInterfaces: Annotated[uint8_t, 4]
bConfigurationValue: Annotated[uint8_t, 5]
iConfiguration: Annotated[uint8_t, 6]
bmAttributes: Annotated[uint8_t, 7]
MaxPower: Annotated[uint8_t, 8]
interface: Annotated[c.POINTER[struct_libusb_interface], 16]
extra: Annotated[c.POINTER[Annotated[int, ctypes.c_ubyte]], 24]
extra_length: Annotated[Annotated[int, ctypes.c_int32], 32]
bLength: int
bDescriptorType: int
wTotalLength: int
bNumInterfaces: int
bConfigurationValue: int
iConfiguration: int
bmAttributes: int
MaxPower: int
interface: c.POINTER[struct_libusb_interface]
extra: c.POINTER[ctypes.c_ubyte]
extra_length: int
struct_libusb_config_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('wTotalLength', uint16_t, 2), ('bNumInterfaces', uint8_t, 4), ('bConfigurationValue', uint8_t, 5), ('iConfiguration', uint8_t, 6), ('bmAttributes', uint8_t, 7), ('MaxPower', uint8_t, 8), ('interface', c.POINTER[struct_libusb_interface], 16), ('extra', c.POINTER[ctypes.c_ubyte], 24), ('extra_length', ctypes.c_int32, 32)])
@c.record
class struct_libusb_ss_endpoint_companion_descriptor(c.Struct):
SIZE = 6
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bMaxBurst: Annotated[uint8_t, 2]
bmAttributes: Annotated[uint8_t, 3]
wBytesPerInterval: Annotated[uint16_t, 4]
bLength: int
bDescriptorType: int
bMaxBurst: int
bmAttributes: int
wBytesPerInterval: int
struct_libusb_ss_endpoint_companion_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bMaxBurst', uint8_t, 2), ('bmAttributes', uint8_t, 3), ('wBytesPerInterval', uint16_t, 4)])
@c.record
class struct_libusb_bos_dev_capability_descriptor(c.Struct):
SIZE = 3
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bDevCapabilityType: Annotated[uint8_t, 2]
dev_capability_data: Annotated[c.Array[uint8_t, Literal[0]], 3]
bLength: int
bDescriptorType: int
bDevCapabilityType: int
dev_capability_data: c.Array[ctypes.c_ubyte, Literal[0]]
struct_libusb_bos_dev_capability_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bDevCapabilityType', uint8_t, 2), ('dev_capability_data', c.Array[uint8_t, Literal[0]], 3)])
@c.record
class struct_libusb_bos_descriptor(c.Struct):
SIZE = 8
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
wTotalLength: Annotated[uint16_t, 2]
bNumDeviceCaps: Annotated[uint8_t, 4]
dev_capability: Annotated[c.Array[c.POINTER[struct_libusb_bos_dev_capability_descriptor], Literal[0]], 8]
bLength: int
bDescriptorType: int
wTotalLength: int
bNumDeviceCaps: int
dev_capability: c.Array[c.POINTER[struct_libusb_bos_dev_capability_descriptor], Literal[0]]
struct_libusb_bos_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('wTotalLength', uint16_t, 2), ('bNumDeviceCaps', uint8_t, 4), ('dev_capability', c.Array[c.POINTER[struct_libusb_bos_dev_capability_descriptor], Literal[0]], 8)])
@c.record
class struct_libusb_usb_2_0_extension_descriptor(c.Struct):
SIZE = 8
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bDevCapabilityType: Annotated[uint8_t, 2]
bmAttributes: Annotated[uint32_t, 4]
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
bLength: int
bDescriptorType: int
bDevCapabilityType: int
bmAttributes: int
uint32_t: TypeAlias = ctypes.c_uint32
struct_libusb_usb_2_0_extension_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bDevCapabilityType', uint8_t, 2), ('bmAttributes', uint32_t, 4)])
@c.record
class struct_libusb_ss_usb_device_capability_descriptor(c.Struct):
SIZE = 10
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bDevCapabilityType: Annotated[uint8_t, 2]
bmAttributes: Annotated[uint8_t, 3]
wSpeedSupported: Annotated[uint16_t, 4]
bFunctionalitySupport: Annotated[uint8_t, 6]
bU1DevExitLat: Annotated[uint8_t, 7]
bU2DevExitLat: Annotated[uint16_t, 8]
bLength: int
bDescriptorType: int
bDevCapabilityType: int
bmAttributes: int
wSpeedSupported: int
bFunctionalitySupport: int
bU1DevExitLat: int
bU2DevExitLat: int
struct_libusb_ss_usb_device_capability_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bDevCapabilityType', uint8_t, 2), ('bmAttributes', uint8_t, 3), ('wSpeedSupported', uint16_t, 4), ('bFunctionalitySupport', uint8_t, 6), ('bU1DevExitLat', uint8_t, 7), ('bU2DevExitLat', uint16_t, 8)])
@c.record
class struct_libusb_container_id_descriptor(c.Struct):
SIZE = 20
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bDevCapabilityType: Annotated[uint8_t, 2]
bReserved: Annotated[uint8_t, 3]
ContainerID: Annotated[c.Array[uint8_t, Literal[16]], 4]
bLength: int
bDescriptorType: int
bDevCapabilityType: int
bReserved: int
ContainerID: c.Array[ctypes.c_ubyte, Literal[16]]
struct_libusb_container_id_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bDevCapabilityType', uint8_t, 2), ('bReserved', uint8_t, 3), ('ContainerID', c.Array[uint8_t, Literal[16]], 4)])
@c.record
class struct_libusb_platform_descriptor(c.Struct):
SIZE = 20
bLength: Annotated[uint8_t, 0]
bDescriptorType: Annotated[uint8_t, 1]
bDevCapabilityType: Annotated[uint8_t, 2]
bReserved: Annotated[uint8_t, 3]
PlatformCapabilityUUID: Annotated[c.Array[uint8_t, Literal[16]], 4]
CapabilityData: Annotated[c.Array[uint8_t, Literal[0]], 20]
bLength: int
bDescriptorType: int
bDevCapabilityType: int
bReserved: int
PlatformCapabilityUUID: c.Array[ctypes.c_ubyte, Literal[16]]
CapabilityData: c.Array[ctypes.c_ubyte, Literal[0]]
struct_libusb_platform_descriptor.register_fields([('bLength', uint8_t, 0), ('bDescriptorType', uint8_t, 1), ('bDevCapabilityType', uint8_t, 2), ('bReserved', uint8_t, 3), ('PlatformCapabilityUUID', c.Array[uint8_t, Literal[16]], 4), ('CapabilityData', c.Array[uint8_t, Literal[0]], 20)])
@c.record
class struct_libusb_control_setup(c.Struct):
SIZE = 8
bmRequestType: Annotated[uint8_t, 0]
bRequest: Annotated[uint8_t, 1]
wValue: Annotated[uint16_t, 2]
wIndex: Annotated[uint16_t, 4]
wLength: Annotated[uint16_t, 6]
class struct_libusb_context(c.Struct): SIZE = 0
class struct_libusb_device(c.Struct): SIZE = 0
class struct_libusb_device_handle(c.Struct): SIZE = 0
bmRequestType: int
bRequest: int
wValue: int
wIndex: int
wLength: int
struct_libusb_control_setup.register_fields([('bmRequestType', uint8_t, 0), ('bRequest', uint8_t, 1), ('wValue', uint16_t, 2), ('wIndex', uint16_t, 4), ('wLength', uint16_t, 6)])
class struct_libusb_context(c.Struct): pass
class struct_libusb_device(c.Struct): pass
class struct_libusb_device_handle(c.Struct): pass
@c.record
class struct_libusb_version(c.Struct):
SIZE = 24
major: Annotated[uint16_t, 0]
minor: Annotated[uint16_t, 2]
micro: Annotated[uint16_t, 4]
nano: Annotated[uint16_t, 6]
rc: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 8]
describe: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 16]
major: int
minor: int
micro: int
nano: int
rc: c.POINTER[ctypes.c_char]
describe: c.POINTER[ctypes.c_char]
struct_libusb_version.register_fields([('major', uint16_t, 0), ('minor', uint16_t, 2), ('micro', uint16_t, 4), ('nano', uint16_t, 6), ('rc', c.POINTER[ctypes.c_char], 8), ('describe', c.POINTER[ctypes.c_char], 16)])
libusb_context: TypeAlias = struct_libusb_context
libusb_device: TypeAlias = struct_libusb_device
libusb_device_handle: TypeAlias = struct_libusb_device_handle
class enum_libusb_speed(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_SPEED_UNKNOWN = enum_libusb_speed.define('LIBUSB_SPEED_UNKNOWN', 0)
LIBUSB_SPEED_LOW = enum_libusb_speed.define('LIBUSB_SPEED_LOW', 1)
LIBUSB_SPEED_FULL = enum_libusb_speed.define('LIBUSB_SPEED_FULL', 2)
LIBUSB_SPEED_HIGH = enum_libusb_speed.define('LIBUSB_SPEED_HIGH', 3)
LIBUSB_SPEED_SUPER = enum_libusb_speed.define('LIBUSB_SPEED_SUPER', 4)
LIBUSB_SPEED_SUPER_PLUS = enum_libusb_speed.define('LIBUSB_SPEED_SUPER_PLUS', 5)
class enum_libusb_error(Annotated[int, ctypes.c_int32], c.Enum): pass
LIBUSB_SUCCESS = enum_libusb_error.define('LIBUSB_SUCCESS', 0)
LIBUSB_ERROR_IO = enum_libusb_error.define('LIBUSB_ERROR_IO', -1)
LIBUSB_ERROR_INVALID_PARAM = enum_libusb_error.define('LIBUSB_ERROR_INVALID_PARAM', -2)
LIBUSB_ERROR_ACCESS = enum_libusb_error.define('LIBUSB_ERROR_ACCESS', -3)
LIBUSB_ERROR_NO_DEVICE = enum_libusb_error.define('LIBUSB_ERROR_NO_DEVICE', -4)
LIBUSB_ERROR_NOT_FOUND = enum_libusb_error.define('LIBUSB_ERROR_NOT_FOUND', -5)
LIBUSB_ERROR_BUSY = enum_libusb_error.define('LIBUSB_ERROR_BUSY', -6)
LIBUSB_ERROR_TIMEOUT = enum_libusb_error.define('LIBUSB_ERROR_TIMEOUT', -7)
LIBUSB_ERROR_OVERFLOW = enum_libusb_error.define('LIBUSB_ERROR_OVERFLOW', -8)
LIBUSB_ERROR_PIPE = enum_libusb_error.define('LIBUSB_ERROR_PIPE', -9)
LIBUSB_ERROR_INTERRUPTED = enum_libusb_error.define('LIBUSB_ERROR_INTERRUPTED', -10)
LIBUSB_ERROR_NO_MEM = enum_libusb_error.define('LIBUSB_ERROR_NO_MEM', -11)
LIBUSB_ERROR_NOT_SUPPORTED = enum_libusb_error.define('LIBUSB_ERROR_NOT_SUPPORTED', -12)
LIBUSB_ERROR_OTHER = enum_libusb_error.define('LIBUSB_ERROR_OTHER', -99)
class enum_libusb_transfer_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_TRANSFER_TYPE_CONTROL = enum_libusb_transfer_type.define('LIBUSB_TRANSFER_TYPE_CONTROL', 0)
LIBUSB_TRANSFER_TYPE_ISOCHRONOUS = enum_libusb_transfer_type.define('LIBUSB_TRANSFER_TYPE_ISOCHRONOUS', 1)
LIBUSB_TRANSFER_TYPE_BULK = enum_libusb_transfer_type.define('LIBUSB_TRANSFER_TYPE_BULK', 2)
LIBUSB_TRANSFER_TYPE_INTERRUPT = enum_libusb_transfer_type.define('LIBUSB_TRANSFER_TYPE_INTERRUPT', 3)
LIBUSB_TRANSFER_TYPE_BULK_STREAM = enum_libusb_transfer_type.define('LIBUSB_TRANSFER_TYPE_BULK_STREAM', 4)
class enum_libusb_transfer_status(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_TRANSFER_COMPLETED = enum_libusb_transfer_status.define('LIBUSB_TRANSFER_COMPLETED', 0)
LIBUSB_TRANSFER_ERROR = enum_libusb_transfer_status.define('LIBUSB_TRANSFER_ERROR', 1)
LIBUSB_TRANSFER_TIMED_OUT = enum_libusb_transfer_status.define('LIBUSB_TRANSFER_TIMED_OUT', 2)
LIBUSB_TRANSFER_CANCELLED = enum_libusb_transfer_status.define('LIBUSB_TRANSFER_CANCELLED', 3)
LIBUSB_TRANSFER_STALL = enum_libusb_transfer_status.define('LIBUSB_TRANSFER_STALL', 4)
LIBUSB_TRANSFER_NO_DEVICE = enum_libusb_transfer_status.define('LIBUSB_TRANSFER_NO_DEVICE', 5)
LIBUSB_TRANSFER_OVERFLOW = enum_libusb_transfer_status.define('LIBUSB_TRANSFER_OVERFLOW', 6)
class enum_libusb_transfer_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_TRANSFER_SHORT_NOT_OK = enum_libusb_transfer_flags.define('LIBUSB_TRANSFER_SHORT_NOT_OK', 1)
LIBUSB_TRANSFER_FREE_BUFFER = enum_libusb_transfer_flags.define('LIBUSB_TRANSFER_FREE_BUFFER', 2)
LIBUSB_TRANSFER_FREE_TRANSFER = enum_libusb_transfer_flags.define('LIBUSB_TRANSFER_FREE_TRANSFER', 4)
LIBUSB_TRANSFER_ADD_ZERO_PACKET = enum_libusb_transfer_flags.define('LIBUSB_TRANSFER_ADD_ZERO_PACKET', 8)
enum_libusb_speed: dict[int, str] = {(LIBUSB_SPEED_UNKNOWN:=0): 'LIBUSB_SPEED_UNKNOWN', (LIBUSB_SPEED_LOW:=1): 'LIBUSB_SPEED_LOW', (LIBUSB_SPEED_FULL:=2): 'LIBUSB_SPEED_FULL', (LIBUSB_SPEED_HIGH:=3): 'LIBUSB_SPEED_HIGH', (LIBUSB_SPEED_SUPER:=4): 'LIBUSB_SPEED_SUPER', (LIBUSB_SPEED_SUPER_PLUS:=5): 'LIBUSB_SPEED_SUPER_PLUS'}
enum_libusb_error: dict[int, str] = {(LIBUSB_SUCCESS:=0): 'LIBUSB_SUCCESS', (LIBUSB_ERROR_IO:=-1): 'LIBUSB_ERROR_IO', (LIBUSB_ERROR_INVALID_PARAM:=-2): 'LIBUSB_ERROR_INVALID_PARAM', (LIBUSB_ERROR_ACCESS:=-3): 'LIBUSB_ERROR_ACCESS', (LIBUSB_ERROR_NO_DEVICE:=-4): 'LIBUSB_ERROR_NO_DEVICE', (LIBUSB_ERROR_NOT_FOUND:=-5): 'LIBUSB_ERROR_NOT_FOUND', (LIBUSB_ERROR_BUSY:=-6): 'LIBUSB_ERROR_BUSY', (LIBUSB_ERROR_TIMEOUT:=-7): 'LIBUSB_ERROR_TIMEOUT', (LIBUSB_ERROR_OVERFLOW:=-8): 'LIBUSB_ERROR_OVERFLOW', (LIBUSB_ERROR_PIPE:=-9): 'LIBUSB_ERROR_PIPE', (LIBUSB_ERROR_INTERRUPTED:=-10): 'LIBUSB_ERROR_INTERRUPTED', (LIBUSB_ERROR_NO_MEM:=-11): 'LIBUSB_ERROR_NO_MEM', (LIBUSB_ERROR_NOT_SUPPORTED:=-12): 'LIBUSB_ERROR_NOT_SUPPORTED', (LIBUSB_ERROR_OTHER:=-99): 'LIBUSB_ERROR_OTHER'}
enum_libusb_transfer_type: dict[int, str] = {(LIBUSB_TRANSFER_TYPE_CONTROL:=0): 'LIBUSB_TRANSFER_TYPE_CONTROL', (LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:=1): 'LIBUSB_TRANSFER_TYPE_ISOCHRONOUS', (LIBUSB_TRANSFER_TYPE_BULK:=2): 'LIBUSB_TRANSFER_TYPE_BULK', (LIBUSB_TRANSFER_TYPE_INTERRUPT:=3): 'LIBUSB_TRANSFER_TYPE_INTERRUPT', (LIBUSB_TRANSFER_TYPE_BULK_STREAM:=4): 'LIBUSB_TRANSFER_TYPE_BULK_STREAM'}
enum_libusb_transfer_status: dict[int, str] = {(LIBUSB_TRANSFER_COMPLETED:=0): 'LIBUSB_TRANSFER_COMPLETED', (LIBUSB_TRANSFER_ERROR:=1): 'LIBUSB_TRANSFER_ERROR', (LIBUSB_TRANSFER_TIMED_OUT:=2): 'LIBUSB_TRANSFER_TIMED_OUT', (LIBUSB_TRANSFER_CANCELLED:=3): 'LIBUSB_TRANSFER_CANCELLED', (LIBUSB_TRANSFER_STALL:=4): 'LIBUSB_TRANSFER_STALL', (LIBUSB_TRANSFER_NO_DEVICE:=5): 'LIBUSB_TRANSFER_NO_DEVICE', (LIBUSB_TRANSFER_OVERFLOW:=6): 'LIBUSB_TRANSFER_OVERFLOW'}
enum_libusb_transfer_flags: dict[int, str] = {(LIBUSB_TRANSFER_SHORT_NOT_OK:=1): 'LIBUSB_TRANSFER_SHORT_NOT_OK', (LIBUSB_TRANSFER_FREE_BUFFER:=2): 'LIBUSB_TRANSFER_FREE_BUFFER', (LIBUSB_TRANSFER_FREE_TRANSFER:=4): 'LIBUSB_TRANSFER_FREE_TRANSFER', (LIBUSB_TRANSFER_ADD_ZERO_PACKET:=8): 'LIBUSB_TRANSFER_ADD_ZERO_PACKET'}
@c.record
class struct_libusb_iso_packet_descriptor(c.Struct):
SIZE = 12
length: Annotated[Annotated[int, ctypes.c_uint32], 0]
actual_length: Annotated[Annotated[int, ctypes.c_uint32], 4]
status: Annotated[enum_libusb_transfer_status, 8]
length: int
actual_length: int
status: int
struct_libusb_iso_packet_descriptor.register_fields([('length', ctypes.c_uint32, 0), ('actual_length', ctypes.c_uint32, 4), ('status', ctypes.c_uint32, 8)])
@c.record
class struct_libusb_transfer(c.Struct):
SIZE = 64
dev_handle: Annotated[c.POINTER[libusb_device_handle], 0]
flags: Annotated[uint8_t, 8]
endpoint: Annotated[Annotated[int, ctypes.c_ubyte], 9]
type: Annotated[Annotated[int, ctypes.c_ubyte], 10]
timeout: Annotated[Annotated[int, ctypes.c_uint32], 12]
status: Annotated[enum_libusb_transfer_status, 16]
length: Annotated[Annotated[int, ctypes.c_int32], 20]
actual_length: Annotated[Annotated[int, ctypes.c_int32], 24]
callback: Annotated[libusb_transfer_cb_fn, 32]
user_data: Annotated[ctypes.c_void_p, 40]
buffer: Annotated[c.POINTER[Annotated[int, ctypes.c_ubyte]], 48]
num_iso_packets: Annotated[Annotated[int, ctypes.c_int32], 56]
iso_packet_desc: Annotated[c.Array[struct_libusb_iso_packet_descriptor, Literal[0]], 60]
dev_handle: c.POINTER[struct_libusb_device_handle]
flags: int
endpoint: int
type: int
timeout: int
status: int
length: int
actual_length: int
callback: c.CFUNCTYPE[None, [c.POINTER[struct_libusb_transfer]]]
user_data: ctypes.c_void_p
buffer: c.POINTER[ctypes.c_ubyte]
num_iso_packets: int
iso_packet_desc: c.Array[struct_libusb_iso_packet_descriptor, Literal[0]]
libusb_transfer_cb_fn: TypeAlias = c.CFUNCTYPE[None, [c.POINTER[struct_libusb_transfer]]]
class enum_libusb_capability(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_CAP_HAS_CAPABILITY = enum_libusb_capability.define('LIBUSB_CAP_HAS_CAPABILITY', 0)
LIBUSB_CAP_HAS_HOTPLUG = enum_libusb_capability.define('LIBUSB_CAP_HAS_HOTPLUG', 1)
LIBUSB_CAP_HAS_HID_ACCESS = enum_libusb_capability.define('LIBUSB_CAP_HAS_HID_ACCESS', 256)
LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER = enum_libusb_capability.define('LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER', 257)
class enum_libusb_log_level(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_LOG_LEVEL_NONE = enum_libusb_log_level.define('LIBUSB_LOG_LEVEL_NONE', 0)
LIBUSB_LOG_LEVEL_ERROR = enum_libusb_log_level.define('LIBUSB_LOG_LEVEL_ERROR', 1)
LIBUSB_LOG_LEVEL_WARNING = enum_libusb_log_level.define('LIBUSB_LOG_LEVEL_WARNING', 2)
LIBUSB_LOG_LEVEL_INFO = enum_libusb_log_level.define('LIBUSB_LOG_LEVEL_INFO', 3)
LIBUSB_LOG_LEVEL_DEBUG = enum_libusb_log_level.define('LIBUSB_LOG_LEVEL_DEBUG', 4)
class enum_libusb_log_cb_mode(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_LOG_CB_GLOBAL = enum_libusb_log_cb_mode.define('LIBUSB_LOG_CB_GLOBAL', 1)
LIBUSB_LOG_CB_CONTEXT = enum_libusb_log_cb_mode.define('LIBUSB_LOG_CB_CONTEXT', 2)
class enum_libusb_option(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_OPTION_LOG_LEVEL = enum_libusb_option.define('LIBUSB_OPTION_LOG_LEVEL', 0)
LIBUSB_OPTION_USE_USBDK = enum_libusb_option.define('LIBUSB_OPTION_USE_USBDK', 1)
LIBUSB_OPTION_NO_DEVICE_DISCOVERY = enum_libusb_option.define('LIBUSB_OPTION_NO_DEVICE_DISCOVERY', 2)
LIBUSB_OPTION_LOG_CB = enum_libusb_option.define('LIBUSB_OPTION_LOG_CB', 3)
LIBUSB_OPTION_MAX = enum_libusb_option.define('LIBUSB_OPTION_MAX', 4)
libusb_log_cb: TypeAlias = c.CFUNCTYPE[None, [c.POINTER[struct_libusb_context], enum_libusb_log_level, c.POINTER[Annotated[bytes, ctypes.c_char]]]]
struct_libusb_transfer.register_fields([('dev_handle', c.POINTER[libusb_device_handle], 0), ('flags', uint8_t, 8), ('endpoint', ctypes.c_ubyte, 9), ('type', ctypes.c_ubyte, 10), ('timeout', ctypes.c_uint32, 12), ('status', ctypes.c_uint32, 16), ('length', ctypes.c_int32, 20), ('actual_length', ctypes.c_int32, 24), ('callback', libusb_transfer_cb_fn, 32), ('user_data', ctypes.c_void_p, 40), ('buffer', c.POINTER[ctypes.c_ubyte], 48), ('num_iso_packets', ctypes.c_int32, 56), ('iso_packet_desc', c.Array[struct_libusb_iso_packet_descriptor, Literal[0]], 60)])
enum_libusb_capability: dict[int, str] = {(LIBUSB_CAP_HAS_CAPABILITY:=0): 'LIBUSB_CAP_HAS_CAPABILITY', (LIBUSB_CAP_HAS_HOTPLUG:=1): 'LIBUSB_CAP_HAS_HOTPLUG', (LIBUSB_CAP_HAS_HID_ACCESS:=256): 'LIBUSB_CAP_HAS_HID_ACCESS', (LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER:=257): 'LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER'}
enum_libusb_log_level: dict[int, str] = {(LIBUSB_LOG_LEVEL_NONE:=0): 'LIBUSB_LOG_LEVEL_NONE', (LIBUSB_LOG_LEVEL_ERROR:=1): 'LIBUSB_LOG_LEVEL_ERROR', (LIBUSB_LOG_LEVEL_WARNING:=2): 'LIBUSB_LOG_LEVEL_WARNING', (LIBUSB_LOG_LEVEL_INFO:=3): 'LIBUSB_LOG_LEVEL_INFO', (LIBUSB_LOG_LEVEL_DEBUG:=4): 'LIBUSB_LOG_LEVEL_DEBUG'}
enum_libusb_log_cb_mode: dict[int, str] = {(LIBUSB_LOG_CB_GLOBAL:=1): 'LIBUSB_LOG_CB_GLOBAL', (LIBUSB_LOG_CB_CONTEXT:=2): 'LIBUSB_LOG_CB_CONTEXT'}
enum_libusb_option: dict[int, str] = {(LIBUSB_OPTION_LOG_LEVEL:=0): 'LIBUSB_OPTION_LOG_LEVEL', (LIBUSB_OPTION_USE_USBDK:=1): 'LIBUSB_OPTION_USE_USBDK', (LIBUSB_OPTION_NO_DEVICE_DISCOVERY:=2): 'LIBUSB_OPTION_NO_DEVICE_DISCOVERY', (LIBUSB_OPTION_LOG_CB:=3): 'LIBUSB_OPTION_LOG_CB', (LIBUSB_OPTION_MAX:=4): 'LIBUSB_OPTION_MAX'}
libusb_log_cb: TypeAlias = c.CFUNCTYPE[None, [c.POINTER[struct_libusb_context], ctypes.c_uint32, c.POINTER[ctypes.c_char]]]
@c.record
class struct_libusb_init_option(c.Struct):
SIZE = 16
option: Annotated[enum_libusb_option, 0]
value: Annotated[struct_libusb_init_option_value, 8]
option: int
value: struct_libusb_init_option_value
@c.record
class struct_libusb_init_option_value(c.Struct):
SIZE = 8
ival: Annotated[Annotated[int, ctypes.c_int32], 0]
log_cbval: Annotated[libusb_log_cb, 0]
@dll.bind
def libusb_init(ctx:c.POINTER[c.POINTER[libusb_context]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_init_context(ctx:c.POINTER[c.POINTER[libusb_context]], options:c.Array[struct_libusb_init_option, Literal[0]], num_options:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
ival: int
log_cbval: c.CFUNCTYPE[None, [c.POINTER[struct_libusb_context], ctypes.c_uint32, c.POINTER[ctypes.c_char]]]
struct_libusb_init_option_value.register_fields([('ival', ctypes.c_int32, 0), ('log_cbval', libusb_log_cb, 0)])
struct_libusb_init_option.register_fields([('option', ctypes.c_uint32, 0), ('value', struct_libusb_init_option_value, 8)])
@dll.bind(ctypes.c_int32, c.POINTER[c.POINTER[libusb_context]])
def libusb_init(ctx:c.POINTER[c.POINTER[libusb_context]]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[c.POINTER[libusb_context]], c.Array[struct_libusb_init_option, Literal[0]], ctypes.c_int32)
def libusb_init_context(ctx:c.POINTER[c.POINTER[libusb_context]], options:c.Array[struct_libusb_init_option, Literal[0]], num_options:int) -> int: ...
@dll.bind(None, c.POINTER[libusb_context])
def libusb_exit(ctx:c.POINTER[libusb_context]) -> None: ...
@dll.bind
def libusb_set_debug(ctx:c.POINTER[libusb_context], level:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def libusb_set_log_cb(ctx:c.POINTER[libusb_context], cb:libusb_log_cb, mode:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
@dll.bind(None, c.POINTER[libusb_context], ctypes.c_int32)
def libusb_set_debug(ctx:c.POINTER[libusb_context], level:int) -> None: ...
@dll.bind(None, c.POINTER[libusb_context], libusb_log_cb, ctypes.c_int32)
def libusb_set_log_cb(ctx:c.POINTER[libusb_context], cb:libusb_log_cb, mode:int) -> None: ...
@dll.bind(c.POINTER[struct_libusb_version])
def libusb_get_version() -> c.POINTER[struct_libusb_version]: ...
@dll.bind
def libusb_has_capability(capability:uint32_t) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_error_name(errcode:Annotated[int, ctypes.c_int32]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def libusb_setlocale(locale:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_strerror(errcode:Annotated[int, ctypes.c_int32]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
ssize_t: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
@dll.bind(ctypes.c_int32, uint32_t)
def libusb_has_capability(capability:uint32_t) -> int: ...
@dll.bind(c.POINTER[ctypes.c_char], ctypes.c_int32)
def libusb_error_name(errcode:int) -> c.POINTER[ctypes.c_char]: ...
@dll.bind(ctypes.c_int32, c.POINTER[ctypes.c_char])
def libusb_setlocale(locale:c.POINTER[ctypes.c_char]) -> int: ...
@dll.bind(c.POINTER[ctypes.c_char], ctypes.c_int32)
def libusb_strerror(errcode:int) -> c.POINTER[ctypes.c_char]: ...
ssize_t: TypeAlias = ctypes.c_int64
@dll.bind(ssize_t, c.POINTER[libusb_context], c.POINTER[c.POINTER[c.POINTER[libusb_device]]])
def libusb_get_device_list(ctx:c.POINTER[libusb_context], list:c.POINTER[c.POINTER[c.POINTER[libusb_device]]]) -> ssize_t: ...
@dll.bind
def libusb_free_device_list(list:c.POINTER[c.POINTER[libusb_device]], unref_devices:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
@dll.bind(None, c.POINTER[c.POINTER[libusb_device]], ctypes.c_int32)
def libusb_free_device_list(list:c.POINTER[c.POINTER[libusb_device]], unref_devices:int) -> None: ...
@dll.bind(c.POINTER[libusb_device], c.POINTER[libusb_device])
def libusb_ref_device(dev:c.POINTER[libusb_device]) -> c.POINTER[libusb_device]: ...
@dll.bind
@dll.bind(None, c.POINTER[libusb_device])
def libusb_unref_device(dev:c.POINTER[libusb_device]) -> None: ...
@dll.bind
def libusb_get_configuration(dev:c.POINTER[libusb_device_handle], config:c.POINTER[Annotated[int, ctypes.c_int32]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_device_descriptor(dev:c.POINTER[libusb_device], desc:c.POINTER[struct_libusb_device_descriptor]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_active_config_descriptor(dev:c.POINTER[libusb_device], config:c.POINTER[c.POINTER[struct_libusb_config_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_config_descriptor(dev:c.POINTER[libusb_device], config_index:uint8_t, config:c.POINTER[c.POINTER[struct_libusb_config_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_config_descriptor_by_value(dev:c.POINTER[libusb_device], bConfigurationValue:uint8_t, config:c.POINTER[c.POINTER[struct_libusb_config_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], c.POINTER[ctypes.c_int32])
def libusb_get_configuration(dev:c.POINTER[libusb_device_handle], config:c.POINTER[ctypes.c_int32]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], c.POINTER[struct_libusb_device_descriptor])
def libusb_get_device_descriptor(dev:c.POINTER[libusb_device], desc:c.POINTER[struct_libusb_device_descriptor]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], c.POINTER[c.POINTER[struct_libusb_config_descriptor]])
def libusb_get_active_config_descriptor(dev:c.POINTER[libusb_device], config:c.POINTER[c.POINTER[struct_libusb_config_descriptor]]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], uint8_t, c.POINTER[c.POINTER[struct_libusb_config_descriptor]])
def libusb_get_config_descriptor(dev:c.POINTER[libusb_device], config_index:uint8_t, config:c.POINTER[c.POINTER[struct_libusb_config_descriptor]]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], uint8_t, c.POINTER[c.POINTER[struct_libusb_config_descriptor]])
def libusb_get_config_descriptor_by_value(dev:c.POINTER[libusb_device], bConfigurationValue:uint8_t, config:c.POINTER[c.POINTER[struct_libusb_config_descriptor]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_config_descriptor])
def libusb_free_config_descriptor(config:c.POINTER[struct_libusb_config_descriptor]) -> None: ...
@dll.bind
def libusb_get_ss_endpoint_companion_descriptor(ctx:c.POINTER[libusb_context], endpoint:c.POINTER[struct_libusb_endpoint_descriptor], ep_comp:c.POINTER[c.POINTER[struct_libusb_ss_endpoint_companion_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_libusb_endpoint_descriptor], c.POINTER[c.POINTER[struct_libusb_ss_endpoint_companion_descriptor]])
def libusb_get_ss_endpoint_companion_descriptor(ctx:c.POINTER[libusb_context], endpoint:c.POINTER[struct_libusb_endpoint_descriptor], ep_comp:c.POINTER[c.POINTER[struct_libusb_ss_endpoint_companion_descriptor]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_ss_endpoint_companion_descriptor])
def libusb_free_ss_endpoint_companion_descriptor(ep_comp:c.POINTER[struct_libusb_ss_endpoint_companion_descriptor]) -> None: ...
@dll.bind
def libusb_get_bos_descriptor(dev_handle:c.POINTER[libusb_device_handle], bos:c.POINTER[c.POINTER[struct_libusb_bos_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], c.POINTER[c.POINTER[struct_libusb_bos_descriptor]])
def libusb_get_bos_descriptor(dev_handle:c.POINTER[libusb_device_handle], bos:c.POINTER[c.POINTER[struct_libusb_bos_descriptor]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_bos_descriptor])
def libusb_free_bos_descriptor(bos:c.POINTER[struct_libusb_bos_descriptor]) -> None: ...
@dll.bind
def libusb_get_usb_2_0_extension_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], usb_2_0_extension:c.POINTER[c.POINTER[struct_libusb_usb_2_0_extension_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_libusb_bos_dev_capability_descriptor], c.POINTER[c.POINTER[struct_libusb_usb_2_0_extension_descriptor]])
def libusb_get_usb_2_0_extension_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], usb_2_0_extension:c.POINTER[c.POINTER[struct_libusb_usb_2_0_extension_descriptor]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_usb_2_0_extension_descriptor])
def libusb_free_usb_2_0_extension_descriptor(usb_2_0_extension:c.POINTER[struct_libusb_usb_2_0_extension_descriptor]) -> None: ...
@dll.bind
def libusb_get_ss_usb_device_capability_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], ss_usb_device_cap:c.POINTER[c.POINTER[struct_libusb_ss_usb_device_capability_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_libusb_bos_dev_capability_descriptor], c.POINTER[c.POINTER[struct_libusb_ss_usb_device_capability_descriptor]])
def libusb_get_ss_usb_device_capability_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], ss_usb_device_cap:c.POINTER[c.POINTER[struct_libusb_ss_usb_device_capability_descriptor]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_ss_usb_device_capability_descriptor])
def libusb_free_ss_usb_device_capability_descriptor(ss_usb_device_cap:c.POINTER[struct_libusb_ss_usb_device_capability_descriptor]) -> None: ...
@dll.bind
def libusb_get_container_id_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], container_id:c.POINTER[c.POINTER[struct_libusb_container_id_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_libusb_bos_dev_capability_descriptor], c.POINTER[c.POINTER[struct_libusb_container_id_descriptor]])
def libusb_get_container_id_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], container_id:c.POINTER[c.POINTER[struct_libusb_container_id_descriptor]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_container_id_descriptor])
def libusb_free_container_id_descriptor(container_id:c.POINTER[struct_libusb_container_id_descriptor]) -> None: ...
@dll.bind
def libusb_get_platform_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], platform_descriptor:c.POINTER[c.POINTER[struct_libusb_platform_descriptor]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_libusb_bos_dev_capability_descriptor], c.POINTER[c.POINTER[struct_libusb_platform_descriptor]])
def libusb_get_platform_descriptor(ctx:c.POINTER[libusb_context], dev_cap:c.POINTER[struct_libusb_bos_dev_capability_descriptor], platform_descriptor:c.POINTER[c.POINTER[struct_libusb_platform_descriptor]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_platform_descriptor])
def libusb_free_platform_descriptor(platform_descriptor:c.POINTER[struct_libusb_platform_descriptor]) -> None: ...
@dll.bind
@dll.bind(uint8_t, c.POINTER[libusb_device])
def libusb_get_bus_number(dev:c.POINTER[libusb_device]) -> uint8_t: ...
@dll.bind
@dll.bind(uint8_t, c.POINTER[libusb_device])
def libusb_get_port_number(dev:c.POINTER[libusb_device]) -> uint8_t: ...
@dll.bind
def libusb_get_port_numbers(dev:c.POINTER[libusb_device], port_numbers:c.POINTER[uint8_t], port_numbers_len:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_port_path(ctx:c.POINTER[libusb_context], dev:c.POINTER[libusb_device], path:c.POINTER[uint8_t], path_length:uint8_t) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], c.POINTER[uint8_t], ctypes.c_int32)
def libusb_get_port_numbers(dev:c.POINTER[libusb_device], port_numbers:c.POINTER[uint8_t], port_numbers_len:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[libusb_device], c.POINTER[uint8_t], uint8_t)
def libusb_get_port_path(ctx:c.POINTER[libusb_context], dev:c.POINTER[libusb_device], path:c.POINTER[uint8_t], path_length:uint8_t) -> int: ...
@dll.bind(c.POINTER[libusb_device], c.POINTER[libusb_device])
def libusb_get_parent(dev:c.POINTER[libusb_device]) -> c.POINTER[libusb_device]: ...
@dll.bind
@dll.bind(uint8_t, c.POINTER[libusb_device])
def libusb_get_device_address(dev:c.POINTER[libusb_device]) -> uint8_t: ...
@dll.bind
def libusb_get_device_speed(dev:c.POINTER[libusb_device]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_max_packet_size(dev:c.POINTER[libusb_device], endpoint:Annotated[int, ctypes.c_ubyte]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_max_iso_packet_size(dev:c.POINTER[libusb_device], endpoint:Annotated[int, ctypes.c_ubyte]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_max_alt_packet_size(dev:c.POINTER[libusb_device], interface_number:Annotated[int, ctypes.c_int32], alternate_setting:Annotated[int, ctypes.c_int32], endpoint:Annotated[int, ctypes.c_ubyte]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_interface_association_descriptors(dev:c.POINTER[libusb_device], config_index:uint8_t, iad_array:c.POINTER[c.POINTER[struct_libusb_interface_association_descriptor_array]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_active_interface_association_descriptors(dev:c.POINTER[libusb_device], iad_array:c.POINTER[c.POINTER[struct_libusb_interface_association_descriptor_array]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device])
def libusb_get_device_speed(dev:c.POINTER[libusb_device]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], ctypes.c_ubyte)
def libusb_get_max_packet_size(dev:c.POINTER[libusb_device], endpoint:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], ctypes.c_ubyte)
def libusb_get_max_iso_packet_size(dev:c.POINTER[libusb_device], endpoint:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], ctypes.c_int32, ctypes.c_int32, ctypes.c_ubyte)
def libusb_get_max_alt_packet_size(dev:c.POINTER[libusb_device], interface_number:int, alternate_setting:int, endpoint:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], uint8_t, c.POINTER[c.POINTER[struct_libusb_interface_association_descriptor_array]])
def libusb_get_interface_association_descriptors(dev:c.POINTER[libusb_device], config_index:uint8_t, iad_array:c.POINTER[c.POINTER[struct_libusb_interface_association_descriptor_array]]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], c.POINTER[c.POINTER[struct_libusb_interface_association_descriptor_array]])
def libusb_get_active_interface_association_descriptors(dev:c.POINTER[libusb_device], iad_array:c.POINTER[c.POINTER[struct_libusb_interface_association_descriptor_array]]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_interface_association_descriptor_array])
def libusb_free_interface_association_descriptors(iad_array:c.POINTER[struct_libusb_interface_association_descriptor_array]) -> None: ...
intptr_t: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
def libusb_wrap_sys_device(ctx:c.POINTER[libusb_context], sys_dev:intptr_t, dev_handle:c.POINTER[c.POINTER[libusb_device_handle]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_open(dev:c.POINTER[libusb_device], dev_handle:c.POINTER[c.POINTER[libusb_device_handle]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
intptr_t: TypeAlias = ctypes.c_int64
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], intptr_t, c.POINTER[c.POINTER[libusb_device_handle]])
def libusb_wrap_sys_device(ctx:c.POINTER[libusb_context], sys_dev:intptr_t, dev_handle:c.POINTER[c.POINTER[libusb_device_handle]]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device], c.POINTER[c.POINTER[libusb_device_handle]])
def libusb_open(dev:c.POINTER[libusb_device], dev_handle:c.POINTER[c.POINTER[libusb_device_handle]]) -> int: ...
@dll.bind(None, c.POINTER[libusb_device_handle])
def libusb_close(dev_handle:c.POINTER[libusb_device_handle]) -> None: ...
@dll.bind
@dll.bind(c.POINTER[libusb_device], c.POINTER[libusb_device_handle])
def libusb_get_device(dev_handle:c.POINTER[libusb_device_handle]) -> c.POINTER[libusb_device]: ...
@dll.bind
def libusb_set_configuration(dev_handle:c.POINTER[libusb_device_handle], configuration:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_claim_interface(dev_handle:c.POINTER[libusb_device_handle], interface_number:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_release_interface(dev_handle:c.POINTER[libusb_device_handle], interface_number:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32)
def libusb_set_configuration(dev_handle:c.POINTER[libusb_device_handle], configuration:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32)
def libusb_claim_interface(dev_handle:c.POINTER[libusb_device_handle], interface_number:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32)
def libusb_release_interface(dev_handle:c.POINTER[libusb_device_handle], interface_number:int) -> int: ...
@dll.bind(c.POINTER[libusb_device_handle], c.POINTER[libusb_context], uint16_t, uint16_t)
def libusb_open_device_with_vid_pid(ctx:c.POINTER[libusb_context], vendor_id:uint16_t, product_id:uint16_t) -> c.POINTER[libusb_device_handle]: ...
@dll.bind
def libusb_set_interface_alt_setting(dev_handle:c.POINTER[libusb_device_handle], interface_number:Annotated[int, ctypes.c_int32], alternate_setting:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_clear_halt(dev_handle:c.POINTER[libusb_device_handle], endpoint:Annotated[int, ctypes.c_ubyte]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_reset_device(dev_handle:c.POINTER[libusb_device_handle]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_alloc_streams(dev_handle:c.POINTER[libusb_device_handle], num_streams:uint32_t, endpoints:c.POINTER[Annotated[int, ctypes.c_ubyte]], num_endpoints:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_free_streams(dev_handle:c.POINTER[libusb_device_handle], endpoints:c.POINTER[Annotated[int, ctypes.c_ubyte]], num_endpoints:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
def libusb_dev_mem_alloc(dev_handle:c.POINTER[libusb_device_handle], length:size_t) -> c.POINTER[Annotated[int, ctypes.c_ubyte]]: ...
@dll.bind
def libusb_dev_mem_free(dev_handle:c.POINTER[libusb_device_handle], buffer:c.POINTER[Annotated[int, ctypes.c_ubyte]], length:size_t) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_kernel_driver_active(dev_handle:c.POINTER[libusb_device_handle], interface_number:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_detach_kernel_driver(dev_handle:c.POINTER[libusb_device_handle], interface_number:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_attach_kernel_driver(dev_handle:c.POINTER[libusb_device_handle], interface_number:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_set_auto_detach_kernel_driver(dev_handle:c.POINTER[libusb_device_handle], enable:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_alloc_transfer(iso_packets:Annotated[int, ctypes.c_int32]) -> c.POINTER[struct_libusb_transfer]: ...
@dll.bind
def libusb_submit_transfer(transfer:c.POINTER[struct_libusb_transfer]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_cancel_transfer(transfer:c.POINTER[struct_libusb_transfer]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32, ctypes.c_int32)
def libusb_set_interface_alt_setting(dev_handle:c.POINTER[libusb_device_handle], interface_number:int, alternate_setting:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_ubyte)
def libusb_clear_halt(dev_handle:c.POINTER[libusb_device_handle], endpoint:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle])
def libusb_reset_device(dev_handle:c.POINTER[libusb_device_handle]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], uint32_t, c.POINTER[ctypes.c_ubyte], ctypes.c_int32)
def libusb_alloc_streams(dev_handle:c.POINTER[libusb_device_handle], num_streams:uint32_t, endpoints:c.POINTER[ctypes.c_ubyte], num_endpoints:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], c.POINTER[ctypes.c_ubyte], ctypes.c_int32)
def libusb_free_streams(dev_handle:c.POINTER[libusb_device_handle], endpoints:c.POINTER[ctypes.c_ubyte], num_endpoints:int) -> int: ...
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(c.POINTER[ctypes.c_ubyte], c.POINTER[libusb_device_handle], size_t)
def libusb_dev_mem_alloc(dev_handle:c.POINTER[libusb_device_handle], length:size_t) -> c.POINTER[ctypes.c_ubyte]: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], c.POINTER[ctypes.c_ubyte], size_t)
def libusb_dev_mem_free(dev_handle:c.POINTER[libusb_device_handle], buffer:c.POINTER[ctypes.c_ubyte], length:size_t) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32)
def libusb_kernel_driver_active(dev_handle:c.POINTER[libusb_device_handle], interface_number:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32)
def libusb_detach_kernel_driver(dev_handle:c.POINTER[libusb_device_handle], interface_number:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32)
def libusb_attach_kernel_driver(dev_handle:c.POINTER[libusb_device_handle], interface_number:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_int32)
def libusb_set_auto_detach_kernel_driver(dev_handle:c.POINTER[libusb_device_handle], enable:int) -> int: ...
@dll.bind(c.POINTER[struct_libusb_transfer], ctypes.c_int32)
def libusb_alloc_transfer(iso_packets:int) -> c.POINTER[struct_libusb_transfer]: ...
@dll.bind(ctypes.c_int32, c.POINTER[struct_libusb_transfer])
def libusb_submit_transfer(transfer:c.POINTER[struct_libusb_transfer]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[struct_libusb_transfer])
def libusb_cancel_transfer(transfer:c.POINTER[struct_libusb_transfer]) -> int: ...
@dll.bind(None, c.POINTER[struct_libusb_transfer])
def libusb_free_transfer(transfer:c.POINTER[struct_libusb_transfer]) -> None: ...
@dll.bind
@dll.bind(None, c.POINTER[struct_libusb_transfer], uint32_t)
def libusb_transfer_set_stream_id(transfer:c.POINTER[struct_libusb_transfer], stream_id:uint32_t) -> None: ...
@dll.bind
@dll.bind(uint32_t, c.POINTER[struct_libusb_transfer])
def libusb_transfer_get_stream_id(transfer:c.POINTER[struct_libusb_transfer]) -> uint32_t: ...
@dll.bind
def libusb_control_transfer(dev_handle:c.POINTER[libusb_device_handle], request_type:uint8_t, bRequest:uint8_t, wValue:uint16_t, wIndex:uint16_t, data:c.POINTER[Annotated[int, ctypes.c_ubyte]], wLength:uint16_t, timeout:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_bulk_transfer(dev_handle:c.POINTER[libusb_device_handle], endpoint:Annotated[int, ctypes.c_ubyte], data:c.POINTER[Annotated[int, ctypes.c_ubyte]], length:Annotated[int, ctypes.c_int32], actual_length:c.POINTER[Annotated[int, ctypes.c_int32]], timeout:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_interrupt_transfer(dev_handle:c.POINTER[libusb_device_handle], endpoint:Annotated[int, ctypes.c_ubyte], data:c.POINTER[Annotated[int, ctypes.c_ubyte]], length:Annotated[int, ctypes.c_int32], actual_length:c.POINTER[Annotated[int, ctypes.c_int32]], timeout:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_string_descriptor_ascii(dev_handle:c.POINTER[libusb_device_handle], desc_index:uint8_t, data:c.POINTER[Annotated[int, ctypes.c_ubyte]], length:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_try_lock_events(ctx:c.POINTER[libusb_context]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], uint8_t, uint8_t, uint16_t, uint16_t, c.POINTER[ctypes.c_ubyte], uint16_t, ctypes.c_uint32)
def libusb_control_transfer(dev_handle:c.POINTER[libusb_device_handle], request_type:uint8_t, bRequest:uint8_t, wValue:uint16_t, wIndex:uint16_t, data:c.POINTER[ctypes.c_ubyte], wLength:uint16_t, timeout:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_ubyte, c.POINTER[ctypes.c_ubyte], ctypes.c_int32, c.POINTER[ctypes.c_int32], ctypes.c_uint32)
def libusb_bulk_transfer(dev_handle:c.POINTER[libusb_device_handle], endpoint:int, data:c.POINTER[ctypes.c_ubyte], length:int, actual_length:c.POINTER[ctypes.c_int32], timeout:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], ctypes.c_ubyte, c.POINTER[ctypes.c_ubyte], ctypes.c_int32, c.POINTER[ctypes.c_int32], ctypes.c_uint32)
def libusb_interrupt_transfer(dev_handle:c.POINTER[libusb_device_handle], endpoint:int, data:c.POINTER[ctypes.c_ubyte], length:int, actual_length:c.POINTER[ctypes.c_int32], timeout:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_device_handle], uint8_t, c.POINTER[ctypes.c_ubyte], ctypes.c_int32)
def libusb_get_string_descriptor_ascii(dev_handle:c.POINTER[libusb_device_handle], desc_index:uint8_t, data:c.POINTER[ctypes.c_ubyte], length:int) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context])
def libusb_try_lock_events(ctx:c.POINTER[libusb_context]) -> int: ...
@dll.bind(None, c.POINTER[libusb_context])
def libusb_lock_events(ctx:c.POINTER[libusb_context]) -> None: ...
@dll.bind
@dll.bind(None, c.POINTER[libusb_context])
def libusb_unlock_events(ctx:c.POINTER[libusb_context]) -> None: ...
@dll.bind
def libusb_event_handling_ok(ctx:c.POINTER[libusb_context]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_event_handler_active(ctx:c.POINTER[libusb_context]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context])
def libusb_event_handling_ok(ctx:c.POINTER[libusb_context]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context])
def libusb_event_handler_active(ctx:c.POINTER[libusb_context]) -> int: ...
@dll.bind(None, c.POINTER[libusb_context])
def libusb_interrupt_event_handler(ctx:c.POINTER[libusb_context]) -> None: ...
@dll.bind
@dll.bind(None, c.POINTER[libusb_context])
def libusb_lock_event_waiters(ctx:c.POINTER[libusb_context]) -> None: ...
@dll.bind
@dll.bind(None, c.POINTER[libusb_context])
def libusb_unlock_event_waiters(ctx:c.POINTER[libusb_context]) -> None: ...
@c.record
class struct_timeval(c.Struct):
SIZE = 16
tv_sec: Annotated[Annotated[int, ctypes.c_int64], 0]
tv_usec: Annotated[Annotated[int, ctypes.c_int64], 8]
__time_t: TypeAlias = Annotated[int, ctypes.c_int64]
__suseconds_t: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
def libusb_wait_for_event(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_handle_events_timeout(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_handle_events_timeout_completed(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval], completed:c.POINTER[Annotated[int, ctypes.c_int32]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_handle_events(ctx:c.POINTER[libusb_context]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_handle_events_completed(ctx:c.POINTER[libusb_context], completed:c.POINTER[Annotated[int, ctypes.c_int32]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_handle_events_locked(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_pollfds_handle_timeouts(ctx:c.POINTER[libusb_context]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def libusb_get_next_timeout(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> Annotated[int, ctypes.c_int32]: ...
tv_sec: int
tv_usec: int
__time_t: TypeAlias = ctypes.c_int64
__suseconds_t: TypeAlias = ctypes.c_int64
struct_timeval.register_fields([('tv_sec', ctypes.c_int64, 0), ('tv_usec', ctypes.c_int64, 8)])
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_timeval])
def libusb_wait_for_event(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_timeval])
def libusb_handle_events_timeout(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_timeval], c.POINTER[ctypes.c_int32])
def libusb_handle_events_timeout_completed(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval], completed:c.POINTER[ctypes.c_int32]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context])
def libusb_handle_events(ctx:c.POINTER[libusb_context]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[ctypes.c_int32])
def libusb_handle_events_completed(ctx:c.POINTER[libusb_context], completed:c.POINTER[ctypes.c_int32]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_timeval])
def libusb_handle_events_locked(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context])
def libusb_pollfds_handle_timeouts(ctx:c.POINTER[libusb_context]) -> int: ...
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], c.POINTER[struct_timeval])
def libusb_get_next_timeout(ctx:c.POINTER[libusb_context], tv:c.POINTER[struct_timeval]) -> int: ...
@c.record
class struct_libusb_pollfd(c.Struct):
SIZE = 8
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
events: Annotated[Annotated[int, ctypes.c_int16], 4]
libusb_pollfd_added_cb: TypeAlias = c.CFUNCTYPE[None, [Annotated[int, ctypes.c_int32], Annotated[int, ctypes.c_int16], ctypes.c_void_p]]
libusb_pollfd_removed_cb: TypeAlias = c.CFUNCTYPE[None, [Annotated[int, ctypes.c_int32], ctypes.c_void_p]]
@dll.bind
fd: int
events: int
struct_libusb_pollfd.register_fields([('fd', ctypes.c_int32, 0), ('events', ctypes.c_int16, 4)])
libusb_pollfd_added_cb: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_int32, ctypes.c_int16, ctypes.c_void_p]]
libusb_pollfd_removed_cb: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_int32, ctypes.c_void_p]]
@dll.bind(c.POINTER[c.POINTER[struct_libusb_pollfd]], c.POINTER[libusb_context])
def libusb_get_pollfds(ctx:c.POINTER[libusb_context]) -> c.POINTER[c.POINTER[struct_libusb_pollfd]]: ...
@dll.bind
@dll.bind(None, c.POINTER[c.POINTER[struct_libusb_pollfd]])
def libusb_free_pollfds(pollfds:c.POINTER[c.POINTER[struct_libusb_pollfd]]) -> None: ...
@dll.bind
@dll.bind(None, c.POINTER[libusb_context], libusb_pollfd_added_cb, libusb_pollfd_removed_cb, ctypes.c_void_p)
def libusb_set_pollfd_notifiers(ctx:c.POINTER[libusb_context], added_cb:libusb_pollfd_added_cb, removed_cb:libusb_pollfd_removed_cb, user_data:ctypes.c_void_p) -> None: ...
libusb_hotplug_callback_handle: TypeAlias = Annotated[int, ctypes.c_int32]
class libusb_hotplug_event(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED = libusb_hotplug_event.define('LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED', 1)
LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT = libusb_hotplug_event.define('LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT', 2)
class libusb_hotplug_flag(Annotated[int, ctypes.c_uint32], c.Enum): pass
LIBUSB_HOTPLUG_ENUMERATE = libusb_hotplug_flag.define('LIBUSB_HOTPLUG_ENUMERATE', 1)
libusb_hotplug_callback_fn: TypeAlias = c.CFUNCTYPE[Annotated[int, ctypes.c_int32], [c.POINTER[struct_libusb_context], c.POINTER[struct_libusb_device], libusb_hotplug_event, ctypes.c_void_p]]
@dll.bind
def libusb_hotplug_register_callback(ctx:c.POINTER[libusb_context], events:Annotated[int, ctypes.c_int32], flags:Annotated[int, ctypes.c_int32], vendor_id:Annotated[int, ctypes.c_int32], product_id:Annotated[int, ctypes.c_int32], dev_class:Annotated[int, ctypes.c_int32], cb_fn:libusb_hotplug_callback_fn, user_data:ctypes.c_void_p, callback_handle:c.POINTER[libusb_hotplug_callback_handle]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
libusb_hotplug_callback_handle: TypeAlias = ctypes.c_int32
libusb_hotplug_event: dict[int, str] = {(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED:=1): 'LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED', (LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT:=2): 'LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT'}
libusb_hotplug_flag: dict[int, str] = {(LIBUSB_HOTPLUG_ENUMERATE:=1): 'LIBUSB_HOTPLUG_ENUMERATE'}
libusb_hotplug_callback_fn: TypeAlias = c.CFUNCTYPE[ctypes.c_int32, [c.POINTER[struct_libusb_context], c.POINTER[struct_libusb_device], ctypes.c_uint32, ctypes.c_void_p]]
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], ctypes.c_int32, ctypes.c_int32, ctypes.c_int32, ctypes.c_int32, ctypes.c_int32, libusb_hotplug_callback_fn, ctypes.c_void_p, c.POINTER[libusb_hotplug_callback_handle])
def libusb_hotplug_register_callback(ctx:c.POINTER[libusb_context], events:int, flags:int, vendor_id:int, product_id:int, dev_class:int, cb_fn:libusb_hotplug_callback_fn, user_data:ctypes.c_void_p, callback_handle:c.POINTER[libusb_hotplug_callback_handle]) -> int: ...
@dll.bind(None, c.POINTER[libusb_context], libusb_hotplug_callback_handle)
def libusb_hotplug_deregister_callback(ctx:c.POINTER[libusb_context], callback_handle:libusb_hotplug_callback_handle) -> None: ...
@dll.bind
@dll.bind(ctypes.c_void_p, c.POINTER[libusb_context], libusb_hotplug_callback_handle)
def libusb_hotplug_get_user_data(ctx:c.POINTER[libusb_context], callback_handle:libusb_hotplug_callback_handle) -> ctypes.c_void_p: ...
@dll.bind
def libusb_set_option(ctx:c.POINTER[libusb_context], option:enum_libusb_option) -> Annotated[int, ctypes.c_int32]: ...
c.init_records()
@dll.bind(ctypes.c_int32, c.POINTER[libusb_context], ctypes.c_uint32)
def libusb_set_option(ctx:c.POINTER[libusb_context], option:ctypes.c_uint32) -> int: ...
LIBUSB_DEPRECATED_FOR = lambda f: __attribute__ ((deprecated)) # type: ignore
LIBUSB_API_VERSION = 0x0100010A # type: ignore
LIBUSBX_API_VERSION = LIBUSB_API_VERSION # type: ignore

File diff suppressed because it is too large Load diff

View file

@ -1,96 +1,98 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
dll = c.DLL('llvm_qcom', 'llvm-qcom')
cl_llvm_instance: TypeAlias = ctypes.c_void_p
@dll.bind
@dll.bind(cl_llvm_instance)
def cl_compiler_create_llvm_instance() -> cl_llvm_instance: ...
@dll.bind
@dll.bind(None, cl_llvm_instance)
def cl_compiler_destroy_llvm_instance(inst:cl_llvm_instance) -> None: ...
class enum_cl_handle_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
CL_HANDLE_COMPILED = enum_cl_handle_type.define('CL_HANDLE_COMPILED', 1)
CL_HANDLE_LIBRARY = enum_cl_handle_type.define('CL_HANDLE_LIBRARY', 2)
CL_HANDLE_LINKED = enum_cl_handle_type.define('CL_HANDLE_LINKED', 3)
enum_cl_handle_type: dict[int, str] = {(CL_HANDLE_COMPILED:=1): 'CL_HANDLE_COMPILED', (CL_HANDLE_LIBRARY:=2): 'CL_HANDLE_LIBRARY', (CL_HANDLE_LINKED:=3): 'CL_HANDLE_LINKED'}
@c.record
class struct_cl_compiled_data(c.Struct):
SIZE = 48
chip_id: Annotated[uint64_t, 0]
mode: Annotated[uint32_t, 8]
llvm_bitcode: Annotated[ctypes.c_void_p, 16]
llvm_bitcode_size: Annotated[uint64_t, 24]
build_log: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 32]
build_log_len: Annotated[uint32_t, 40]
error_code: Annotated[uint32_t, 44]
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
chip_id: int
mode: int
llvm_bitcode: ctypes.c_void_p
llvm_bitcode_size: int
build_log: c.POINTER[ctypes.c_char]
build_log_len: int
error_code: int
uint64_t: TypeAlias = ctypes.c_uint64
uint32_t: TypeAlias = ctypes.c_uint32
struct_cl_compiled_data.register_fields([('chip_id', uint64_t, 0), ('mode', uint32_t, 8), ('llvm_bitcode', ctypes.c_void_p, 16), ('llvm_bitcode_size', uint64_t, 24), ('build_log', c.POINTER[ctypes.c_char], 32), ('build_log_len', uint32_t, 40), ('error_code', uint32_t, 44)])
@c.record
class struct_cl_executable_data(c.Struct):
SIZE = 80
num_kernels: Annotated[int32_t, 0]
kernel_props: Annotated[ctypes.c_void_p, 8]
error_code: Annotated[uint32_t, 16]
build_log: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 24]
_unk0: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[32]], 32]
chip_id: Annotated[uint64_t, 64]
mode: Annotated[uint32_t, 72]
int32_t: TypeAlias = Annotated[int, ctypes.c_int32]
num_kernels: int
kernel_props: ctypes.c_void_p
error_code: int
build_log: c.POINTER[ctypes.c_char]
_unk0: c.Array[ctypes.c_char, Literal[32]]
chip_id: int
mode: int
int32_t: TypeAlias = ctypes.c_int32
struct_cl_executable_data.register_fields([('num_kernels', int32_t, 0), ('kernel_props', ctypes.c_void_p, 8), ('error_code', uint32_t, 16), ('build_log', c.POINTER[ctypes.c_char], 24), ('_unk0', c.Array[ctypes.c_char, Literal[32]], 32), ('chip_id', uint64_t, 64), ('mode', uint32_t, 72)])
@c.record
class cl_handle(c.Struct):
SIZE = 16
type: Annotated[enum_cl_handle_type, 0]
compiled: Annotated[c.POINTER[struct_cl_compiled_data], 8]
executable: Annotated[c.POINTER[struct_cl_executable_data], 8]
@dll.bind
def cl_compiler_compile_source(inst:cl_llvm_instance, chip_id:uint64_t, mode:Annotated[int, ctypes.c_int32], options:c.POINTER[Annotated[bytes, ctypes.c_char]], p5:Annotated[int, ctypes.c_int32], p6:uint64_t, p7:uint64_t, source:c.POINTER[Annotated[bytes, ctypes.c_char]], source_len:uint64_t, source_type:uint64_t, p11:ctypes.c_void_p) -> c.POINTER[cl_handle]: ...
@dll.bind
def cl_compiler_link_program(inst:cl_llvm_instance, chip_id:uint64_t, mode:Annotated[int, ctypes.c_int32], options:c.POINTER[Annotated[bytes, ctypes.c_char]], num_handles:Annotated[int, ctypes.c_int32], input_handles:c.POINTER[c.POINTER[cl_handle]]) -> c.POINTER[cl_handle]: ...
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
type: int
compiled: c.POINTER[struct_cl_compiled_data]
executable: c.POINTER[struct_cl_executable_data]
cl_handle.register_fields([('type', ctypes.c_uint32, 0), ('compiled', c.POINTER[struct_cl_compiled_data], 8), ('executable', c.POINTER[struct_cl_executable_data], 8)])
@dll.bind(c.POINTER[cl_handle], cl_llvm_instance, uint64_t, ctypes.c_int32, c.POINTER[ctypes.c_char], ctypes.c_int32, uint64_t, uint64_t, c.POINTER[ctypes.c_char], uint64_t, uint64_t, ctypes.c_void_p)
def cl_compiler_compile_source(inst:cl_llvm_instance, chip_id:uint64_t, mode:int, options:c.POINTER[ctypes.c_char], p5:int, p6:uint64_t, p7:uint64_t, source:c.POINTER[ctypes.c_char], source_len:uint64_t, source_type:uint64_t, p11:ctypes.c_void_p) -> c.POINTER[cl_handle]: ...
@dll.bind(c.POINTER[cl_handle], cl_llvm_instance, uint64_t, ctypes.c_int32, c.POINTER[ctypes.c_char], ctypes.c_int32, c.POINTER[c.POINTER[cl_handle]])
def cl_compiler_link_program(inst:cl_llvm_instance, chip_id:uint64_t, mode:int, options:c.POINTER[ctypes.c_char], num_handles:int, input_handles:c.POINTER[c.POINTER[cl_handle]]) -> c.POINTER[cl_handle]: ...
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(None, c.POINTER[cl_handle], c.POINTER[ctypes.c_void_p], c.POINTER[size_t])
def cl_compiler_handle_create_binary(handle:c.POINTER[cl_handle], out_ptr:c.POINTER[ctypes.c_void_p], out_size:c.POINTER[size_t]) -> None: ...
@c.record
class cl_lib_section(c.Struct):
SIZE = 20
id: Annotated[uint32_t, 0]
offset: Annotated[uint32_t, 4]
size: Annotated[uint32_t, 8]
count: Annotated[uint32_t, 12]
entry_size: Annotated[uint32_t, 16]
id: int
offset: int
size: int
count: int
entry_size: int
cl_lib_section.register_fields([('id', uint32_t, 0), ('offset', uint32_t, 4), ('size', uint32_t, 8), ('count', uint32_t, 12), ('entry_size', uint32_t, 16)])
@c.record
class cl_lib_header(c.Struct):
SIZE = 48
_unk0: Annotated[c.Array[uint32_t, Literal[6]], 0]
num_sections: Annotated[uint32_t, 24]
_unk1: Annotated[c.Array[uint32_t, Literal[5]], 28]
sections: Annotated[c.Array[cl_lib_section, Literal[0]], 48]
_unk0: c.Array[ctypes.c_uint32, Literal[6]]
num_sections: int
_unk1: c.Array[ctypes.c_uint32, Literal[5]]
sections: c.Array[cl_lib_section, Literal[0]]
cl_lib_header.register_fields([('_unk0', c.Array[uint32_t, Literal[6]], 0), ('num_sections', uint32_t, 24), ('_unk1', c.Array[uint32_t, Literal[5]], 28), ('sections', c.Array[cl_lib_section, Literal[0]], 48)])
@c.record
class cl_lib_prog(c.Struct):
SIZE = 28
name: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[8]], 0]
_unk0: Annotated[c.Array[uint32_t, Literal[3]], 8]
fregs: Annotated[uint32_t, 20]
hregs: Annotated[uint32_t, 24]
name: c.Array[ctypes.c_char, Literal[8]]
_unk0: c.Array[ctypes.c_uint32, Literal[3]]
fregs: int
hregs: int
cl_lib_prog.register_fields([('name', c.Array[ctypes.c_char, Literal[8]], 0), ('_unk0', c.Array[uint32_t, Literal[3]], 8), ('fregs', uint32_t, 20), ('hregs', uint32_t, 24)])
@c.record
class cl_lib_img_desc(c.Struct):
SIZE = 344
_unk0: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[196]], 0]
prg_offset: Annotated[uint32_t, 196]
pvtmem: Annotated[uint32_t, 200]
_unk1: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[12]], 204]
shmem: Annotated[uint32_t, 216]
samp_cnt: Annotated[uint32_t, 220]
_unk2: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[40]], 224]
brnchstck: Annotated[uint32_t, 264]
_unk4: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[76]], 268]
kernel_name: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[0]], 344]
@dll.bind
_unk0: c.Array[ctypes.c_char, Literal[196]]
prg_offset: int
pvtmem: int
_unk1: c.Array[ctypes.c_char, Literal[12]]
shmem: int
samp_cnt: int
_unk2: c.Array[ctypes.c_char, Literal[40]]
brnchstck: int
_unk4: c.Array[ctypes.c_char, Literal[76]]
kernel_name: c.Array[ctypes.c_char, Literal[0]]
cl_lib_img_desc.register_fields([('_unk0', c.Array[ctypes.c_char, Literal[196]], 0), ('prg_offset', uint32_t, 196), ('pvtmem', uint32_t, 200), ('_unk1', c.Array[ctypes.c_char, Literal[12]], 204), ('shmem', uint32_t, 216), ('samp_cnt', uint32_t, 220), ('_unk2', c.Array[ctypes.c_char, Literal[40]], 224), ('brnchstck', uint32_t, 264), ('_unk4', c.Array[ctypes.c_char, Literal[76]], 268), ('kernel_name', c.Array[ctypes.c_char, Literal[0]], 344)])
@dll.bind(None, c.POINTER[cl_handle])
def cl_compiler_free_handle(handle:c.POINTER[cl_handle]) -> None: ...
@dll.bind
@dll.bind(None, ctypes.c_void_p)
def cl_compiler_free_assembly(ptr:ctypes.c_void_p) -> None: ...
c.init_records()
CL_MODE_32BIT = 0 # type: ignore
CL_MODE_64BIT = 1 # type: ignore
CL_SRC_STR = 0 # type: ignore

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,59 +1,42 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
import sysconfig
dll = c.DLL('nvjitlink', 'nvJitLink', [f'/{pre}/cuda/targets/{sysconfig.get_config_vars().get("MULTIARCH", "").rsplit("-", 1)[0]}/lib' for pre in ['opt', 'usr/local']])
class nvJitLinkResult(Annotated[int, ctypes.c_uint32], c.Enum): pass
NVJITLINK_SUCCESS = nvJitLinkResult.define('NVJITLINK_SUCCESS', 0)
NVJITLINK_ERROR_UNRECOGNIZED_OPTION = nvJitLinkResult.define('NVJITLINK_ERROR_UNRECOGNIZED_OPTION', 1)
NVJITLINK_ERROR_MISSING_ARCH = nvJitLinkResult.define('NVJITLINK_ERROR_MISSING_ARCH', 2)
NVJITLINK_ERROR_INVALID_INPUT = nvJitLinkResult.define('NVJITLINK_ERROR_INVALID_INPUT', 3)
NVJITLINK_ERROR_PTX_COMPILE = nvJitLinkResult.define('NVJITLINK_ERROR_PTX_COMPILE', 4)
NVJITLINK_ERROR_NVVM_COMPILE = nvJitLinkResult.define('NVJITLINK_ERROR_NVVM_COMPILE', 5)
NVJITLINK_ERROR_INTERNAL = nvJitLinkResult.define('NVJITLINK_ERROR_INTERNAL', 6)
class nvJitLinkInputType(Annotated[int, ctypes.c_uint32], c.Enum): pass
NVJITLINK_INPUT_NONE = nvJitLinkInputType.define('NVJITLINK_INPUT_NONE', 0)
NVJITLINK_INPUT_CUBIN = nvJitLinkInputType.define('NVJITLINK_INPUT_CUBIN', 1)
NVJITLINK_INPUT_PTX = nvJitLinkInputType.define('NVJITLINK_INPUT_PTX', 2)
NVJITLINK_INPUT_LTOIR = nvJitLinkInputType.define('NVJITLINK_INPUT_LTOIR', 3)
NVJITLINK_INPUT_FATBIN = nvJitLinkInputType.define('NVJITLINK_INPUT_FATBIN', 4)
NVJITLINK_INPUT_OBJECT = nvJitLinkInputType.define('NVJITLINK_INPUT_OBJECT', 5)
NVJITLINK_INPUT_LIBRARY = nvJitLinkInputType.define('NVJITLINK_INPUT_LIBRARY', 6)
class struct_nvJitLink(c.Struct): SIZE = 0
nvJitLinkResult: dict[int, str] = {(NVJITLINK_SUCCESS:=0): 'NVJITLINK_SUCCESS', (NVJITLINK_ERROR_UNRECOGNIZED_OPTION:=1): 'NVJITLINK_ERROR_UNRECOGNIZED_OPTION', (NVJITLINK_ERROR_MISSING_ARCH:=2): 'NVJITLINK_ERROR_MISSING_ARCH', (NVJITLINK_ERROR_INVALID_INPUT:=3): 'NVJITLINK_ERROR_INVALID_INPUT', (NVJITLINK_ERROR_PTX_COMPILE:=4): 'NVJITLINK_ERROR_PTX_COMPILE', (NVJITLINK_ERROR_NVVM_COMPILE:=5): 'NVJITLINK_ERROR_NVVM_COMPILE', (NVJITLINK_ERROR_INTERNAL:=6): 'NVJITLINK_ERROR_INTERNAL'}
nvJitLinkInputType: dict[int, str] = {(NVJITLINK_INPUT_NONE:=0): 'NVJITLINK_INPUT_NONE', (NVJITLINK_INPUT_CUBIN:=1): 'NVJITLINK_INPUT_CUBIN', (NVJITLINK_INPUT_PTX:=2): 'NVJITLINK_INPUT_PTX', (NVJITLINK_INPUT_LTOIR:=3): 'NVJITLINK_INPUT_LTOIR', (NVJITLINK_INPUT_FATBIN:=4): 'NVJITLINK_INPUT_FATBIN', (NVJITLINK_INPUT_OBJECT:=5): 'NVJITLINK_INPUT_OBJECT', (NVJITLINK_INPUT_LIBRARY:=6): 'NVJITLINK_INPUT_LIBRARY'}
class struct_nvJitLink(c.Struct): pass
nvJitLinkHandle: TypeAlias = c.POINTER[struct_nvJitLink]
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
def nvJitLinkCreate(handle:c.POINTER[nvJitLinkHandle], numOptions:uint32_t, options:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkDestroy(handle:c.POINTER[nvJitLinkHandle]) -> nvJitLinkResult: ...
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
def nvJitLinkAddData(handle:nvJitLinkHandle, inputType:nvJitLinkInputType, data:ctypes.c_void_p, size:size_t, name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkAddFile(handle:nvJitLinkHandle, inputType:nvJitLinkInputType, fileName:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkComplete(handle:nvJitLinkHandle) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetLinkedCubinSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetLinkedCubin(handle:nvJitLinkHandle, cubin:ctypes.c_void_p) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetLinkedPtxSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetLinkedPtx(handle:nvJitLinkHandle, ptx:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetErrorLogSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetErrorLog(handle:nvJitLinkHandle, log:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetInfoLogSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkGetInfoLog(handle:nvJitLinkHandle, log:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvJitLinkResult: ...
@dll.bind
def nvJitLinkVersion(major:c.POINTER[Annotated[int, ctypes.c_uint32]], minor:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> nvJitLinkResult: ...
c.init_records()
uint32_t: TypeAlias = ctypes.c_uint32
@dll.bind(ctypes.c_uint32, c.POINTER[nvJitLinkHandle], uint32_t, c.POINTER[c.POINTER[ctypes.c_char]])
def nvJitLinkCreate(handle:c.POINTER[nvJitLinkHandle], numOptions:uint32_t, options:c.POINTER[c.POINTER[ctypes.c_char]]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, c.POINTER[nvJitLinkHandle])
def nvJitLinkDestroy(handle:c.POINTER[nvJitLinkHandle]) -> ctypes.c_uint32: ...
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, ctypes.c_uint32, ctypes.c_void_p, size_t, c.POINTER[ctypes.c_char])
def nvJitLinkAddData(handle:nvJitLinkHandle, inputType:ctypes.c_uint32, data:ctypes.c_void_p, size:size_t, name:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, ctypes.c_uint32, c.POINTER[ctypes.c_char])
def nvJitLinkAddFile(handle:nvJitLinkHandle, inputType:ctypes.c_uint32, fileName:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle)
def nvJitLinkComplete(handle:nvJitLinkHandle) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, c.POINTER[size_t])
def nvJitLinkGetLinkedCubinSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, ctypes.c_void_p)
def nvJitLinkGetLinkedCubin(handle:nvJitLinkHandle, cubin:ctypes.c_void_p) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, c.POINTER[size_t])
def nvJitLinkGetLinkedPtxSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, c.POINTER[ctypes.c_char])
def nvJitLinkGetLinkedPtx(handle:nvJitLinkHandle, ptx:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, c.POINTER[size_t])
def nvJitLinkGetErrorLogSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, c.POINTER[ctypes.c_char])
def nvJitLinkGetErrorLog(handle:nvJitLinkHandle, log:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, c.POINTER[size_t])
def nvJitLinkGetInfoLogSize(handle:nvJitLinkHandle, size:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvJitLinkHandle, c.POINTER[ctypes.c_char])
def nvJitLinkGetInfoLog(handle:nvJitLinkHandle, log:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, c.POINTER[ctypes.c_uint32], c.POINTER[ctypes.c_uint32])
def nvJitLinkVersion(major:c.POINTER[ctypes.c_uint32], minor:c.POINTER[ctypes.c_uint32]) -> ctypes.c_uint32: ...

View file

@ -1,69 +1,55 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
import sysconfig
dll = c.DLL('nvrtc', 'nvrtc', [f'/{pre}/cuda/targets/{sysconfig.get_config_vars().get("MULTIARCH", "").rsplit("-", 1)[0]}/lib' for pre in ['opt', 'usr/local']])
class nvrtcResult(Annotated[int, ctypes.c_uint32], c.Enum): pass
NVRTC_SUCCESS = nvrtcResult.define('NVRTC_SUCCESS', 0)
NVRTC_ERROR_OUT_OF_MEMORY = nvrtcResult.define('NVRTC_ERROR_OUT_OF_MEMORY', 1)
NVRTC_ERROR_PROGRAM_CREATION_FAILURE = nvrtcResult.define('NVRTC_ERROR_PROGRAM_CREATION_FAILURE', 2)
NVRTC_ERROR_INVALID_INPUT = nvrtcResult.define('NVRTC_ERROR_INVALID_INPUT', 3)
NVRTC_ERROR_INVALID_PROGRAM = nvrtcResult.define('NVRTC_ERROR_INVALID_PROGRAM', 4)
NVRTC_ERROR_INVALID_OPTION = nvrtcResult.define('NVRTC_ERROR_INVALID_OPTION', 5)
NVRTC_ERROR_COMPILATION = nvrtcResult.define('NVRTC_ERROR_COMPILATION', 6)
NVRTC_ERROR_BUILTIN_OPERATION_FAILURE = nvrtcResult.define('NVRTC_ERROR_BUILTIN_OPERATION_FAILURE', 7)
NVRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION = nvrtcResult.define('NVRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION', 8)
NVRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION = nvrtcResult.define('NVRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION', 9)
NVRTC_ERROR_NAME_EXPRESSION_NOT_VALID = nvrtcResult.define('NVRTC_ERROR_NAME_EXPRESSION_NOT_VALID', 10)
NVRTC_ERROR_INTERNAL_ERROR = nvrtcResult.define('NVRTC_ERROR_INTERNAL_ERROR', 11)
@dll.bind
def nvrtcGetErrorString(result:nvrtcResult) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def nvrtcVersion(major:c.POINTER[Annotated[int, ctypes.c_int32]], minor:c.POINTER[Annotated[int, ctypes.c_int32]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetNumSupportedArchs(numArchs:c.POINTER[Annotated[int, ctypes.c_int32]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetSupportedArchs(supportedArchs:c.POINTER[Annotated[int, ctypes.c_int32]]) -> nvrtcResult: ...
class struct__nvrtcProgram(c.Struct): SIZE = 0
nvrtcResult: dict[int, str] = {(NVRTC_SUCCESS:=0): 'NVRTC_SUCCESS', (NVRTC_ERROR_OUT_OF_MEMORY:=1): 'NVRTC_ERROR_OUT_OF_MEMORY', (NVRTC_ERROR_PROGRAM_CREATION_FAILURE:=2): 'NVRTC_ERROR_PROGRAM_CREATION_FAILURE', (NVRTC_ERROR_INVALID_INPUT:=3): 'NVRTC_ERROR_INVALID_INPUT', (NVRTC_ERROR_INVALID_PROGRAM:=4): 'NVRTC_ERROR_INVALID_PROGRAM', (NVRTC_ERROR_INVALID_OPTION:=5): 'NVRTC_ERROR_INVALID_OPTION', (NVRTC_ERROR_COMPILATION:=6): 'NVRTC_ERROR_COMPILATION', (NVRTC_ERROR_BUILTIN_OPERATION_FAILURE:=7): 'NVRTC_ERROR_BUILTIN_OPERATION_FAILURE', (NVRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION:=8): 'NVRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION', (NVRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION:=9): 'NVRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION', (NVRTC_ERROR_NAME_EXPRESSION_NOT_VALID:=10): 'NVRTC_ERROR_NAME_EXPRESSION_NOT_VALID', (NVRTC_ERROR_INTERNAL_ERROR:=11): 'NVRTC_ERROR_INTERNAL_ERROR'}
@dll.bind(c.POINTER[ctypes.c_char], ctypes.c_uint32)
def nvrtcGetErrorString(result:ctypes.c_uint32) -> c.POINTER[ctypes.c_char]: ...
@dll.bind(ctypes.c_uint32, c.POINTER[ctypes.c_int32], c.POINTER[ctypes.c_int32])
def nvrtcVersion(major:c.POINTER[ctypes.c_int32], minor:c.POINTER[ctypes.c_int32]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, c.POINTER[ctypes.c_int32])
def nvrtcGetNumSupportedArchs(numArchs:c.POINTER[ctypes.c_int32]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, c.POINTER[ctypes.c_int32])
def nvrtcGetSupportedArchs(supportedArchs:c.POINTER[ctypes.c_int32]) -> ctypes.c_uint32: ...
class struct__nvrtcProgram(c.Struct): pass
nvrtcProgram: TypeAlias = c.POINTER[struct__nvrtcProgram]
@dll.bind
def nvrtcCreateProgram(prog:c.POINTER[nvrtcProgram], src:c.POINTER[Annotated[bytes, ctypes.c_char]], name:c.POINTER[Annotated[bytes, ctypes.c_char]], numHeaders:Annotated[int, ctypes.c_int32], headers:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], includeNames:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> nvrtcResult: ...
@dll.bind
def nvrtcDestroyProgram(prog:c.POINTER[nvrtcProgram]) -> nvrtcResult: ...
@dll.bind
def nvrtcCompileProgram(prog:nvrtcProgram, numOptions:Annotated[int, ctypes.c_int32], options:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> nvrtcResult: ...
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
def nvrtcGetPTXSize(prog:nvrtcProgram, ptxSizeRet:c.POINTER[size_t]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetPTX(prog:nvrtcProgram, ptx:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetCUBINSize(prog:nvrtcProgram, cubinSizeRet:c.POINTER[size_t]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetCUBIN(prog:nvrtcProgram, cubin:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetNVVMSize(prog:nvrtcProgram, nvvmSizeRet:c.POINTER[size_t]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetNVVM(prog:nvrtcProgram, nvvm:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetLTOIRSize(prog:nvrtcProgram, LTOIRSizeRet:c.POINTER[size_t]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetLTOIR(prog:nvrtcProgram, LTOIR:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetOptiXIRSize(prog:nvrtcProgram, optixirSizeRet:c.POINTER[size_t]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetOptiXIR(prog:nvrtcProgram, optixir:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetProgramLogSize(prog:nvrtcProgram, logSizeRet:c.POINTER[size_t]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetProgramLog(prog:nvrtcProgram, log:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvrtcResult: ...
@dll.bind
def nvrtcAddNameExpression(prog:nvrtcProgram, name_expression:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> nvrtcResult: ...
@dll.bind
def nvrtcGetLoweredName(prog:nvrtcProgram, name_expression:c.POINTER[Annotated[bytes, ctypes.c_char]], lowered_name:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> nvrtcResult: ...
c.init_records()
@dll.bind(ctypes.c_uint32, c.POINTER[nvrtcProgram], c.POINTER[ctypes.c_char], c.POINTER[ctypes.c_char], ctypes.c_int32, c.POINTER[c.POINTER[ctypes.c_char]], c.POINTER[c.POINTER[ctypes.c_char]])
def nvrtcCreateProgram(prog:c.POINTER[nvrtcProgram], src:c.POINTER[ctypes.c_char], name:c.POINTER[ctypes.c_char], numHeaders:int, headers:c.POINTER[c.POINTER[ctypes.c_char]], includeNames:c.POINTER[c.POINTER[ctypes.c_char]]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, c.POINTER[nvrtcProgram])
def nvrtcDestroyProgram(prog:c.POINTER[nvrtcProgram]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, ctypes.c_int32, c.POINTER[c.POINTER[ctypes.c_char]])
def nvrtcCompileProgram(prog:nvrtcProgram, numOptions:int, options:c.POINTER[c.POINTER[ctypes.c_char]]) -> ctypes.c_uint32: ...
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[size_t])
def nvrtcGetPTXSize(prog:nvrtcProgram, ptxSizeRet:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char])
def nvrtcGetPTX(prog:nvrtcProgram, ptx:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[size_t])
def nvrtcGetCUBINSize(prog:nvrtcProgram, cubinSizeRet:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char])
def nvrtcGetCUBIN(prog:nvrtcProgram, cubin:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[size_t])
def nvrtcGetNVVMSize(prog:nvrtcProgram, nvvmSizeRet:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char])
def nvrtcGetNVVM(prog:nvrtcProgram, nvvm:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[size_t])
def nvrtcGetLTOIRSize(prog:nvrtcProgram, LTOIRSizeRet:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char])
def nvrtcGetLTOIR(prog:nvrtcProgram, LTOIR:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[size_t])
def nvrtcGetOptiXIRSize(prog:nvrtcProgram, optixirSizeRet:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char])
def nvrtcGetOptiXIR(prog:nvrtcProgram, optixir:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[size_t])
def nvrtcGetProgramLogSize(prog:nvrtcProgram, logSizeRet:c.POINTER[size_t]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char])
def nvrtcGetProgramLog(prog:nvrtcProgram, log:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char])
def nvrtcAddNameExpression(prog:nvrtcProgram, name_expression:c.POINTER[ctypes.c_char]) -> ctypes.c_uint32: ...
@dll.bind(ctypes.c_uint32, nvrtcProgram, c.POINTER[ctypes.c_char], c.POINTER[c.POINTER[ctypes.c_char]])
def nvrtcGetLoweredName(prog:nvrtcProgram, name_expression:c.POINTER[ctypes.c_char], lowered_name:c.POINTER[c.POINTER[ctypes.c_char]]) -> ctypes.c_uint32: ...
__DEPRECATED__ = lambda msg: __attribute__((deprecated(msg))) # type: ignore

View file

@ -1,346 +1,349 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
dll = c.DLL('opencl', 'OpenCL')
class struct__cl_platform_id(c.Struct): SIZE = 0
class struct__cl_platform_id(c.Struct): pass
cl_platform_id: TypeAlias = c.POINTER[struct__cl_platform_id]
class struct__cl_device_id(c.Struct): SIZE = 0
class struct__cl_device_id(c.Struct): pass
cl_device_id: TypeAlias = c.POINTER[struct__cl_device_id]
class struct__cl_context(c.Struct): SIZE = 0
class struct__cl_context(c.Struct): pass
cl_context: TypeAlias = c.POINTER[struct__cl_context]
class struct__cl_command_queue(c.Struct): SIZE = 0
class struct__cl_command_queue(c.Struct): pass
cl_command_queue: TypeAlias = c.POINTER[struct__cl_command_queue]
class struct__cl_mem(c.Struct): SIZE = 0
class struct__cl_mem(c.Struct): pass
cl_mem: TypeAlias = c.POINTER[struct__cl_mem]
class struct__cl_program(c.Struct): SIZE = 0
class struct__cl_program(c.Struct): pass
cl_program: TypeAlias = c.POINTER[struct__cl_program]
class struct__cl_kernel(c.Struct): SIZE = 0
class struct__cl_kernel(c.Struct): pass
cl_kernel: TypeAlias = c.POINTER[struct__cl_kernel]
class struct__cl_event(c.Struct): SIZE = 0
class struct__cl_event(c.Struct): pass
cl_event: TypeAlias = c.POINTER[struct__cl_event]
class struct__cl_sampler(c.Struct): SIZE = 0
class struct__cl_sampler(c.Struct): pass
cl_sampler: TypeAlias = c.POINTER[struct__cl_sampler]
cl_bool: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_bitfield: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_properties: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_device_type: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_platform_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_device_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_device_fp_config: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_device_mem_cache_type: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_device_local_mem_type: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_device_exec_capabilities: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_device_svm_capabilities: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_command_queue_properties: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_device_partition_property: TypeAlias = Annotated[int, ctypes.c_int64]
cl_device_affinity_domain: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_context_properties: TypeAlias = Annotated[int, ctypes.c_int64]
cl_context_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_queue_properties: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_command_queue_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_channel_order: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_channel_type: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_mem_flags: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_svm_mem_flags: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_mem_object_type: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_mem_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_mem_migration_flags: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_image_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_buffer_create_type: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_addressing_mode: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_filter_mode: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_sampler_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_map_flags: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_pipe_properties: TypeAlias = Annotated[int, ctypes.c_int64]
cl_pipe_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_program_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_program_build_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_program_binary_type: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_build_status: TypeAlias = Annotated[int, ctypes.c_int32]
cl_kernel_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_kernel_arg_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_kernel_arg_address_qualifier: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_kernel_arg_access_qualifier: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_kernel_arg_type_qualifier: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_kernel_work_group_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_kernel_sub_group_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_event_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_command_type: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_profiling_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_sampler_properties: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_kernel_exec_info: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_device_atomic_capabilities: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_device_device_enqueue_capabilities: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_khronos_vendor_id: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_mem_properties: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_version: TypeAlias = Annotated[int, ctypes.c_uint32]
cl_bool: TypeAlias = ctypes.c_uint32
cl_bitfield: TypeAlias = ctypes.c_uint64
cl_properties: TypeAlias = ctypes.c_uint64
cl_device_type: TypeAlias = ctypes.c_uint64
cl_platform_info: TypeAlias = ctypes.c_uint32
cl_device_info: TypeAlias = ctypes.c_uint32
cl_device_fp_config: TypeAlias = ctypes.c_uint64
cl_device_mem_cache_type: TypeAlias = ctypes.c_uint32
cl_device_local_mem_type: TypeAlias = ctypes.c_uint32
cl_device_exec_capabilities: TypeAlias = ctypes.c_uint64
cl_device_svm_capabilities: TypeAlias = ctypes.c_uint64
cl_command_queue_properties: TypeAlias = ctypes.c_uint64
cl_device_partition_property: TypeAlias = ctypes.c_int64
cl_device_affinity_domain: TypeAlias = ctypes.c_uint64
cl_context_properties: TypeAlias = ctypes.c_int64
cl_context_info: TypeAlias = ctypes.c_uint32
cl_queue_properties: TypeAlias = ctypes.c_uint64
cl_command_queue_info: TypeAlias = ctypes.c_uint32
cl_channel_order: TypeAlias = ctypes.c_uint32
cl_channel_type: TypeAlias = ctypes.c_uint32
cl_mem_flags: TypeAlias = ctypes.c_uint64
cl_svm_mem_flags: TypeAlias = ctypes.c_uint64
cl_mem_object_type: TypeAlias = ctypes.c_uint32
cl_mem_info: TypeAlias = ctypes.c_uint32
cl_mem_migration_flags: TypeAlias = ctypes.c_uint64
cl_image_info: TypeAlias = ctypes.c_uint32
cl_buffer_create_type: TypeAlias = ctypes.c_uint32
cl_addressing_mode: TypeAlias = ctypes.c_uint32
cl_filter_mode: TypeAlias = ctypes.c_uint32
cl_sampler_info: TypeAlias = ctypes.c_uint32
cl_map_flags: TypeAlias = ctypes.c_uint64
cl_pipe_properties: TypeAlias = ctypes.c_int64
cl_pipe_info: TypeAlias = ctypes.c_uint32
cl_program_info: TypeAlias = ctypes.c_uint32
cl_program_build_info: TypeAlias = ctypes.c_uint32
cl_program_binary_type: TypeAlias = ctypes.c_uint32
cl_build_status: TypeAlias = ctypes.c_int32
cl_kernel_info: TypeAlias = ctypes.c_uint32
cl_kernel_arg_info: TypeAlias = ctypes.c_uint32
cl_kernel_arg_address_qualifier: TypeAlias = ctypes.c_uint32
cl_kernel_arg_access_qualifier: TypeAlias = ctypes.c_uint32
cl_kernel_arg_type_qualifier: TypeAlias = ctypes.c_uint64
cl_kernel_work_group_info: TypeAlias = ctypes.c_uint32
cl_kernel_sub_group_info: TypeAlias = ctypes.c_uint32
cl_event_info: TypeAlias = ctypes.c_uint32
cl_command_type: TypeAlias = ctypes.c_uint32
cl_profiling_info: TypeAlias = ctypes.c_uint32
cl_sampler_properties: TypeAlias = ctypes.c_uint64
cl_kernel_exec_info: TypeAlias = ctypes.c_uint32
cl_device_atomic_capabilities: TypeAlias = ctypes.c_uint64
cl_device_device_enqueue_capabilities: TypeAlias = ctypes.c_uint64
cl_khronos_vendor_id: TypeAlias = ctypes.c_uint32
cl_mem_properties: TypeAlias = ctypes.c_uint64
cl_version: TypeAlias = ctypes.c_uint32
@c.record
class struct__cl_image_format(c.Struct):
SIZE = 8
image_channel_order: Annotated[cl_channel_order, 0]
image_channel_data_type: Annotated[cl_channel_type, 4]
image_channel_order: int
image_channel_data_type: int
struct__cl_image_format.register_fields([('image_channel_order', cl_channel_order, 0), ('image_channel_data_type', cl_channel_type, 4)])
cl_image_format: TypeAlias = struct__cl_image_format
@c.record
class struct__cl_image_desc(c.Struct):
SIZE = 72
image_type: Annotated[cl_mem_object_type, 0]
image_width: Annotated[size_t, 8]
image_height: Annotated[size_t, 16]
image_depth: Annotated[size_t, 24]
image_array_size: Annotated[size_t, 32]
image_row_pitch: Annotated[size_t, 40]
image_slice_pitch: Annotated[size_t, 48]
num_mip_levels: Annotated[cl_uint, 56]
num_samples: Annotated[cl_uint, 60]
buffer: Annotated[cl_mem, 64]
mem_object: Annotated[cl_mem, 64]
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
cl_uint: TypeAlias = Annotated[int, ctypes.c_uint32]
image_type: int
image_width: int
image_height: int
image_depth: int
image_array_size: int
image_row_pitch: int
image_slice_pitch: int
num_mip_levels: int
num_samples: int
buffer: c.POINTER[struct__cl_mem]
mem_object: c.POINTER[struct__cl_mem]
size_t: TypeAlias = ctypes.c_uint64
cl_uint: TypeAlias = ctypes.c_uint32
struct__cl_image_desc.register_fields([('image_type', cl_mem_object_type, 0), ('image_width', size_t, 8), ('image_height', size_t, 16), ('image_depth', size_t, 24), ('image_array_size', size_t, 32), ('image_row_pitch', size_t, 40), ('image_slice_pitch', size_t, 48), ('num_mip_levels', cl_uint, 56), ('num_samples', cl_uint, 60), ('buffer', cl_mem, 64), ('mem_object', cl_mem, 64)])
cl_image_desc: TypeAlias = struct__cl_image_desc
@c.record
class struct__cl_buffer_region(c.Struct):
SIZE = 16
origin: Annotated[size_t, 0]
size: Annotated[size_t, 8]
origin: int
size: int
struct__cl_buffer_region.register_fields([('origin', size_t, 0), ('size', size_t, 8)])
cl_buffer_region: TypeAlias = struct__cl_buffer_region
@c.record
class struct__cl_name_version(c.Struct):
SIZE = 68
version: Annotated[cl_version, 0]
name: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[64]], 4]
version: int
name: c.Array[ctypes.c_char, Literal[64]]
struct__cl_name_version.register_fields([('version', cl_version, 0), ('name', c.Array[ctypes.c_char, Literal[64]], 4)])
cl_name_version: TypeAlias = struct__cl_name_version
cl_int: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
cl_int: TypeAlias = ctypes.c_int32
@dll.bind(cl_int, cl_uint, c.POINTER[cl_platform_id], c.POINTER[cl_uint])
def clGetPlatformIDs(num_entries:cl_uint, platforms:c.POINTER[cl_platform_id], num_platforms:c.POINTER[cl_uint]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_platform_id, cl_platform_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetPlatformInfo(platform:cl_platform_id, param_name:cl_platform_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_platform_id, cl_device_type, cl_uint, c.POINTER[cl_device_id], c.POINTER[cl_uint])
def clGetDeviceIDs(platform:cl_platform_id, device_type:cl_device_type, num_entries:cl_uint, devices:c.POINTER[cl_device_id], num_devices:c.POINTER[cl_uint]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_device_id, cl_device_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetDeviceInfo(device:cl_device_id, param_name:cl_device_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_device_id, c.POINTER[cl_device_partition_property], cl_uint, c.POINTER[cl_device_id], c.POINTER[cl_uint])
def clCreateSubDevices(in_device:cl_device_id, properties:c.POINTER[cl_device_partition_property], num_devices:cl_uint, out_devices:c.POINTER[cl_device_id], num_devices_ret:c.POINTER[cl_uint]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_device_id)
def clRetainDevice(device:cl_device_id) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_device_id)
def clReleaseDevice(device:cl_device_id) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_context, cl_device_id, cl_command_queue)
def clSetDefaultDeviceCommandQueue(context:cl_context, device:cl_device_id, command_queue:cl_command_queue) -> cl_int: ...
cl_ulong: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
cl_ulong: TypeAlias = ctypes.c_uint64
@dll.bind(cl_int, cl_device_id, c.POINTER[cl_ulong], c.POINTER[cl_ulong])
def clGetDeviceAndHostTimer(device:cl_device_id, device_timestamp:c.POINTER[cl_ulong], host_timestamp:c.POINTER[cl_ulong]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_device_id, c.POINTER[cl_ulong])
def clGetHostTimer(device:cl_device_id, host_timestamp:c.POINTER[cl_ulong]) -> cl_int: ...
@dll.bind
def clCreateContext(properties:c.POINTER[cl_context_properties], num_devices:cl_uint, devices:c.POINTER[cl_device_id], pfn_notify:c.CFUNCTYPE[None, [c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p, size_t, ctypes.c_void_p]], user_data:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_context: ...
@dll.bind
def clCreateContextFromType(properties:c.POINTER[cl_context_properties], device_type:cl_device_type, pfn_notify:c.CFUNCTYPE[None, [c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p, size_t, ctypes.c_void_p]], user_data:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_context: ...
@dll.bind
@dll.bind(cl_context, c.POINTER[cl_context_properties], cl_uint, c.POINTER[cl_device_id], c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p, size_t, ctypes.c_void_p]], ctypes.c_void_p, c.POINTER[cl_int])
def clCreateContext(properties:c.POINTER[cl_context_properties], num_devices:cl_uint, devices:c.POINTER[cl_device_id], pfn_notify:c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p, size_t, ctypes.c_void_p]], user_data:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_context: ...
@dll.bind(cl_context, c.POINTER[cl_context_properties], cl_device_type, c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p, size_t, ctypes.c_void_p]], ctypes.c_void_p, c.POINTER[cl_int])
def clCreateContextFromType(properties:c.POINTER[cl_context_properties], device_type:cl_device_type, pfn_notify:c.CFUNCTYPE[None, [c.POINTER[ctypes.c_char], ctypes.c_void_p, size_t, ctypes.c_void_p]], user_data:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_context: ...
@dll.bind(cl_int, cl_context)
def clRetainContext(context:cl_context) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_context)
def clReleaseContext(context:cl_context) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_context, cl_context_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetContextInfo(context:cl_context, param_name:cl_context_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_context, c.CFUNCTYPE[None, [cl_context, ctypes.c_void_p]], ctypes.c_void_p)
def clSetContextDestructorCallback(context:cl_context, pfn_notify:c.CFUNCTYPE[None, [cl_context, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(cl_command_queue, cl_context, cl_device_id, c.POINTER[cl_queue_properties], c.POINTER[cl_int])
def clCreateCommandQueueWithProperties(context:cl_context, device:cl_device_id, properties:c.POINTER[cl_queue_properties], errcode_ret:c.POINTER[cl_int]) -> cl_command_queue: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue)
def clRetainCommandQueue(command_queue:cl_command_queue) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue)
def clReleaseCommandQueue(command_queue:cl_command_queue) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_command_queue_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetCommandQueueInfo(command_queue:cl_command_queue, param_name:cl_command_queue_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_mem, cl_context, cl_mem_flags, size_t, ctypes.c_void_p, c.POINTER[cl_int])
def clCreateBuffer(context:cl_context, flags:cl_mem_flags, size:size_t, host_ptr:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_mem, cl_mem, cl_mem_flags, cl_buffer_create_type, ctypes.c_void_p, c.POINTER[cl_int])
def clCreateSubBuffer(buffer:cl_mem, flags:cl_mem_flags, buffer_create_type:cl_buffer_create_type, buffer_create_info:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_mem, cl_context, cl_mem_flags, c.POINTER[cl_image_format], c.POINTER[cl_image_desc], ctypes.c_void_p, c.POINTER[cl_int])
def clCreateImage(context:cl_context, flags:cl_mem_flags, image_format:c.POINTER[cl_image_format], image_desc:c.POINTER[cl_image_desc], host_ptr:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_mem, cl_context, cl_mem_flags, cl_uint, cl_uint, c.POINTER[cl_pipe_properties], c.POINTER[cl_int])
def clCreatePipe(context:cl_context, flags:cl_mem_flags, pipe_packet_size:cl_uint, pipe_max_packets:cl_uint, properties:c.POINTER[cl_pipe_properties], errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_mem, cl_context, c.POINTER[cl_mem_properties], cl_mem_flags, size_t, ctypes.c_void_p, c.POINTER[cl_int])
def clCreateBufferWithProperties(context:cl_context, properties:c.POINTER[cl_mem_properties], flags:cl_mem_flags, size:size_t, host_ptr:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_mem, cl_context, c.POINTER[cl_mem_properties], cl_mem_flags, c.POINTER[cl_image_format], c.POINTER[cl_image_desc], ctypes.c_void_p, c.POINTER[cl_int])
def clCreateImageWithProperties(context:cl_context, properties:c.POINTER[cl_mem_properties], flags:cl_mem_flags, image_format:c.POINTER[cl_image_format], image_desc:c.POINTER[cl_image_desc], host_ptr:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_int, cl_mem)
def clRetainMemObject(memobj:cl_mem) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_mem)
def clReleaseMemObject(memobj:cl_mem) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_context, cl_mem_flags, cl_mem_object_type, cl_uint, c.POINTER[cl_image_format], c.POINTER[cl_uint])
def clGetSupportedImageFormats(context:cl_context, flags:cl_mem_flags, image_type:cl_mem_object_type, num_entries:cl_uint, image_formats:c.POINTER[cl_image_format], num_image_formats:c.POINTER[cl_uint]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_mem, cl_mem_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetMemObjectInfo(memobj:cl_mem, param_name:cl_mem_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_mem, cl_image_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetImageInfo(image:cl_mem, param_name:cl_image_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_mem, cl_pipe_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetPipeInfo(pipe:cl_mem, param_name:cl_pipe_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_mem, c.CFUNCTYPE[None, [cl_mem, ctypes.c_void_p]], ctypes.c_void_p)
def clSetMemObjectDestructorCallback(memobj:cl_mem, pfn_notify:c.CFUNCTYPE[None, [cl_mem, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(ctypes.c_void_p, cl_context, cl_svm_mem_flags, size_t, cl_uint)
def clSVMAlloc(context:cl_context, flags:cl_svm_mem_flags, size:size_t, alignment:cl_uint) -> ctypes.c_void_p: ...
@dll.bind
@dll.bind(None, cl_context, ctypes.c_void_p)
def clSVMFree(context:cl_context, svm_pointer:ctypes.c_void_p) -> None: ...
@dll.bind
@dll.bind(cl_sampler, cl_context, c.POINTER[cl_sampler_properties], c.POINTER[cl_int])
def clCreateSamplerWithProperties(context:cl_context, sampler_properties:c.POINTER[cl_sampler_properties], errcode_ret:c.POINTER[cl_int]) -> cl_sampler: ...
@dll.bind
@dll.bind(cl_int, cl_sampler)
def clRetainSampler(sampler:cl_sampler) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_sampler)
def clReleaseSampler(sampler:cl_sampler) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_sampler, cl_sampler_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetSamplerInfo(sampler:cl_sampler, param_name:cl_sampler_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
def clCreateProgramWithSource(context:cl_context, count:cl_uint, strings:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], lengths:c.POINTER[size_t], errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind
def clCreateProgramWithBinary(context:cl_context, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], lengths:c.POINTER[size_t], binaries:c.POINTER[c.POINTER[Annotated[int, ctypes.c_ubyte]]], binary_status:c.POINTER[cl_int], errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind
def clCreateProgramWithBuiltInKernels(context:cl_context, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], kernel_names:c.POINTER[Annotated[bytes, ctypes.c_char]], errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind
@dll.bind(cl_program, cl_context, cl_uint, c.POINTER[c.POINTER[ctypes.c_char]], c.POINTER[size_t], c.POINTER[cl_int])
def clCreateProgramWithSource(context:cl_context, count:cl_uint, strings:c.POINTER[c.POINTER[ctypes.c_char]], lengths:c.POINTER[size_t], errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind(cl_program, cl_context, cl_uint, c.POINTER[cl_device_id], c.POINTER[size_t], c.POINTER[c.POINTER[ctypes.c_ubyte]], c.POINTER[cl_int], c.POINTER[cl_int])
def clCreateProgramWithBinary(context:cl_context, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], lengths:c.POINTER[size_t], binaries:c.POINTER[c.POINTER[ctypes.c_ubyte]], binary_status:c.POINTER[cl_int], errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind(cl_program, cl_context, cl_uint, c.POINTER[cl_device_id], c.POINTER[ctypes.c_char], c.POINTER[cl_int])
def clCreateProgramWithBuiltInKernels(context:cl_context, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], kernel_names:c.POINTER[ctypes.c_char], errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind(cl_program, cl_context, ctypes.c_void_p, size_t, c.POINTER[cl_int])
def clCreateProgramWithIL(context:cl_context, il:ctypes.c_void_p, length:size_t, errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind
@dll.bind(cl_int, cl_program)
def clRetainProgram(program:cl_program) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_program)
def clReleaseProgram(program:cl_program) -> cl_int: ...
@dll.bind
def clBuildProgram(program:cl_program, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], options:c.POINTER[Annotated[bytes, ctypes.c_char]], pfn_notify:c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind
def clCompileProgram(program:cl_program, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], options:c.POINTER[Annotated[bytes, ctypes.c_char]], num_input_headers:cl_uint, input_headers:c.POINTER[cl_program], header_include_names:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], pfn_notify:c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind
def clLinkProgram(context:cl_context, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], options:c.POINTER[Annotated[bytes, ctypes.c_char]], num_input_programs:cl_uint, input_programs:c.POINTER[cl_program], pfn_notify:c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], user_data:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind
@dll.bind(cl_int, cl_program, cl_uint, c.POINTER[cl_device_id], c.POINTER[ctypes.c_char], c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], ctypes.c_void_p)
def clBuildProgram(program:cl_program, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], options:c.POINTER[ctypes.c_char], pfn_notify:c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind(cl_int, cl_program, cl_uint, c.POINTER[cl_device_id], c.POINTER[ctypes.c_char], cl_uint, c.POINTER[cl_program], c.POINTER[c.POINTER[ctypes.c_char]], c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], ctypes.c_void_p)
def clCompileProgram(program:cl_program, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], options:c.POINTER[ctypes.c_char], num_input_headers:cl_uint, input_headers:c.POINTER[cl_program], header_include_names:c.POINTER[c.POINTER[ctypes.c_char]], pfn_notify:c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind(cl_program, cl_context, cl_uint, c.POINTER[cl_device_id], c.POINTER[ctypes.c_char], cl_uint, c.POINTER[cl_program], c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], ctypes.c_void_p, c.POINTER[cl_int])
def clLinkProgram(context:cl_context, num_devices:cl_uint, device_list:c.POINTER[cl_device_id], options:c.POINTER[ctypes.c_char], num_input_programs:cl_uint, input_programs:c.POINTER[cl_program], pfn_notify:c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], user_data:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_program: ...
@dll.bind(cl_int, cl_program, c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], ctypes.c_void_p)
def clSetProgramReleaseCallback(program:cl_program, pfn_notify:c.CFUNCTYPE[None, [cl_program, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_program, cl_uint, size_t, ctypes.c_void_p)
def clSetProgramSpecializationConstant(program:cl_program, spec_id:cl_uint, spec_size:size_t, spec_value:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_platform_id)
def clUnloadPlatformCompiler(platform:cl_platform_id) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_program, cl_program_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetProgramInfo(program:cl_program, param_name:cl_program_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_program, cl_device_id, cl_program_build_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetProgramBuildInfo(program:cl_program, device:cl_device_id, param_name:cl_program_build_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
def clCreateKernel(program:cl_program, kernel_name:c.POINTER[Annotated[bytes, ctypes.c_char]], errcode_ret:c.POINTER[cl_int]) -> cl_kernel: ...
@dll.bind
@dll.bind(cl_kernel, cl_program, c.POINTER[ctypes.c_char], c.POINTER[cl_int])
def clCreateKernel(program:cl_program, kernel_name:c.POINTER[ctypes.c_char], errcode_ret:c.POINTER[cl_int]) -> cl_kernel: ...
@dll.bind(cl_int, cl_program, cl_uint, c.POINTER[cl_kernel], c.POINTER[cl_uint])
def clCreateKernelsInProgram(program:cl_program, num_kernels:cl_uint, kernels:c.POINTER[cl_kernel], num_kernels_ret:c.POINTER[cl_uint]) -> cl_int: ...
@dll.bind
@dll.bind(cl_kernel, cl_kernel, c.POINTER[cl_int])
def clCloneKernel(source_kernel:cl_kernel, errcode_ret:c.POINTER[cl_int]) -> cl_kernel: ...
@dll.bind
@dll.bind(cl_int, cl_kernel)
def clRetainKernel(kernel:cl_kernel) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel)
def clReleaseKernel(kernel:cl_kernel) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel, cl_uint, size_t, ctypes.c_void_p)
def clSetKernelArg(kernel:cl_kernel, arg_index:cl_uint, arg_size:size_t, arg_value:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel, cl_uint, ctypes.c_void_p)
def clSetKernelArgSVMPointer(kernel:cl_kernel, arg_index:cl_uint, arg_value:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel, cl_kernel_exec_info, size_t, ctypes.c_void_p)
def clSetKernelExecInfo(kernel:cl_kernel, param_name:cl_kernel_exec_info, param_value_size:size_t, param_value:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel, cl_kernel_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetKernelInfo(kernel:cl_kernel, param_name:cl_kernel_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel, cl_uint, cl_kernel_arg_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetKernelArgInfo(kernel:cl_kernel, arg_indx:cl_uint, param_name:cl_kernel_arg_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel, cl_device_id, cl_kernel_work_group_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetKernelWorkGroupInfo(kernel:cl_kernel, device:cl_device_id, param_name:cl_kernel_work_group_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_kernel, cl_device_id, cl_kernel_sub_group_info, size_t, ctypes.c_void_p, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetKernelSubGroupInfo(kernel:cl_kernel, device:cl_device_id, param_name:cl_kernel_sub_group_info, input_value_size:size_t, input_value:ctypes.c_void_p, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_uint, c.POINTER[cl_event])
def clWaitForEvents(num_events:cl_uint, event_list:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_event, cl_event_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetEventInfo(event:cl_event, param_name:cl_event_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_event, cl_context, c.POINTER[cl_int])
def clCreateUserEvent(context:cl_context, errcode_ret:c.POINTER[cl_int]) -> cl_event: ...
@dll.bind
@dll.bind(cl_int, cl_event)
def clRetainEvent(event:cl_event) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_event)
def clReleaseEvent(event:cl_event) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_event, cl_int)
def clSetUserEventStatus(event:cl_event, execution_status:cl_int) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_event, cl_int, c.CFUNCTYPE[None, [cl_event, cl_int, ctypes.c_void_p]], ctypes.c_void_p)
def clSetEventCallback(event:cl_event, command_exec_callback_type:cl_int, pfn_notify:c.CFUNCTYPE[None, [cl_event, cl_int, ctypes.c_void_p]], user_data:ctypes.c_void_p) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_event, cl_profiling_info, size_t, ctypes.c_void_p, c.POINTER[size_t])
def clGetEventProfilingInfo(event:cl_event, param_name:cl_profiling_info, param_value_size:size_t, param_value:ctypes.c_void_p, param_value_size_ret:c.POINTER[size_t]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue)
def clFlush(command_queue:cl_command_queue) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue)
def clFinish(command_queue:cl_command_queue) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_bool, size_t, size_t, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueReadBuffer(command_queue:cl_command_queue, buffer:cl_mem, blocking_read:cl_bool, offset:size_t, size:size_t, ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_bool, c.POINTER[size_t], c.POINTER[size_t], c.POINTER[size_t], size_t, size_t, size_t, size_t, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueReadBufferRect(command_queue:cl_command_queue, buffer:cl_mem, blocking_read:cl_bool, buffer_origin:c.POINTER[size_t], host_origin:c.POINTER[size_t], region:c.POINTER[size_t], buffer_row_pitch:size_t, buffer_slice_pitch:size_t, host_row_pitch:size_t, host_slice_pitch:size_t, ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_bool, size_t, size_t, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueWriteBuffer(command_queue:cl_command_queue, buffer:cl_mem, blocking_write:cl_bool, offset:size_t, size:size_t, ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_bool, c.POINTER[size_t], c.POINTER[size_t], c.POINTER[size_t], size_t, size_t, size_t, size_t, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueWriteBufferRect(command_queue:cl_command_queue, buffer:cl_mem, blocking_write:cl_bool, buffer_origin:c.POINTER[size_t], host_origin:c.POINTER[size_t], region:c.POINTER[size_t], buffer_row_pitch:size_t, buffer_slice_pitch:size_t, host_row_pitch:size_t, host_slice_pitch:size_t, ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, ctypes.c_void_p, size_t, size_t, size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueFillBuffer(command_queue:cl_command_queue, buffer:cl_mem, pattern:ctypes.c_void_p, pattern_size:size_t, offset:size_t, size:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_mem, size_t, size_t, size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueCopyBuffer(command_queue:cl_command_queue, src_buffer:cl_mem, dst_buffer:cl_mem, src_offset:size_t, dst_offset:size_t, size:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_mem, c.POINTER[size_t], c.POINTER[size_t], c.POINTER[size_t], size_t, size_t, size_t, size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueCopyBufferRect(command_queue:cl_command_queue, src_buffer:cl_mem, dst_buffer:cl_mem, src_origin:c.POINTER[size_t], dst_origin:c.POINTER[size_t], region:c.POINTER[size_t], src_row_pitch:size_t, src_slice_pitch:size_t, dst_row_pitch:size_t, dst_slice_pitch:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_bool, c.POINTER[size_t], c.POINTER[size_t], size_t, size_t, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueReadImage(command_queue:cl_command_queue, image:cl_mem, blocking_read:cl_bool, origin:c.POINTER[size_t], region:c.POINTER[size_t], row_pitch:size_t, slice_pitch:size_t, ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_bool, c.POINTER[size_t], c.POINTER[size_t], size_t, size_t, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueWriteImage(command_queue:cl_command_queue, image:cl_mem, blocking_write:cl_bool, origin:c.POINTER[size_t], region:c.POINTER[size_t], input_row_pitch:size_t, input_slice_pitch:size_t, ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, ctypes.c_void_p, c.POINTER[size_t], c.POINTER[size_t], cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueFillImage(command_queue:cl_command_queue, image:cl_mem, fill_color:ctypes.c_void_p, origin:c.POINTER[size_t], region:c.POINTER[size_t], num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_mem, c.POINTER[size_t], c.POINTER[size_t], c.POINTER[size_t], cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueCopyImage(command_queue:cl_command_queue, src_image:cl_mem, dst_image:cl_mem, src_origin:c.POINTER[size_t], dst_origin:c.POINTER[size_t], region:c.POINTER[size_t], num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_mem, c.POINTER[size_t], c.POINTER[size_t], size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueCopyImageToBuffer(command_queue:cl_command_queue, src_image:cl_mem, dst_buffer:cl_mem, src_origin:c.POINTER[size_t], region:c.POINTER[size_t], dst_offset:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, cl_mem, size_t, c.POINTER[size_t], c.POINTER[size_t], cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueCopyBufferToImage(command_queue:cl_command_queue, src_buffer:cl_mem, dst_image:cl_mem, src_offset:size_t, dst_origin:c.POINTER[size_t], region:c.POINTER[size_t], num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(ctypes.c_void_p, cl_command_queue, cl_mem, cl_bool, cl_map_flags, size_t, size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event], c.POINTER[cl_int])
def clEnqueueMapBuffer(command_queue:cl_command_queue, buffer:cl_mem, blocking_map:cl_bool, map_flags:cl_map_flags, offset:size_t, size:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event], errcode_ret:c.POINTER[cl_int]) -> ctypes.c_void_p: ...
@dll.bind
@dll.bind(ctypes.c_void_p, cl_command_queue, cl_mem, cl_bool, cl_map_flags, c.POINTER[size_t], c.POINTER[size_t], c.POINTER[size_t], c.POINTER[size_t], cl_uint, c.POINTER[cl_event], c.POINTER[cl_event], c.POINTER[cl_int])
def clEnqueueMapImage(command_queue:cl_command_queue, image:cl_mem, blocking_map:cl_bool, map_flags:cl_map_flags, origin:c.POINTER[size_t], region:c.POINTER[size_t], image_row_pitch:c.POINTER[size_t], image_slice_pitch:c.POINTER[size_t], num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event], errcode_ret:c.POINTER[cl_int]) -> ctypes.c_void_p: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_mem, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueUnmapMemObject(command_queue:cl_command_queue, memobj:cl_mem, mapped_ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_uint, c.POINTER[cl_mem], cl_mem_migration_flags, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueMigrateMemObjects(command_queue:cl_command_queue, num_mem_objects:cl_uint, mem_objects:c.POINTER[cl_mem], flags:cl_mem_migration_flags, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_kernel, cl_uint, c.POINTER[size_t], c.POINTER[size_t], c.POINTER[size_t], cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueNDRangeKernel(command_queue:cl_command_queue, kernel:cl_kernel, work_dim:cl_uint, global_work_offset:c.POINTER[size_t], global_work_size:c.POINTER[size_t], local_work_size:c.POINTER[size_t], num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, c.CFUNCTYPE[None, [ctypes.c_void_p]], ctypes.c_void_p, size_t, cl_uint, c.POINTER[cl_mem], c.POINTER[ctypes.c_void_p], cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueNativeKernel(command_queue:cl_command_queue, user_func:c.CFUNCTYPE[None, [ctypes.c_void_p]], args:ctypes.c_void_p, cb_args:size_t, num_mem_objects:cl_uint, mem_list:c.POINTER[cl_mem], args_mem_loc:c.POINTER[ctypes.c_void_p], num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueMarkerWithWaitList(command_queue:cl_command_queue, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueBarrierWithWaitList(command_queue:cl_command_queue, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_uint, c.Array[ctypes.c_void_p, Literal[0]], c.CFUNCTYPE[None, [cl_command_queue, cl_uint, c.Array[ctypes.c_void_p, Literal[0]], ctypes.c_void_p]], ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueSVMFree(command_queue:cl_command_queue, num_svm_pointers:cl_uint, svm_pointers:c.Array[ctypes.c_void_p, Literal[0]], pfn_free_func:c.CFUNCTYPE[None, [cl_command_queue, cl_uint, c.Array[ctypes.c_void_p, Literal[0]], ctypes.c_void_p]], user_data:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_bool, ctypes.c_void_p, ctypes.c_void_p, size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueSVMMemcpy(command_queue:cl_command_queue, blocking_copy:cl_bool, dst_ptr:ctypes.c_void_p, src_ptr:ctypes.c_void_p, size:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, ctypes.c_void_p, ctypes.c_void_p, size_t, size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueSVMMemFill(command_queue:cl_command_queue, svm_ptr:ctypes.c_void_p, pattern:ctypes.c_void_p, pattern_size:size_t, size:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_bool, cl_map_flags, ctypes.c_void_p, size_t, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueSVMMap(command_queue:cl_command_queue, blocking_map:cl_bool, flags:cl_map_flags, svm_ptr:ctypes.c_void_p, size:size_t, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, ctypes.c_void_p, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueSVMUnmap(command_queue:cl_command_queue, svm_ptr:ctypes.c_void_p, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_uint, c.POINTER[ctypes.c_void_p], c.POINTER[size_t], cl_mem_migration_flags, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueSVMMigrateMem(command_queue:cl_command_queue, num_svm_pointers:cl_uint, svm_pointers:c.POINTER[ctypes.c_void_p], sizes:c.POINTER[size_t], flags:cl_mem_migration_flags, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
def clGetExtensionFunctionAddressForPlatform(platform:cl_platform_id, func_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> ctypes.c_void_p: ...
@dll.bind
@dll.bind(ctypes.c_void_p, cl_platform_id, c.POINTER[ctypes.c_char])
def clGetExtensionFunctionAddressForPlatform(platform:cl_platform_id, func_name:c.POINTER[ctypes.c_char]) -> ctypes.c_void_p: ...
@dll.bind(cl_mem, cl_context, cl_mem_flags, c.POINTER[cl_image_format], size_t, size_t, size_t, ctypes.c_void_p, c.POINTER[cl_int])
def clCreateImage2D(context:cl_context, flags:cl_mem_flags, image_format:c.POINTER[cl_image_format], image_width:size_t, image_height:size_t, image_row_pitch:size_t, host_ptr:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_mem, cl_context, cl_mem_flags, c.POINTER[cl_image_format], size_t, size_t, size_t, size_t, size_t, ctypes.c_void_p, c.POINTER[cl_int])
def clCreateImage3D(context:cl_context, flags:cl_mem_flags, image_format:c.POINTER[cl_image_format], image_width:size_t, image_height:size_t, image_depth:size_t, image_row_pitch:size_t, image_slice_pitch:size_t, host_ptr:ctypes.c_void_p, errcode_ret:c.POINTER[cl_int]) -> cl_mem: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, c.POINTER[cl_event])
def clEnqueueMarker(command_queue:cl_command_queue, event:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_uint, c.POINTER[cl_event])
def clEnqueueWaitForEvents(command_queue:cl_command_queue, num_events:cl_uint, event_list:c.POINTER[cl_event]) -> cl_int: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue)
def clEnqueueBarrier(command_queue:cl_command_queue) -> cl_int: ...
@dll.bind
@dll.bind(cl_int)
def clUnloadCompiler() -> cl_int: ...
@dll.bind
def clGetExtensionFunctionAddress(func_name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> ctypes.c_void_p: ...
@dll.bind
@dll.bind(ctypes.c_void_p, c.POINTER[ctypes.c_char])
def clGetExtensionFunctionAddress(func_name:c.POINTER[ctypes.c_char]) -> ctypes.c_void_p: ...
@dll.bind(cl_command_queue, cl_context, cl_device_id, cl_command_queue_properties, c.POINTER[cl_int])
def clCreateCommandQueue(context:cl_context, device:cl_device_id, properties:cl_command_queue_properties, errcode_ret:c.POINTER[cl_int]) -> cl_command_queue: ...
@dll.bind
@dll.bind(cl_sampler, cl_context, cl_bool, cl_addressing_mode, cl_filter_mode, c.POINTER[cl_int])
def clCreateSampler(context:cl_context, normalized_coords:cl_bool, addressing_mode:cl_addressing_mode, filter_mode:cl_filter_mode, errcode_ret:c.POINTER[cl_int]) -> cl_sampler: ...
@dll.bind
@dll.bind(cl_int, cl_command_queue, cl_kernel, cl_uint, c.POINTER[cl_event], c.POINTER[cl_event])
def clEnqueueTask(command_queue:cl_command_queue, kernel:cl_kernel, num_events_in_wait_list:cl_uint, event_wait_list:c.POINTER[cl_event], event:c.POINTER[cl_event]) -> cl_int: ...
c.init_records()
CL_NAME_VERSION_MAX_NAME_SIZE = 64 # type: ignore
CL_SUCCESS = 0 # type: ignore
CL_DEVICE_NOT_FOUND = -1 # type: ignore

View file

@ -1,10 +1,9 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
c.init_records()
PCI_CFG_SPACE_SIZE = 256 # type: ignore
PCI_CFG_SPACE_EXP_SIZE = 4096 # type: ignore
PCI_STD_HEADER_SIZEOF = 64 # type: ignore

View file

@ -1,491 +1,433 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
ion_user_handle_t: TypeAlias = Annotated[int, ctypes.c_int32]
class enum_ion_heap_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
ION_HEAP_TYPE_SYSTEM = enum_ion_heap_type.define('ION_HEAP_TYPE_SYSTEM', 0)
ION_HEAP_TYPE_SYSTEM_CONTIG = enum_ion_heap_type.define('ION_HEAP_TYPE_SYSTEM_CONTIG', 1)
ION_HEAP_TYPE_CARVEOUT = enum_ion_heap_type.define('ION_HEAP_TYPE_CARVEOUT', 2)
ION_HEAP_TYPE_CHUNK = enum_ion_heap_type.define('ION_HEAP_TYPE_CHUNK', 3)
ION_HEAP_TYPE_DMA = enum_ion_heap_type.define('ION_HEAP_TYPE_DMA', 4)
ION_HEAP_TYPE_CUSTOM = enum_ion_heap_type.define('ION_HEAP_TYPE_CUSTOM', 5)
ION_NUM_HEAPS = enum_ion_heap_type.define('ION_NUM_HEAPS', 16)
ion_user_handle_t: TypeAlias = ctypes.c_int32
enum_ion_heap_type: dict[int, str] = {(ION_HEAP_TYPE_SYSTEM:=0): 'ION_HEAP_TYPE_SYSTEM', (ION_HEAP_TYPE_SYSTEM_CONTIG:=1): 'ION_HEAP_TYPE_SYSTEM_CONTIG', (ION_HEAP_TYPE_CARVEOUT:=2): 'ION_HEAP_TYPE_CARVEOUT', (ION_HEAP_TYPE_CHUNK:=3): 'ION_HEAP_TYPE_CHUNK', (ION_HEAP_TYPE_DMA:=4): 'ION_HEAP_TYPE_DMA', (ION_HEAP_TYPE_CUSTOM:=5): 'ION_HEAP_TYPE_CUSTOM', (ION_NUM_HEAPS:=16): 'ION_NUM_HEAPS'}
@c.record
class struct_ion_allocation_data(c.Struct):
SIZE = 32
len: Annotated[size_t, 0]
align: Annotated[size_t, 8]
heap_id_mask: Annotated[Annotated[int, ctypes.c_uint32], 16]
flags: Annotated[Annotated[int, ctypes.c_uint32], 20]
handle: Annotated[ion_user_handle_t, 24]
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
len: int
align: int
heap_id_mask: int
flags: int
handle: int
size_t: TypeAlias = ctypes.c_uint64
struct_ion_allocation_data.register_fields([('len', size_t, 0), ('align', size_t, 8), ('heap_id_mask', ctypes.c_uint32, 16), ('flags', ctypes.c_uint32, 20), ('handle', ion_user_handle_t, 24)])
@c.record
class struct_ion_fd_data(c.Struct):
SIZE = 8
handle: Annotated[ion_user_handle_t, 0]
fd: Annotated[Annotated[int, ctypes.c_int32], 4]
handle: int
fd: int
struct_ion_fd_data.register_fields([('handle', ion_user_handle_t, 0), ('fd', ctypes.c_int32, 4)])
@c.record
class struct_ion_handle_data(c.Struct):
SIZE = 4
handle: Annotated[ion_user_handle_t, 0]
handle: int
struct_ion_handle_data.register_fields([('handle', ion_user_handle_t, 0)])
@c.record
class struct_ion_custom_data(c.Struct):
SIZE = 16
cmd: Annotated[Annotated[int, ctypes.c_uint32], 0]
arg: Annotated[Annotated[int, ctypes.c_uint64], 8]
class enum_msm_ion_heap_types(Annotated[int, ctypes.c_uint32], c.Enum): pass
ION_HEAP_TYPE_MSM_START = enum_msm_ion_heap_types.define('ION_HEAP_TYPE_MSM_START', 6)
ION_HEAP_TYPE_SECURE_DMA = enum_msm_ion_heap_types.define('ION_HEAP_TYPE_SECURE_DMA', 6)
ION_HEAP_TYPE_SYSTEM_SECURE = enum_msm_ion_heap_types.define('ION_HEAP_TYPE_SYSTEM_SECURE', 7)
ION_HEAP_TYPE_HYP_CMA = enum_msm_ion_heap_types.define('ION_HEAP_TYPE_HYP_CMA', 8)
class enum_ion_heap_ids(Annotated[int, ctypes.c_int32], c.Enum): pass
INVALID_HEAP_ID = enum_ion_heap_ids.define('INVALID_HEAP_ID', -1)
ION_CP_MM_HEAP_ID = enum_ion_heap_ids.define('ION_CP_MM_HEAP_ID', 8)
ION_SECURE_HEAP_ID = enum_ion_heap_ids.define('ION_SECURE_HEAP_ID', 9)
ION_SECURE_DISPLAY_HEAP_ID = enum_ion_heap_ids.define('ION_SECURE_DISPLAY_HEAP_ID', 10)
ION_CP_MFC_HEAP_ID = enum_ion_heap_ids.define('ION_CP_MFC_HEAP_ID', 12)
ION_CP_WB_HEAP_ID = enum_ion_heap_ids.define('ION_CP_WB_HEAP_ID', 16)
ION_CAMERA_HEAP_ID = enum_ion_heap_ids.define('ION_CAMERA_HEAP_ID', 20)
ION_SYSTEM_CONTIG_HEAP_ID = enum_ion_heap_ids.define('ION_SYSTEM_CONTIG_HEAP_ID', 21)
ION_ADSP_HEAP_ID = enum_ion_heap_ids.define('ION_ADSP_HEAP_ID', 22)
ION_PIL1_HEAP_ID = enum_ion_heap_ids.define('ION_PIL1_HEAP_ID', 23)
ION_SF_HEAP_ID = enum_ion_heap_ids.define('ION_SF_HEAP_ID', 24)
ION_SYSTEM_HEAP_ID = enum_ion_heap_ids.define('ION_SYSTEM_HEAP_ID', 25)
ION_PIL2_HEAP_ID = enum_ion_heap_ids.define('ION_PIL2_HEAP_ID', 26)
ION_QSECOM_HEAP_ID = enum_ion_heap_ids.define('ION_QSECOM_HEAP_ID', 27)
ION_AUDIO_HEAP_ID = enum_ion_heap_ids.define('ION_AUDIO_HEAP_ID', 28)
ION_MM_FIRMWARE_HEAP_ID = enum_ion_heap_ids.define('ION_MM_FIRMWARE_HEAP_ID', 29)
ION_HEAP_ID_RESERVED = enum_ion_heap_ids.define('ION_HEAP_ID_RESERVED', 31)
class enum_ion_fixed_position(Annotated[int, ctypes.c_uint32], c.Enum): pass
NOT_FIXED = enum_ion_fixed_position.define('NOT_FIXED', 0)
FIXED_LOW = enum_ion_fixed_position.define('FIXED_LOW', 1)
FIXED_MIDDLE = enum_ion_fixed_position.define('FIXED_MIDDLE', 2)
FIXED_HIGH = enum_ion_fixed_position.define('FIXED_HIGH', 3)
class enum_cp_mem_usage(Annotated[int, ctypes.c_uint32], c.Enum): pass
VIDEO_BITSTREAM = enum_cp_mem_usage.define('VIDEO_BITSTREAM', 1)
VIDEO_PIXEL = enum_cp_mem_usage.define('VIDEO_PIXEL', 2)
VIDEO_NONPIXEL = enum_cp_mem_usage.define('VIDEO_NONPIXEL', 3)
DISPLAY_SECURE_CP_USAGE = enum_cp_mem_usage.define('DISPLAY_SECURE_CP_USAGE', 4)
CAMERA_SECURE_CP_USAGE = enum_cp_mem_usage.define('CAMERA_SECURE_CP_USAGE', 5)
MAX_USAGE = enum_cp_mem_usage.define('MAX_USAGE', 6)
UNKNOWN = enum_cp_mem_usage.define('UNKNOWN', 2147483647)
cmd: int
arg: int
struct_ion_custom_data.register_fields([('cmd', ctypes.c_uint32, 0), ('arg', ctypes.c_uint64, 8)])
enum_msm_ion_heap_types: dict[int, str] = {(ION_HEAP_TYPE_MSM_START:=6): 'ION_HEAP_TYPE_MSM_START', (ION_HEAP_TYPE_SECURE_DMA:=6): 'ION_HEAP_TYPE_SECURE_DMA', (ION_HEAP_TYPE_SYSTEM_SECURE:=7): 'ION_HEAP_TYPE_SYSTEM_SECURE', (ION_HEAP_TYPE_HYP_CMA:=8): 'ION_HEAP_TYPE_HYP_CMA'}
enum_ion_heap_ids: dict[int, str] = {(INVALID_HEAP_ID:=-1): 'INVALID_HEAP_ID', (ION_CP_MM_HEAP_ID:=8): 'ION_CP_MM_HEAP_ID', (ION_SECURE_HEAP_ID:=9): 'ION_SECURE_HEAP_ID', (ION_SECURE_DISPLAY_HEAP_ID:=10): 'ION_SECURE_DISPLAY_HEAP_ID', (ION_CP_MFC_HEAP_ID:=12): 'ION_CP_MFC_HEAP_ID', (ION_CP_WB_HEAP_ID:=16): 'ION_CP_WB_HEAP_ID', (ION_CAMERA_HEAP_ID:=20): 'ION_CAMERA_HEAP_ID', (ION_SYSTEM_CONTIG_HEAP_ID:=21): 'ION_SYSTEM_CONTIG_HEAP_ID', (ION_ADSP_HEAP_ID:=22): 'ION_ADSP_HEAP_ID', (ION_PIL1_HEAP_ID:=23): 'ION_PIL1_HEAP_ID', (ION_SF_HEAP_ID:=24): 'ION_SF_HEAP_ID', (ION_SYSTEM_HEAP_ID:=25): 'ION_SYSTEM_HEAP_ID', (ION_PIL2_HEAP_ID:=26): 'ION_PIL2_HEAP_ID', (ION_QSECOM_HEAP_ID:=27): 'ION_QSECOM_HEAP_ID', (ION_AUDIO_HEAP_ID:=28): 'ION_AUDIO_HEAP_ID', (ION_MM_FIRMWARE_HEAP_ID:=29): 'ION_MM_FIRMWARE_HEAP_ID', (ION_HEAP_ID_RESERVED:=31): 'ION_HEAP_ID_RESERVED'}
enum_ion_fixed_position: dict[int, str] = {(NOT_FIXED:=0): 'NOT_FIXED', (FIXED_LOW:=1): 'FIXED_LOW', (FIXED_MIDDLE:=2): 'FIXED_MIDDLE', (FIXED_HIGH:=3): 'FIXED_HIGH'}
enum_cp_mem_usage: dict[int, str] = {(VIDEO_BITSTREAM:=1): 'VIDEO_BITSTREAM', (VIDEO_PIXEL:=2): 'VIDEO_PIXEL', (VIDEO_NONPIXEL:=3): 'VIDEO_NONPIXEL', (DISPLAY_SECURE_CP_USAGE:=4): 'DISPLAY_SECURE_CP_USAGE', (CAMERA_SECURE_CP_USAGE:=5): 'CAMERA_SECURE_CP_USAGE', (MAX_USAGE:=6): 'MAX_USAGE', (UNKNOWN:=2147483647): 'UNKNOWN'}
@c.record
class struct_ion_flush_data(c.Struct):
SIZE = 24
handle: Annotated[ion_user_handle_t, 0]
fd: Annotated[Annotated[int, ctypes.c_int32], 4]
vaddr: Annotated[ctypes.c_void_p, 8]
offset: Annotated[Annotated[int, ctypes.c_uint32], 16]
length: Annotated[Annotated[int, ctypes.c_uint32], 20]
handle: int
fd: int
vaddr: ctypes.c_void_p
offset: int
length: int
struct_ion_flush_data.register_fields([('handle', ion_user_handle_t, 0), ('fd', ctypes.c_int32, 4), ('vaddr', ctypes.c_void_p, 8), ('offset', ctypes.c_uint32, 16), ('length', ctypes.c_uint32, 20)])
@c.record
class struct_ion_prefetch_regions(c.Struct):
SIZE = 24
vmid: Annotated[Annotated[int, ctypes.c_uint32], 0]
sizes: Annotated[c.POINTER[size_t], 8]
nr_sizes: Annotated[Annotated[int, ctypes.c_uint32], 16]
vmid: int
sizes: c.POINTER[ctypes.c_uint64]
nr_sizes: int
struct_ion_prefetch_regions.register_fields([('vmid', ctypes.c_uint32, 0), ('sizes', c.POINTER[size_t], 8), ('nr_sizes', ctypes.c_uint32, 16)])
@c.record
class struct_ion_prefetch_data(c.Struct):
SIZE = 32
heap_id: Annotated[Annotated[int, ctypes.c_int32], 0]
len: Annotated[Annotated[int, ctypes.c_uint64], 8]
regions: Annotated[c.POINTER[struct_ion_prefetch_regions], 16]
nr_regions: Annotated[Annotated[int, ctypes.c_uint32], 24]
heap_id: int
len: int
regions: c.POINTER[struct_ion_prefetch_regions]
nr_regions: int
struct_ion_prefetch_data.register_fields([('heap_id', ctypes.c_int32, 0), ('len', ctypes.c_uint64, 8), ('regions', c.POINTER[struct_ion_prefetch_regions], 16), ('nr_regions', ctypes.c_uint32, 24)])
@c.record
class struct_remote_buf64(c.Struct):
SIZE = 16
pv: Annotated[uint64_t, 0]
len: Annotated[uint64_t, 8]
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
pv: int
len: int
uint64_t: TypeAlias = ctypes.c_uint64
struct_remote_buf64.register_fields([('pv', uint64_t, 0), ('len', uint64_t, 8)])
@c.record
class struct_remote_dma_handle64(c.Struct):
SIZE = 12
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
offset: Annotated[uint32_t, 4]
len: Annotated[uint32_t, 8]
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
fd: int
offset: int
len: int
uint32_t: TypeAlias = ctypes.c_uint32
struct_remote_dma_handle64.register_fields([('fd', ctypes.c_int32, 0), ('offset', uint32_t, 4), ('len', uint32_t, 8)])
@c.record
class union_remote_arg64(c.Struct):
SIZE = 16
buf: Annotated[struct_remote_buf64, 0]
dma: Annotated[struct_remote_dma_handle64, 0]
h: Annotated[uint32_t, 0]
buf: struct_remote_buf64
dma: struct_remote_dma_handle64
h: int
union_remote_arg64.register_fields([('buf', struct_remote_buf64, 0), ('dma', struct_remote_dma_handle64, 0), ('h', uint32_t, 0)])
@c.record
class struct_remote_buf(c.Struct):
SIZE = 16
pv: Annotated[ctypes.c_void_p, 0]
len: Annotated[size_t, 8]
pv: ctypes.c_void_p
len: int
struct_remote_buf.register_fields([('pv', ctypes.c_void_p, 0), ('len', size_t, 8)])
@c.record
class struct_remote_dma_handle(c.Struct):
SIZE = 8
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
offset: Annotated[uint32_t, 4]
fd: int
offset: int
struct_remote_dma_handle.register_fields([('fd', ctypes.c_int32, 0), ('offset', uint32_t, 4)])
@c.record
class union_remote_arg(c.Struct):
SIZE = 16
buf: Annotated[struct_remote_buf, 0]
dma: Annotated[struct_remote_dma_handle, 0]
h: Annotated[uint32_t, 0]
buf: struct_remote_buf
dma: struct_remote_dma_handle
h: int
union_remote_arg.register_fields([('buf', struct_remote_buf, 0), ('dma', struct_remote_dma_handle, 0), ('h', uint32_t, 0)])
@c.record
class struct_fastrpc_ioctl_invoke(c.Struct):
SIZE = 16
handle: Annotated[uint32_t, 0]
sc: Annotated[uint32_t, 4]
pra: Annotated[c.POINTER[union_remote_arg], 8]
handle: int
sc: int
pra: c.POINTER[union_remote_arg]
struct_fastrpc_ioctl_invoke.register_fields([('handle', uint32_t, 0), ('sc', uint32_t, 4), ('pra', c.POINTER[union_remote_arg], 8)])
@c.record
class struct_fastrpc_ioctl_invoke_fd(c.Struct):
SIZE = 24
inv: Annotated[struct_fastrpc_ioctl_invoke, 0]
fds: Annotated[c.POINTER[Annotated[int, ctypes.c_int32]], 16]
inv: struct_fastrpc_ioctl_invoke
fds: c.POINTER[ctypes.c_int32]
struct_fastrpc_ioctl_invoke_fd.register_fields([('inv', struct_fastrpc_ioctl_invoke, 0), ('fds', c.POINTER[ctypes.c_int32], 16)])
@c.record
class struct_fastrpc_ioctl_invoke_attrs(c.Struct):
SIZE = 32
inv: Annotated[struct_fastrpc_ioctl_invoke, 0]
fds: Annotated[c.POINTER[Annotated[int, ctypes.c_int32]], 16]
attrs: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 24]
inv: struct_fastrpc_ioctl_invoke
fds: c.POINTER[ctypes.c_int32]
attrs: c.POINTER[ctypes.c_uint32]
struct_fastrpc_ioctl_invoke_attrs.register_fields([('inv', struct_fastrpc_ioctl_invoke, 0), ('fds', c.POINTER[ctypes.c_int32], 16), ('attrs', c.POINTER[ctypes.c_uint32], 24)])
@c.record
class struct_fastrpc_ioctl_invoke_crc(c.Struct):
SIZE = 40
inv: Annotated[struct_fastrpc_ioctl_invoke, 0]
fds: Annotated[c.POINTER[Annotated[int, ctypes.c_int32]], 16]
attrs: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 24]
crc: Annotated[c.POINTER[Annotated[int, ctypes.c_uint32]], 32]
inv: struct_fastrpc_ioctl_invoke
fds: c.POINTER[ctypes.c_int32]
attrs: c.POINTER[ctypes.c_uint32]
crc: c.POINTER[ctypes.c_uint32]
struct_fastrpc_ioctl_invoke_crc.register_fields([('inv', struct_fastrpc_ioctl_invoke, 0), ('fds', c.POINTER[ctypes.c_int32], 16), ('attrs', c.POINTER[ctypes.c_uint32], 24), ('crc', c.POINTER[ctypes.c_uint32], 32)])
@c.record
class struct_fastrpc_ioctl_init(c.Struct):
SIZE = 40
flags: Annotated[uint32_t, 0]
file: Annotated[uintptr_t, 8]
filelen: Annotated[uint32_t, 16]
filefd: Annotated[int32_t, 20]
mem: Annotated[uintptr_t, 24]
memlen: Annotated[uint32_t, 32]
memfd: Annotated[int32_t, 36]
uintptr_t: TypeAlias = Annotated[int, ctypes.c_uint64]
int32_t: TypeAlias = Annotated[int, ctypes.c_int32]
flags: int
file: int
filelen: int
filefd: int
mem: int
memlen: int
memfd: int
uintptr_t: TypeAlias = ctypes.c_uint64
int32_t: TypeAlias = ctypes.c_int32
struct_fastrpc_ioctl_init.register_fields([('flags', uint32_t, 0), ('file', uintptr_t, 8), ('filelen', uint32_t, 16), ('filefd', int32_t, 20), ('mem', uintptr_t, 24), ('memlen', uint32_t, 32), ('memfd', int32_t, 36)])
@c.record
class struct_fastrpc_ioctl_init_attrs(c.Struct):
SIZE = 48
init: Annotated[struct_fastrpc_ioctl_init, 0]
attrs: Annotated[Annotated[int, ctypes.c_int32], 40]
siglen: Annotated[Annotated[int, ctypes.c_uint32], 44]
init: struct_fastrpc_ioctl_init
attrs: int
siglen: int
struct_fastrpc_ioctl_init_attrs.register_fields([('init', struct_fastrpc_ioctl_init, 0), ('attrs', ctypes.c_int32, 40), ('siglen', ctypes.c_uint32, 44)])
@c.record
class struct_fastrpc_ioctl_munmap(c.Struct):
SIZE = 16
vaddrout: Annotated[uintptr_t, 0]
size: Annotated[size_t, 8]
vaddrout: int
size: int
struct_fastrpc_ioctl_munmap.register_fields([('vaddrout', uintptr_t, 0), ('size', size_t, 8)])
@c.record
class struct_fastrpc_ioctl_munmap_64(c.Struct):
SIZE = 16
vaddrout: Annotated[uint64_t, 0]
size: Annotated[size_t, 8]
vaddrout: int
size: int
struct_fastrpc_ioctl_munmap_64.register_fields([('vaddrout', uint64_t, 0), ('size', size_t, 8)])
@c.record
class struct_fastrpc_ioctl_mmap(c.Struct):
SIZE = 32
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
flags: Annotated[uint32_t, 4]
vaddrin: Annotated[uintptr_t, 8]
size: Annotated[size_t, 16]
vaddrout: Annotated[uintptr_t, 24]
fd: int
flags: int
vaddrin: int
size: int
vaddrout: int
struct_fastrpc_ioctl_mmap.register_fields([('fd', ctypes.c_int32, 0), ('flags', uint32_t, 4), ('vaddrin', uintptr_t, 8), ('size', size_t, 16), ('vaddrout', uintptr_t, 24)])
@c.record
class struct_fastrpc_ioctl_mmap_64(c.Struct):
SIZE = 32
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
flags: Annotated[uint32_t, 4]
vaddrin: Annotated[uint64_t, 8]
size: Annotated[size_t, 16]
vaddrout: Annotated[uint64_t, 24]
fd: int
flags: int
vaddrin: int
size: int
vaddrout: int
struct_fastrpc_ioctl_mmap_64.register_fields([('fd', ctypes.c_int32, 0), ('flags', uint32_t, 4), ('vaddrin', uint64_t, 8), ('size', size_t, 16), ('vaddrout', uint64_t, 24)])
@c.record
class struct_fastrpc_ioctl_munmap_fd(c.Struct):
SIZE = 24
fd: Annotated[Annotated[int, ctypes.c_int32], 0]
flags: Annotated[uint32_t, 4]
va: Annotated[uintptr_t, 8]
len: Annotated[ssize_t, 16]
ssize_t: TypeAlias = Annotated[int, ctypes.c_int64]
fd: int
flags: int
va: int
len: int
ssize_t: TypeAlias = ctypes.c_int64
struct_fastrpc_ioctl_munmap_fd.register_fields([('fd', ctypes.c_int32, 0), ('flags', uint32_t, 4), ('va', uintptr_t, 8), ('len', ssize_t, 16)])
@c.record
class struct_fastrpc_ioctl_perf(c.Struct):
SIZE = 24
data: Annotated[uintptr_t, 0]
numkeys: Annotated[uint32_t, 8]
keys: Annotated[uintptr_t, 16]
data: int
numkeys: int
keys: int
struct_fastrpc_ioctl_perf.register_fields([('data', uintptr_t, 0), ('numkeys', uint32_t, 8), ('keys', uintptr_t, 16)])
@c.record
class struct_fastrpc_ctrl_latency(c.Struct):
SIZE = 8
enable: Annotated[uint32_t, 0]
level: Annotated[uint32_t, 4]
enable: int
level: int
struct_fastrpc_ctrl_latency.register_fields([('enable', uint32_t, 0), ('level', uint32_t, 4)])
@c.record
class struct_fastrpc_ctrl_smmu(c.Struct):
SIZE = 4
sharedcb: Annotated[uint32_t, 0]
sharedcb: int
struct_fastrpc_ctrl_smmu.register_fields([('sharedcb', uint32_t, 0)])
@c.record
class struct_fastrpc_ctrl_kalloc(c.Struct):
SIZE = 4
kalloc_support: Annotated[uint32_t, 0]
kalloc_support: int
struct_fastrpc_ctrl_kalloc.register_fields([('kalloc_support', uint32_t, 0)])
@c.record
class struct_fastrpc_ioctl_control(c.Struct):
SIZE = 12
req: Annotated[uint32_t, 0]
lp: Annotated[struct_fastrpc_ctrl_latency, 4]
smmu: Annotated[struct_fastrpc_ctrl_smmu, 4]
kalloc: Annotated[struct_fastrpc_ctrl_kalloc, 4]
req: int
lp: struct_fastrpc_ctrl_latency
smmu: struct_fastrpc_ctrl_smmu
kalloc: struct_fastrpc_ctrl_kalloc
struct_fastrpc_ioctl_control.register_fields([('req', uint32_t, 0), ('lp', struct_fastrpc_ctrl_latency, 4), ('smmu', struct_fastrpc_ctrl_smmu, 4), ('kalloc', struct_fastrpc_ctrl_kalloc, 4)])
@c.record
class struct_smq_null_invoke(c.Struct):
SIZE = 16
ctx: Annotated[uint64_t, 0]
handle: Annotated[uint32_t, 8]
sc: Annotated[uint32_t, 12]
ctx: int
handle: int
sc: int
struct_smq_null_invoke.register_fields([('ctx', uint64_t, 0), ('handle', uint32_t, 8), ('sc', uint32_t, 12)])
@c.record
class struct_smq_phy_page(c.Struct):
SIZE = 16
addr: Annotated[uint64_t, 0]
size: Annotated[uint64_t, 8]
addr: int
size: int
struct_smq_phy_page.register_fields([('addr', uint64_t, 0), ('size', uint64_t, 8)])
@c.record
class struct_smq_invoke_buf(c.Struct):
SIZE = 8
num: Annotated[Annotated[int, ctypes.c_int32], 0]
pgidx: Annotated[Annotated[int, ctypes.c_int32], 4]
num: int
pgidx: int
struct_smq_invoke_buf.register_fields([('num', ctypes.c_int32, 0), ('pgidx', ctypes.c_int32, 4)])
@c.record
class struct_smq_invoke(c.Struct):
SIZE = 32
header: Annotated[struct_smq_null_invoke, 0]
page: Annotated[struct_smq_phy_page, 16]
header: struct_smq_null_invoke
page: struct_smq_phy_page
struct_smq_invoke.register_fields([('header', struct_smq_null_invoke, 0), ('page', struct_smq_phy_page, 16)])
@c.record
class struct_smq_msg(c.Struct):
SIZE = 40
pid: Annotated[uint32_t, 0]
tid: Annotated[uint32_t, 4]
invoke: Annotated[struct_smq_invoke, 8]
pid: int
tid: int
invoke: struct_smq_invoke
struct_smq_msg.register_fields([('pid', uint32_t, 0), ('tid', uint32_t, 4), ('invoke', struct_smq_invoke, 8)])
@c.record
class struct_smq_invoke_rsp(c.Struct):
SIZE = 16
ctx: Annotated[uint64_t, 0]
retval: Annotated[Annotated[int, ctypes.c_int32], 8]
remote_handle: TypeAlias = Annotated[int, ctypes.c_uint32]
remote_handle64: TypeAlias = Annotated[int, ctypes.c_uint64]
fastrpc_async_jobid: TypeAlias = Annotated[int, ctypes.c_uint64]
ctx: int
retval: int
struct_smq_invoke_rsp.register_fields([('ctx', uint64_t, 0), ('retval', ctypes.c_int32, 8)])
remote_handle: TypeAlias = ctypes.c_uint32
remote_handle64: TypeAlias = ctypes.c_uint64
fastrpc_async_jobid: TypeAlias = ctypes.c_uint64
@c.record
class remote_buf(c.Struct):
SIZE = 16
pv: Annotated[ctypes.c_void_p, 0]
nLen: Annotated[size_t, 8]
pv: ctypes.c_void_p
nLen: int
remote_buf.register_fields([('pv', ctypes.c_void_p, 0), ('nLen', size_t, 8)])
@c.record
class remote_dma_handle(c.Struct):
SIZE = 8
fd: Annotated[int32_t, 0]
offset: Annotated[uint32_t, 4]
fd: int
offset: int
remote_dma_handle.register_fields([('fd', int32_t, 0), ('offset', uint32_t, 4)])
@c.record
class remote_arg(c.Struct):
SIZE = 16
buf: Annotated[remote_buf, 0]
h: Annotated[remote_handle, 0]
h64: Annotated[remote_handle64, 0]
dma: Annotated[remote_dma_handle, 0]
class enum_fastrpc_async_notify_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
FASTRPC_ASYNC_NO_SYNC = enum_fastrpc_async_notify_type.define('FASTRPC_ASYNC_NO_SYNC', 0)
FASTRPC_ASYNC_CALLBACK = enum_fastrpc_async_notify_type.define('FASTRPC_ASYNC_CALLBACK', 1)
FASTRPC_ASYNC_POLL = enum_fastrpc_async_notify_type.define('FASTRPC_ASYNC_POLL', 2)
FASTRPC_ASYNC_TYPE_MAX = enum_fastrpc_async_notify_type.define('FASTRPC_ASYNC_TYPE_MAX', 3)
buf: remote_buf
h: int
h64: int
dma: remote_dma_handle
remote_arg.register_fields([('buf', remote_buf, 0), ('h', remote_handle, 0), ('h64', remote_handle64, 0), ('dma', remote_dma_handle, 0)])
enum_fastrpc_async_notify_type: dict[int, str] = {(FASTRPC_ASYNC_NO_SYNC:=0): 'FASTRPC_ASYNC_NO_SYNC', (FASTRPC_ASYNC_CALLBACK:=1): 'FASTRPC_ASYNC_CALLBACK', (FASTRPC_ASYNC_POLL:=2): 'FASTRPC_ASYNC_POLL', (FASTRPC_ASYNC_TYPE_MAX:=3): 'FASTRPC_ASYNC_TYPE_MAX'}
@c.record
class struct_fastrpc_async_callback(c.Struct):
SIZE = 16
fn: Annotated[c.CFUNCTYPE[None, [fastrpc_async_jobid, ctypes.c_void_p, Annotated[int, ctypes.c_int32]]], 0]
context: Annotated[ctypes.c_void_p, 8]
fn: c.CFUNCTYPE[None, [ctypes.c_uint64, ctypes.c_void_p, ctypes.c_int32]]
context: ctypes.c_void_p
struct_fastrpc_async_callback.register_fields([('fn', c.CFUNCTYPE[None, [fastrpc_async_jobid, ctypes.c_void_p, ctypes.c_int32]], 0), ('context', ctypes.c_void_p, 8)])
fastrpc_async_callback_t: TypeAlias = struct_fastrpc_async_callback
@c.record
class struct_fastrpc_async_descriptor(c.Struct):
SIZE = 32
type: Annotated[enum_fastrpc_async_notify_type, 0]
jobid: Annotated[fastrpc_async_jobid, 8]
cb: Annotated[fastrpc_async_callback_t, 16]
type: int
jobid: int
cb: struct_fastrpc_async_callback
struct_fastrpc_async_descriptor.register_fields([('type', ctypes.c_uint32, 0), ('jobid', fastrpc_async_jobid, 8), ('cb', fastrpc_async_callback_t, 16)])
fastrpc_async_descriptor_t: TypeAlias = struct_fastrpc_async_descriptor
class enum_fastrpc_process_type(Annotated[int, ctypes.c_uint32], c.Enum): pass
PROCESS_TYPE_SIGNED = enum_fastrpc_process_type.define('PROCESS_TYPE_SIGNED', 0)
PROCESS_TYPE_UNSIGNED = enum_fastrpc_process_type.define('PROCESS_TYPE_UNSIGNED', 1)
class enum_handle_control_req_id(Annotated[int, ctypes.c_uint32], c.Enum): pass
DSPRPC_CONTROL_LATENCY = enum_handle_control_req_id.define('DSPRPC_CONTROL_LATENCY', 1)
DSPRPC_GET_DSP_INFO = enum_handle_control_req_id.define('DSPRPC_GET_DSP_INFO', 2)
DSPRPC_CONTROL_WAKELOCK = enum_handle_control_req_id.define('DSPRPC_CONTROL_WAKELOCK', 3)
DSPRPC_GET_DOMAIN = enum_handle_control_req_id.define('DSPRPC_GET_DOMAIN', 4)
class enum_remote_rpc_latency_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
RPC_DISABLE_QOS = enum_remote_rpc_latency_flags.define('RPC_DISABLE_QOS', 0)
RPC_PM_QOS = enum_remote_rpc_latency_flags.define('RPC_PM_QOS', 1)
RPC_ADAPTIVE_QOS = enum_remote_rpc_latency_flags.define('RPC_ADAPTIVE_QOS', 2)
RPC_POLL_QOS = enum_remote_rpc_latency_flags.define('RPC_POLL_QOS', 3)
remote_rpc_control_latency_t: TypeAlias = enum_remote_rpc_latency_flags
enum_fastrpc_process_type: dict[int, str] = {(PROCESS_TYPE_SIGNED:=0): 'PROCESS_TYPE_SIGNED', (PROCESS_TYPE_UNSIGNED:=1): 'PROCESS_TYPE_UNSIGNED'}
enum_handle_control_req_id: dict[int, str] = {(DSPRPC_CONTROL_LATENCY:=1): 'DSPRPC_CONTROL_LATENCY', (DSPRPC_GET_DSP_INFO:=2): 'DSPRPC_GET_DSP_INFO', (DSPRPC_CONTROL_WAKELOCK:=3): 'DSPRPC_CONTROL_WAKELOCK', (DSPRPC_GET_DOMAIN:=4): 'DSPRPC_GET_DOMAIN'}
enum_remote_rpc_latency_flags: dict[int, str] = {(RPC_DISABLE_QOS:=0): 'RPC_DISABLE_QOS', (RPC_PM_QOS:=1): 'RPC_PM_QOS', (RPC_ADAPTIVE_QOS:=2): 'RPC_ADAPTIVE_QOS', (RPC_POLL_QOS:=3): 'RPC_POLL_QOS'}
remote_rpc_control_latency_t: TypeAlias = ctypes.c_uint32
@c.record
class struct_remote_rpc_control_latency(c.Struct):
SIZE = 8
enable: Annotated[remote_rpc_control_latency_t, 0]
latency: Annotated[uint32_t, 4]
class enum_remote_dsp_attributes(Annotated[int, ctypes.c_uint32], c.Enum): pass
DOMAIN_SUPPORT = enum_remote_dsp_attributes.define('DOMAIN_SUPPORT', 0)
UNSIGNED_PD_SUPPORT = enum_remote_dsp_attributes.define('UNSIGNED_PD_SUPPORT', 1)
HVX_SUPPORT_64B = enum_remote_dsp_attributes.define('HVX_SUPPORT_64B', 2)
HVX_SUPPORT_128B = enum_remote_dsp_attributes.define('HVX_SUPPORT_128B', 3)
VTCM_PAGE = enum_remote_dsp_attributes.define('VTCM_PAGE', 4)
VTCM_COUNT = enum_remote_dsp_attributes.define('VTCM_COUNT', 5)
ARCH_VER = enum_remote_dsp_attributes.define('ARCH_VER', 6)
HMX_SUPPORT_DEPTH = enum_remote_dsp_attributes.define('HMX_SUPPORT_DEPTH', 7)
HMX_SUPPORT_SPATIAL = enum_remote_dsp_attributes.define('HMX_SUPPORT_SPATIAL', 8)
ASYNC_FASTRPC_SUPPORT = enum_remote_dsp_attributes.define('ASYNC_FASTRPC_SUPPORT', 9)
STATUS_NOTIFICATION_SUPPORT = enum_remote_dsp_attributes.define('STATUS_NOTIFICATION_SUPPORT', 10)
FASTRPC_MAX_DSP_ATTRIBUTES = enum_remote_dsp_attributes.define('FASTRPC_MAX_DSP_ATTRIBUTES', 11)
enable: int
latency: int
struct_remote_rpc_control_latency.register_fields([('enable', remote_rpc_control_latency_t, 0), ('latency', uint32_t, 4)])
enum_remote_dsp_attributes: dict[int, str] = {(DOMAIN_SUPPORT:=0): 'DOMAIN_SUPPORT', (UNSIGNED_PD_SUPPORT:=1): 'UNSIGNED_PD_SUPPORT', (HVX_SUPPORT_64B:=2): 'HVX_SUPPORT_64B', (HVX_SUPPORT_128B:=3): 'HVX_SUPPORT_128B', (VTCM_PAGE:=4): 'VTCM_PAGE', (VTCM_COUNT:=5): 'VTCM_COUNT', (ARCH_VER:=6): 'ARCH_VER', (HMX_SUPPORT_DEPTH:=7): 'HMX_SUPPORT_DEPTH', (HMX_SUPPORT_SPATIAL:=8): 'HMX_SUPPORT_SPATIAL', (ASYNC_FASTRPC_SUPPORT:=9): 'ASYNC_FASTRPC_SUPPORT', (STATUS_NOTIFICATION_SUPPORT:=10): 'STATUS_NOTIFICATION_SUPPORT', (FASTRPC_MAX_DSP_ATTRIBUTES:=11): 'FASTRPC_MAX_DSP_ATTRIBUTES'}
@c.record
class struct_remote_dsp_capability(c.Struct):
SIZE = 12
domain: Annotated[uint32_t, 0]
attribute_ID: Annotated[uint32_t, 4]
capability: Annotated[uint32_t, 8]
domain: int
attribute_ID: int
capability: int
struct_remote_dsp_capability.register_fields([('domain', uint32_t, 0), ('attribute_ID', uint32_t, 4), ('capability', uint32_t, 8)])
fastrpc_capability: TypeAlias = struct_remote_dsp_capability
@c.record
class struct_remote_rpc_control_wakelock(c.Struct):
SIZE = 4
enable: Annotated[uint32_t, 0]
enable: int
struct_remote_rpc_control_wakelock.register_fields([('enable', uint32_t, 0)])
@c.record
class struct_remote_rpc_get_domain(c.Struct):
SIZE = 4
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
domain: int
struct_remote_rpc_get_domain.register_fields([('domain', ctypes.c_int32, 0)])
remote_rpc_get_domain_t: TypeAlias = struct_remote_rpc_get_domain
class enum_session_control_req_id(Annotated[int, ctypes.c_uint32], c.Enum): pass
FASTRPC_THREAD_PARAMS = enum_session_control_req_id.define('FASTRPC_THREAD_PARAMS', 1)
DSPRPC_CONTROL_UNSIGNED_MODULE = enum_session_control_req_id.define('DSPRPC_CONTROL_UNSIGNED_MODULE', 2)
FASTRPC_RELATIVE_THREAD_PRIORITY = enum_session_control_req_id.define('FASTRPC_RELATIVE_THREAD_PRIORITY', 4)
FASTRPC_REMOTE_PROCESS_KILL = enum_session_control_req_id.define('FASTRPC_REMOTE_PROCESS_KILL', 6)
FASTRPC_SESSION_CLOSE = enum_session_control_req_id.define('FASTRPC_SESSION_CLOSE', 7)
FASTRPC_CONTROL_PD_DUMP = enum_session_control_req_id.define('FASTRPC_CONTROL_PD_DUMP', 8)
FASTRPC_REMOTE_PROCESS_EXCEPTION = enum_session_control_req_id.define('FASTRPC_REMOTE_PROCESS_EXCEPTION', 9)
FASTRPC_REMOTE_PROCESS_TYPE = enum_session_control_req_id.define('FASTRPC_REMOTE_PROCESS_TYPE', 10)
FASTRPC_REGISTER_STATUS_NOTIFICATIONS = enum_session_control_req_id.define('FASTRPC_REGISTER_STATUS_NOTIFICATIONS', 11)
enum_session_control_req_id: dict[int, str] = {(FASTRPC_THREAD_PARAMS:=1): 'FASTRPC_THREAD_PARAMS', (DSPRPC_CONTROL_UNSIGNED_MODULE:=2): 'DSPRPC_CONTROL_UNSIGNED_MODULE', (FASTRPC_RELATIVE_THREAD_PRIORITY:=4): 'FASTRPC_RELATIVE_THREAD_PRIORITY', (FASTRPC_REMOTE_PROCESS_KILL:=6): 'FASTRPC_REMOTE_PROCESS_KILL', (FASTRPC_SESSION_CLOSE:=7): 'FASTRPC_SESSION_CLOSE', (FASTRPC_CONTROL_PD_DUMP:=8): 'FASTRPC_CONTROL_PD_DUMP', (FASTRPC_REMOTE_PROCESS_EXCEPTION:=9): 'FASTRPC_REMOTE_PROCESS_EXCEPTION', (FASTRPC_REMOTE_PROCESS_TYPE:=10): 'FASTRPC_REMOTE_PROCESS_TYPE', (FASTRPC_REGISTER_STATUS_NOTIFICATIONS:=11): 'FASTRPC_REGISTER_STATUS_NOTIFICATIONS'}
@c.record
class struct_remote_rpc_thread_params(c.Struct):
SIZE = 12
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
prio: Annotated[Annotated[int, ctypes.c_int32], 4]
stack_size: Annotated[Annotated[int, ctypes.c_int32], 8]
domain: int
prio: int
stack_size: int
struct_remote_rpc_thread_params.register_fields([('domain', ctypes.c_int32, 0), ('prio', ctypes.c_int32, 4), ('stack_size', ctypes.c_int32, 8)])
@c.record
class struct_remote_rpc_control_unsigned_module(c.Struct):
SIZE = 8
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
enable: Annotated[Annotated[int, ctypes.c_int32], 4]
domain: int
enable: int
struct_remote_rpc_control_unsigned_module.register_fields([('domain', ctypes.c_int32, 0), ('enable', ctypes.c_int32, 4)])
@c.record
class struct_remote_rpc_relative_thread_priority(c.Struct):
SIZE = 8
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
relative_thread_priority: Annotated[Annotated[int, ctypes.c_int32], 4]
domain: int
relative_thread_priority: int
struct_remote_rpc_relative_thread_priority.register_fields([('domain', ctypes.c_int32, 0), ('relative_thread_priority', ctypes.c_int32, 4)])
@c.record
class struct_remote_rpc_process_clean_params(c.Struct):
SIZE = 4
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
domain: int
struct_remote_rpc_process_clean_params.register_fields([('domain', ctypes.c_int32, 0)])
@c.record
class struct_remote_rpc_session_close(c.Struct):
SIZE = 4
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
domain: int
struct_remote_rpc_session_close.register_fields([('domain', ctypes.c_int32, 0)])
@c.record
class struct_remote_rpc_control_pd_dump(c.Struct):
SIZE = 8
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
enable: Annotated[Annotated[int, ctypes.c_int32], 4]
domain: int
enable: int
struct_remote_rpc_control_pd_dump.register_fields([('domain', ctypes.c_int32, 0), ('enable', ctypes.c_int32, 4)])
@c.record
class struct_remote_process_type(c.Struct):
SIZE = 8
domain: Annotated[Annotated[int, ctypes.c_int32], 0]
process_type: Annotated[Annotated[int, ctypes.c_int32], 4]
domain: int
process_type: int
struct_remote_process_type.register_fields([('domain', ctypes.c_int32, 0), ('process_type', ctypes.c_int32, 4)])
remote_rpc_process_exception: TypeAlias = struct_remote_rpc_process_clean_params
class enum_remote_rpc_status_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
FASTRPC_USER_PD_UP = enum_remote_rpc_status_flags.define('FASTRPC_USER_PD_UP', 0)
FASTRPC_USER_PD_EXIT = enum_remote_rpc_status_flags.define('FASTRPC_USER_PD_EXIT', 1)
FASTRPC_USER_PD_FORCE_KILL = enum_remote_rpc_status_flags.define('FASTRPC_USER_PD_FORCE_KILL', 2)
FASTRPC_USER_PD_EXCEPTION = enum_remote_rpc_status_flags.define('FASTRPC_USER_PD_EXCEPTION', 3)
FASTRPC_DSP_SSR = enum_remote_rpc_status_flags.define('FASTRPC_DSP_SSR', 4)
remote_rpc_status_flags_t: TypeAlias = enum_remote_rpc_status_flags
fastrpc_notif_fn_t: TypeAlias = c.CFUNCTYPE[Annotated[int, ctypes.c_int32], [ctypes.c_void_p, Annotated[int, ctypes.c_int32], Annotated[int, ctypes.c_int32], enum_remote_rpc_status_flags]]
enum_remote_rpc_status_flags: dict[int, str] = {(FASTRPC_USER_PD_UP:=0): 'FASTRPC_USER_PD_UP', (FASTRPC_USER_PD_EXIT:=1): 'FASTRPC_USER_PD_EXIT', (FASTRPC_USER_PD_FORCE_KILL:=2): 'FASTRPC_USER_PD_FORCE_KILL', (FASTRPC_USER_PD_EXCEPTION:=3): 'FASTRPC_USER_PD_EXCEPTION', (FASTRPC_DSP_SSR:=4): 'FASTRPC_DSP_SSR'}
remote_rpc_status_flags_t: TypeAlias = ctypes.c_uint32
fastrpc_notif_fn_t: TypeAlias = c.CFUNCTYPE[ctypes.c_int32, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.c_uint32]]
@c.record
class struct_remote_rpc_notif_register(c.Struct):
SIZE = 24
context: Annotated[ctypes.c_void_p, 0]
domain: Annotated[Annotated[int, ctypes.c_int32], 8]
notifier_fn: Annotated[fastrpc_notif_fn_t, 16]
context: ctypes.c_void_p
domain: int
notifier_fn: c.CFUNCTYPE[ctypes.c_int32, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.c_uint32]]
struct_remote_rpc_notif_register.register_fields([('context', ctypes.c_void_p, 0), ('domain', ctypes.c_int32, 8), ('notifier_fn', fastrpc_notif_fn_t, 16)])
remote_rpc_notif_register_t: TypeAlias = struct_remote_rpc_notif_register
class enum_remote_mem_map_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
REMOTE_MAP_MEM_STATIC = enum_remote_mem_map_flags.define('REMOTE_MAP_MEM_STATIC', 0)
REMOTE_MAP_MAX_FLAG = enum_remote_mem_map_flags.define('REMOTE_MAP_MAX_FLAG', 1)
class enum_remote_buf_attributes(Annotated[int, ctypes.c_uint32], c.Enum): pass
FASTRPC_ATTR_NON_COHERENT = enum_remote_buf_attributes.define('FASTRPC_ATTR_NON_COHERENT', 2)
FASTRPC_ATTR_COHERENT = enum_remote_buf_attributes.define('FASTRPC_ATTR_COHERENT', 4)
FASTRPC_ATTR_KEEP_MAP = enum_remote_buf_attributes.define('FASTRPC_ATTR_KEEP_MAP', 8)
FASTRPC_ATTR_NOMAP = enum_remote_buf_attributes.define('FASTRPC_ATTR_NOMAP', 16)
FASTRPC_ATTR_FORCE_NOFLUSH = enum_remote_buf_attributes.define('FASTRPC_ATTR_FORCE_NOFLUSH', 32)
FASTRPC_ATTR_FORCE_NOINVALIDATE = enum_remote_buf_attributes.define('FASTRPC_ATTR_FORCE_NOINVALIDATE', 64)
FASTRPC_ATTR_TRY_MAP_STATIC = enum_remote_buf_attributes.define('FASTRPC_ATTR_TRY_MAP_STATIC', 128)
class enum_fastrpc_map_flags(Annotated[int, ctypes.c_uint32], c.Enum): pass
FASTRPC_MAP_STATIC = enum_fastrpc_map_flags.define('FASTRPC_MAP_STATIC', 0)
FASTRPC_MAP_RESERVED = enum_fastrpc_map_flags.define('FASTRPC_MAP_RESERVED', 1)
FASTRPC_MAP_FD = enum_fastrpc_map_flags.define('FASTRPC_MAP_FD', 2)
FASTRPC_MAP_FD_DELAYED = enum_fastrpc_map_flags.define('FASTRPC_MAP_FD_DELAYED', 3)
FASTRPC_MAP_MAX = enum_fastrpc_map_flags.define('FASTRPC_MAP_MAX', 4)
enum_remote_mem_map_flags: dict[int, str] = {(REMOTE_MAP_MEM_STATIC:=0): 'REMOTE_MAP_MEM_STATIC', (REMOTE_MAP_MAX_FLAG:=1): 'REMOTE_MAP_MAX_FLAG'}
enum_remote_buf_attributes: dict[int, str] = {(FASTRPC_ATTR_NON_COHERENT:=2): 'FASTRPC_ATTR_NON_COHERENT', (FASTRPC_ATTR_COHERENT:=4): 'FASTRPC_ATTR_COHERENT', (FASTRPC_ATTR_KEEP_MAP:=8): 'FASTRPC_ATTR_KEEP_MAP', (FASTRPC_ATTR_NOMAP:=16): 'FASTRPC_ATTR_NOMAP', (FASTRPC_ATTR_FORCE_NOFLUSH:=32): 'FASTRPC_ATTR_FORCE_NOFLUSH', (FASTRPC_ATTR_FORCE_NOINVALIDATE:=64): 'FASTRPC_ATTR_FORCE_NOINVALIDATE', (FASTRPC_ATTR_TRY_MAP_STATIC:=128): 'FASTRPC_ATTR_TRY_MAP_STATIC'}
enum_fastrpc_map_flags: dict[int, str] = {(FASTRPC_MAP_STATIC:=0): 'FASTRPC_MAP_STATIC', (FASTRPC_MAP_RESERVED:=1): 'FASTRPC_MAP_RESERVED', (FASTRPC_MAP_FD:=2): 'FASTRPC_MAP_FD', (FASTRPC_MAP_FD_DELAYED:=3): 'FASTRPC_MAP_FD_DELAYED', (FASTRPC_MAP_MAX:=4): 'FASTRPC_MAP_MAX'}
@c.record
class struct__cstring1_s(c.Struct):
SIZE = 16
data: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 0]
dataLen: Annotated[Annotated[int, ctypes.c_int32], 8]
data: c.POINTER[ctypes.c_char]
dataLen: int
struct__cstring1_s.register_fields([('data', c.POINTER[ctypes.c_char], 0), ('dataLen', ctypes.c_int32, 8)])
_cstring1_t: TypeAlias = struct__cstring1_s
apps_std_FILE: TypeAlias = Annotated[int, ctypes.c_int32]
class enum_apps_std_SEEK(Annotated[int, ctypes.c_uint32], c.Enum): pass
APPS_STD_SEEK_SET = enum_apps_std_SEEK.define('APPS_STD_SEEK_SET', 0)
APPS_STD_SEEK_CUR = enum_apps_std_SEEK.define('APPS_STD_SEEK_CUR', 1)
APPS_STD_SEEK_END = enum_apps_std_SEEK.define('APPS_STD_SEEK_END', 2)
_32BIT_PLACEHOLDER_apps_std_SEEK = enum_apps_std_SEEK.define('_32BIT_PLACEHOLDER_apps_std_SEEK', 2147483647)
apps_std_SEEK: TypeAlias = enum_apps_std_SEEK
apps_std_FILE: TypeAlias = ctypes.c_int32
enum_apps_std_SEEK: dict[int, str] = {(APPS_STD_SEEK_SET:=0): 'APPS_STD_SEEK_SET', (APPS_STD_SEEK_CUR:=1): 'APPS_STD_SEEK_CUR', (APPS_STD_SEEK_END:=2): 'APPS_STD_SEEK_END', (_32BIT_PLACEHOLDER_apps_std_SEEK:=2147483647): '_32BIT_PLACEHOLDER_apps_std_SEEK'}
apps_std_SEEK: TypeAlias = ctypes.c_uint32
@c.record
class struct_apps_std_DIR(c.Struct):
SIZE = 8
handle: Annotated[uint64, 0]
uint64: TypeAlias = Annotated[int, ctypes.c_uint64]
handle: int
uint64: TypeAlias = ctypes.c_uint64
struct_apps_std_DIR.register_fields([('handle', uint64, 0)])
apps_std_DIR: TypeAlias = struct_apps_std_DIR
@c.record
class struct_apps_std_DIRENT(c.Struct):
SIZE = 260
ino: Annotated[Annotated[int, ctypes.c_int32], 0]
name: Annotated[c.Array[Annotated[bytes, ctypes.c_char], Literal[255]], 4]
ino: int
name: c.Array[ctypes.c_char, Literal[255]]
struct_apps_std_DIRENT.register_fields([('ino', ctypes.c_int32, 0), ('name', c.Array[ctypes.c_char, Literal[255]], 4)])
apps_std_DIRENT: TypeAlias = struct_apps_std_DIRENT
@c.record
class struct_apps_std_STAT(c.Struct):
SIZE = 96
tsz: Annotated[uint64, 0]
dev: Annotated[uint64, 8]
ino: Annotated[uint64, 16]
mode: Annotated[uint32, 24]
nlink: Annotated[uint32, 28]
rdev: Annotated[uint64, 32]
size: Annotated[uint64, 40]
atime: Annotated[int64, 48]
atimensec: Annotated[int64, 56]
mtime: Annotated[int64, 64]
mtimensec: Annotated[int64, 72]
ctime: Annotated[int64, 80]
ctimensec: Annotated[int64, 88]
uint32: TypeAlias = Annotated[int, ctypes.c_uint32]
int64: TypeAlias = Annotated[int, ctypes.c_int64]
tsz: int
dev: int
ino: int
mode: int
nlink: int
rdev: int
size: int
atime: int
atimensec: int
mtime: int
mtimensec: int
ctime: int
ctimensec: int
uint32: TypeAlias = ctypes.c_uint32
int64: TypeAlias = ctypes.c_int64
struct_apps_std_STAT.register_fields([('tsz', uint64, 0), ('dev', uint64, 8), ('ino', uint64, 16), ('mode', uint32, 24), ('nlink', uint32, 28), ('rdev', uint64, 32), ('size', uint64, 40), ('atime', int64, 48), ('atimensec', int64, 56), ('mtime', int64, 64), ('mtimensec', int64, 72), ('ctime', int64, 80), ('ctimensec', int64, 88)])
apps_std_STAT: TypeAlias = struct_apps_std_STAT
c.init_records()
ION_HEAP_SYSTEM_MASK = ((1 << ION_HEAP_TYPE_SYSTEM)) # type: ignore
ION_HEAP_SYSTEM_CONTIG_MASK = ((1 << ION_HEAP_TYPE_SYSTEM_CONTIG)) # type: ignore
ION_HEAP_CARVEOUT_MASK = ((1 << ION_HEAP_TYPE_CARVEOUT)) # type: ignore

View file

@ -1,225 +1,170 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from typing import Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
dll = c.DLL('rocprof', ['rocprof-trace-decoder', p:='/usr/local/lib/rocprof-trace-decoder.so', p.replace('so','dylib')])
class rocprofiler_thread_trace_decoder_status_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROFILER_THREAD_TRACE_DECODER_STATUS_SUCCESS = rocprofiler_thread_trace_decoder_status_t.define('ROCPROFILER_THREAD_TRACE_DECODER_STATUS_SUCCESS', 0)
ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR = rocprofiler_thread_trace_decoder_status_t.define('ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR', 1)
ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_OUT_OF_RESOURCES = rocprofiler_thread_trace_decoder_status_t.define('ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_OUT_OF_RESOURCES', 2)
ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_ARGUMENT = rocprofiler_thread_trace_decoder_status_t.define('ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_ARGUMENT', 3)
ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_SHADER_DATA = rocprofiler_thread_trace_decoder_status_t.define('ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_SHADER_DATA', 4)
ROCPROFILER_THREAD_TRACE_DECODER_STATUS_LAST = rocprofiler_thread_trace_decoder_status_t.define('ROCPROFILER_THREAD_TRACE_DECODER_STATUS_LAST', 5)
class enum_rocprofiler_thread_trace_decoder_record_type_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_GFXIP = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_GFXIP', 0)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_OCCUPANCY = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_OCCUPANCY', 1)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_PERFEVENT = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_PERFEVENT', 2)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_WAVE = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_WAVE', 3)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_INFO = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_INFO', 4)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_DEBUG = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_DEBUG', 5)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_SHADERDATA = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_SHADERDATA', 6)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_REALTIME = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_REALTIME', 7)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_RT_FREQUENCY = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_RT_FREQUENCY', 8)
ROCPROFILER_THREAD_TRACE_DECODER_RECORD_LAST = enum_rocprofiler_thread_trace_decoder_record_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_RECORD_LAST', 9)
rocprof_trace_decoder_trace_callback_t: TypeAlias = c.CFUNCTYPE[rocprofiler_thread_trace_decoder_status_t, [enum_rocprofiler_thread_trace_decoder_record_type_t, ctypes.c_void_p, Annotated[int, ctypes.c_uint64], ctypes.c_void_p]]
rocprofiler_thread_trace_decoder_status_t: dict[int, str] = {(ROCPROFILER_THREAD_TRACE_DECODER_STATUS_SUCCESS:=0): 'ROCPROFILER_THREAD_TRACE_DECODER_STATUS_SUCCESS', (ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR:=1): 'ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR', (ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_OUT_OF_RESOURCES:=2): 'ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_OUT_OF_RESOURCES', (ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_ARGUMENT:=3): 'ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_ARGUMENT', (ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_SHADER_DATA:=4): 'ROCPROFILER_THREAD_TRACE_DECODER_STATUS_ERROR_INVALID_SHADER_DATA', (ROCPROFILER_THREAD_TRACE_DECODER_STATUS_LAST:=5): 'ROCPROFILER_THREAD_TRACE_DECODER_STATUS_LAST'}
enum_rocprofiler_thread_trace_decoder_record_type_t: dict[int, str] = {(ROCPROFILER_THREAD_TRACE_DECODER_RECORD_GFXIP:=0): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_GFXIP', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_OCCUPANCY:=1): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_OCCUPANCY', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_PERFEVENT:=2): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_PERFEVENT', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_WAVE:=3): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_WAVE', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_INFO:=4): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_INFO', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_DEBUG:=5): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_DEBUG', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_SHADERDATA:=6): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_SHADERDATA', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_REALTIME:=7): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_REALTIME', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_RT_FREQUENCY:=8): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_RT_FREQUENCY', (ROCPROFILER_THREAD_TRACE_DECODER_RECORD_LAST:=9): 'ROCPROFILER_THREAD_TRACE_DECODER_RECORD_LAST'}
rocprof_trace_decoder_trace_callback_t: TypeAlias = c.CFUNCTYPE[ctypes.c_uint32, [ctypes.c_uint32, ctypes.c_void_p, ctypes.c_uint64, ctypes.c_void_p]]
@c.record
class struct_rocprofiler_thread_trace_decoder_pc_t(c.Struct):
SIZE = 16
address: Annotated[uint64_t, 0]
code_object_id: Annotated[uint64_t, 8]
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
rocprof_trace_decoder_isa_callback_t: TypeAlias = c.CFUNCTYPE[rocprofiler_thread_trace_decoder_status_t, [c.POINTER[Annotated[bytes, ctypes.c_char]], c.POINTER[Annotated[int, ctypes.c_uint64]], c.POINTER[Annotated[int, ctypes.c_uint64]], struct_rocprofiler_thread_trace_decoder_pc_t, ctypes.c_void_p]]
rocprof_trace_decoder_se_data_callback_t: TypeAlias = c.CFUNCTYPE[Annotated[int, ctypes.c_uint64], [c.POINTER[c.POINTER[Annotated[int, ctypes.c_ubyte]]], c.POINTER[Annotated[int, ctypes.c_uint64]], ctypes.c_void_p]]
@dll.bind
def rocprof_trace_decoder_parse_data(se_data_callback:rocprof_trace_decoder_se_data_callback_t, trace_callback:rocprof_trace_decoder_trace_callback_t, isa_callback:rocprof_trace_decoder_isa_callback_t, userdata:ctypes.c_void_p) -> rocprofiler_thread_trace_decoder_status_t: ...
class enum_rocprofiler_thread_trace_decoder_info_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROFILER_THREAD_TRACE_DECODER_INFO_NONE = enum_rocprofiler_thread_trace_decoder_info_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INFO_NONE', 0)
ROCPROFILER_THREAD_TRACE_DECODER_INFO_DATA_LOST = enum_rocprofiler_thread_trace_decoder_info_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INFO_DATA_LOST', 1)
ROCPROFILER_THREAD_TRACE_DECODER_INFO_STITCH_INCOMPLETE = enum_rocprofiler_thread_trace_decoder_info_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INFO_STITCH_INCOMPLETE', 2)
ROCPROFILER_THREAD_TRACE_DECODER_INFO_WAVE_INCOMPLETE = enum_rocprofiler_thread_trace_decoder_info_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INFO_WAVE_INCOMPLETE', 3)
ROCPROFILER_THREAD_TRACE_DECODER_INFO_LAST = enum_rocprofiler_thread_trace_decoder_info_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INFO_LAST', 4)
rocprofiler_thread_trace_decoder_info_t: TypeAlias = enum_rocprofiler_thread_trace_decoder_info_t
@dll.bind
def rocprof_trace_decoder_get_info_string(info:rocprofiler_thread_trace_decoder_info_t) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def rocprof_trace_decoder_get_status_string(status:rocprofiler_thread_trace_decoder_status_t) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
rocprofiler_thread_trace_decoder_debug_callback_t: TypeAlias = c.CFUNCTYPE[None, [Annotated[int, ctypes.c_int64], c.POINTER[Annotated[bytes, ctypes.c_char]], c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p]]
@dll.bind
def rocprof_trace_decoder_dump_data(data:c.POINTER[Annotated[bytes, ctypes.c_char]], data_size:uint64_t, cb:rocprofiler_thread_trace_decoder_debug_callback_t, userdata:ctypes.c_void_p) -> rocprofiler_thread_trace_decoder_status_t: ...
address: int
code_object_id: int
uint64_t: TypeAlias = ctypes.c_uint64
struct_rocprofiler_thread_trace_decoder_pc_t.register_fields([('address', uint64_t, 0), ('code_object_id', uint64_t, 8)])
rocprof_trace_decoder_isa_callback_t: TypeAlias = c.CFUNCTYPE[ctypes.c_uint32, [c.POINTER[ctypes.c_char], c.POINTER[ctypes.c_uint64], c.POINTER[ctypes.c_uint64], struct_rocprofiler_thread_trace_decoder_pc_t, ctypes.c_void_p]]
rocprof_trace_decoder_se_data_callback_t: TypeAlias = c.CFUNCTYPE[ctypes.c_uint64, [c.POINTER[c.POINTER[ctypes.c_ubyte]], c.POINTER[ctypes.c_uint64], ctypes.c_void_p]]
@dll.bind(ctypes.c_uint32, rocprof_trace_decoder_se_data_callback_t, rocprof_trace_decoder_trace_callback_t, rocprof_trace_decoder_isa_callback_t, ctypes.c_void_p)
def rocprof_trace_decoder_parse_data(se_data_callback:rocprof_trace_decoder_se_data_callback_t, trace_callback:rocprof_trace_decoder_trace_callback_t, isa_callback:rocprof_trace_decoder_isa_callback_t, userdata:ctypes.c_void_p) -> ctypes.c_uint32: ...
enum_rocprofiler_thread_trace_decoder_info_t: dict[int, str] = {(ROCPROFILER_THREAD_TRACE_DECODER_INFO_NONE:=0): 'ROCPROFILER_THREAD_TRACE_DECODER_INFO_NONE', (ROCPROFILER_THREAD_TRACE_DECODER_INFO_DATA_LOST:=1): 'ROCPROFILER_THREAD_TRACE_DECODER_INFO_DATA_LOST', (ROCPROFILER_THREAD_TRACE_DECODER_INFO_STITCH_INCOMPLETE:=2): 'ROCPROFILER_THREAD_TRACE_DECODER_INFO_STITCH_INCOMPLETE', (ROCPROFILER_THREAD_TRACE_DECODER_INFO_WAVE_INCOMPLETE:=3): 'ROCPROFILER_THREAD_TRACE_DECODER_INFO_WAVE_INCOMPLETE', (ROCPROFILER_THREAD_TRACE_DECODER_INFO_LAST:=4): 'ROCPROFILER_THREAD_TRACE_DECODER_INFO_LAST'}
rocprofiler_thread_trace_decoder_info_t: TypeAlias = ctypes.c_uint32
@dll.bind(c.POINTER[ctypes.c_char], rocprofiler_thread_trace_decoder_info_t)
def rocprof_trace_decoder_get_info_string(info:rocprofiler_thread_trace_decoder_info_t) -> c.POINTER[ctypes.c_char]: ...
@dll.bind(c.POINTER[ctypes.c_char], ctypes.c_uint32)
def rocprof_trace_decoder_get_status_string(status:ctypes.c_uint32) -> c.POINTER[ctypes.c_char]: ...
rocprofiler_thread_trace_decoder_debug_callback_t: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_int64, c.POINTER[ctypes.c_char], c.POINTER[ctypes.c_char], ctypes.c_void_p]]
@dll.bind(ctypes.c_uint32, c.POINTER[ctypes.c_char], uint64_t, rocprofiler_thread_trace_decoder_debug_callback_t, ctypes.c_void_p)
def rocprof_trace_decoder_dump_data(data:c.POINTER[ctypes.c_char], data_size:uint64_t, cb:rocprofiler_thread_trace_decoder_debug_callback_t, userdata:ctypes.c_void_p) -> ctypes.c_uint32: ...
@c.record
class union_rocprof_trace_decoder_gfx9_header_t(c.Struct):
SIZE = 8
legacy_version: Annotated[uint64_t, 0, 13, 0]
gfx9_version2: Annotated[uint64_t, 1, 3, 5]
DSIMDM: Annotated[uint64_t, 2, 4, 0]
DCU: Annotated[uint64_t, 2, 5, 4]
reserved1: Annotated[uint64_t, 3, 1, 1]
SEID: Annotated[uint64_t, 3, 6, 2]
reserved2: Annotated[uint64_t, 4, 32, 0]
raw: Annotated[uint64_t, 0]
legacy_version: int
gfx9_version2: int
DSIMDM: int
DCU: int
reserved1: int
SEID: int
reserved2: int
raw: int
union_rocprof_trace_decoder_gfx9_header_t.register_fields([('legacy_version', uint64_t, 0, 13, 0), ('gfx9_version2', uint64_t, 1, 3, 5), ('DSIMDM', uint64_t, 2, 4, 0), ('DCU', uint64_t, 2, 5, 4), ('reserved1', uint64_t, 3, 1, 1), ('SEID', uint64_t, 3, 6, 2), ('reserved2', uint64_t, 4, 32, 0), ('raw', uint64_t, 0)])
rocprof_trace_decoder_gfx9_header_t: TypeAlias = union_rocprof_trace_decoder_gfx9_header_t
@c.record
class union_rocprof_trace_decoder_instrument_enable_t(c.Struct):
SIZE = 4
char1: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
char2: Annotated[Annotated[int, ctypes.c_uint32], 1, 8, 0]
char3: Annotated[Annotated[int, ctypes.c_uint32], 2, 8, 0]
char4: Annotated[Annotated[int, ctypes.c_uint32], 3, 8, 0]
u32All: Annotated[Annotated[int, ctypes.c_uint32], 0]
char1: int
char2: int
char3: int
char4: int
u32All: int
union_rocprof_trace_decoder_instrument_enable_t.register_fields([('char1', ctypes.c_uint32, 0, 8, 0), ('char2', ctypes.c_uint32, 1, 8, 0), ('char3', ctypes.c_uint32, 2, 8, 0), ('char4', ctypes.c_uint32, 3, 8, 0), ('u32All', ctypes.c_uint32, 0)])
rocprof_trace_decoder_instrument_enable_t: TypeAlias = union_rocprof_trace_decoder_instrument_enable_t
@c.record
class union_rocprof_trace_decoder_packet_header_t(c.Struct):
SIZE = 4
opcode: Annotated[Annotated[int, ctypes.c_uint32], 0, 8, 0]
type: Annotated[Annotated[int, ctypes.c_uint32], 1, 4, 0]
data20: Annotated[Annotated[int, ctypes.c_uint32], 1, 20, 4]
u32All: Annotated[Annotated[int, ctypes.c_uint32], 0]
opcode: int
type: int
data20: int
u32All: int
union_rocprof_trace_decoder_packet_header_t.register_fields([('opcode', ctypes.c_uint32, 0, 8, 0), ('type', ctypes.c_uint32, 1, 4, 0), ('data20', ctypes.c_uint32, 1, 20, 4), ('u32All', ctypes.c_uint32, 0)])
rocprof_trace_decoder_packet_header_t: TypeAlias = union_rocprof_trace_decoder_packet_header_t
class enum_rocprof_trace_decoder_packet_opcode_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROF_TRACE_DECODER_PACKET_OPCODE_CODEOBJ = enum_rocprof_trace_decoder_packet_opcode_t.define('ROCPROF_TRACE_DECODER_PACKET_OPCODE_CODEOBJ', 4)
ROCPROF_TRACE_DECODER_PACKET_OPCODE_RT_TIMESTAMP = enum_rocprof_trace_decoder_packet_opcode_t.define('ROCPROF_TRACE_DECODER_PACKET_OPCODE_RT_TIMESTAMP', 5)
ROCPROF_TRACE_DECODER_PACKET_OPCODE_AGENT_INFO = enum_rocprof_trace_decoder_packet_opcode_t.define('ROCPROF_TRACE_DECODER_PACKET_OPCODE_AGENT_INFO', 6)
rocprof_trace_decoder_packet_opcode_t: TypeAlias = enum_rocprof_trace_decoder_packet_opcode_t
class enum_rocprof_trace_decoder_agent_info_type_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_RT_FREQUENCY_KHZ = enum_rocprof_trace_decoder_agent_info_type_t.define('ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_RT_FREQUENCY_KHZ', 0)
ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_COUNTER_INTERVAL = enum_rocprof_trace_decoder_agent_info_type_t.define('ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_COUNTER_INTERVAL', 1)
ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_LAST = enum_rocprof_trace_decoder_agent_info_type_t.define('ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_LAST', 2)
rocprof_trace_decoder_agent_info_type_t: TypeAlias = enum_rocprof_trace_decoder_agent_info_type_t
enum_rocprof_trace_decoder_packet_opcode_t: dict[int, str] = {(ROCPROF_TRACE_DECODER_PACKET_OPCODE_CODEOBJ:=4): 'ROCPROF_TRACE_DECODER_PACKET_OPCODE_CODEOBJ', (ROCPROF_TRACE_DECODER_PACKET_OPCODE_RT_TIMESTAMP:=5): 'ROCPROF_TRACE_DECODER_PACKET_OPCODE_RT_TIMESTAMP', (ROCPROF_TRACE_DECODER_PACKET_OPCODE_AGENT_INFO:=6): 'ROCPROF_TRACE_DECODER_PACKET_OPCODE_AGENT_INFO'}
rocprof_trace_decoder_packet_opcode_t: TypeAlias = ctypes.c_uint32
enum_rocprof_trace_decoder_agent_info_type_t: dict[int, str] = {(ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_RT_FREQUENCY_KHZ:=0): 'ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_RT_FREQUENCY_KHZ', (ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_COUNTER_INTERVAL:=1): 'ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_COUNTER_INTERVAL', (ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_LAST:=2): 'ROCPROF_TRACE_DECODER_AGENT_INFO_TYPE_LAST'}
rocprof_trace_decoder_agent_info_type_t: TypeAlias = ctypes.c_uint32
@c.record
class union_rocprof_trace_decoder_codeobj_marker_tail_t(c.Struct):
SIZE = 4
isUnload: Annotated[uint32_t, 0, 1, 0]
bFromStart: Annotated[uint32_t, 0, 1, 1]
legacy_id: Annotated[uint32_t, 0, 30, 2]
raw: Annotated[uint32_t, 0]
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
isUnload: int
bFromStart: int
legacy_id: int
raw: int
uint32_t: TypeAlias = ctypes.c_uint32
union_rocprof_trace_decoder_codeobj_marker_tail_t.register_fields([('isUnload', uint32_t, 0, 1, 0), ('bFromStart', uint32_t, 0, 1, 1), ('legacy_id', uint32_t, 0, 30, 2), ('raw', uint32_t, 0)])
rocprof_trace_decoder_codeobj_marker_tail_t: TypeAlias = union_rocprof_trace_decoder_codeobj_marker_tail_t
class enum_rocprof_trace_decoder_codeobj_marker_type_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_TAIL = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_TAIL', 0)
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_LO = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_LO', 1)
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_LO = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_LO', 2)
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_HI = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_HI', 3)
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_HI = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_HI', 4)
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_LO = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_LO', 5)
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_HI = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_HI', 6)
ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_LAST = enum_rocprof_trace_decoder_codeobj_marker_type_t.define('ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_LAST', 7)
rocprof_trace_decoder_codeobj_marker_type_t: TypeAlias = enum_rocprof_trace_decoder_codeobj_marker_type_t
enum_rocprof_trace_decoder_codeobj_marker_type_t: dict[int, str] = {(ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_TAIL:=0): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_TAIL', (ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_LO:=1): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_LO', (ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_LO:=2): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_LO', (ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_HI:=3): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ADDR_HI', (ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_HI:=4): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_SIZE_HI', (ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_LO:=5): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_LO', (ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_HI:=6): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_ID_HI', (ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_LAST:=7): 'ROCPROF_TRACE_DECODER_CODEOBJ_MARKER_TYPE_LAST'}
rocprof_trace_decoder_codeobj_marker_type_t: TypeAlias = ctypes.c_uint32
rocprofiler_thread_trace_decoder_pc_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_pc_t
@c.record
class struct_rocprofiler_thread_trace_decoder_perfevent_t(c.Struct):
SIZE = 24
time: Annotated[int64_t, 0]
events0: Annotated[uint16_t, 8]
events1: Annotated[uint16_t, 10]
events2: Annotated[uint16_t, 12]
events3: Annotated[uint16_t, 14]
CU: Annotated[uint8_t, 16]
bank: Annotated[uint8_t, 17]
int64_t: TypeAlias = Annotated[int, ctypes.c_int64]
uint16_t: TypeAlias = Annotated[int, ctypes.c_uint16]
uint8_t: TypeAlias = Annotated[int, ctypes.c_ubyte]
time: int
events0: int
events1: int
events2: int
events3: int
CU: int
bank: int
int64_t: TypeAlias = ctypes.c_int64
uint16_t: TypeAlias = ctypes.c_uint16
uint8_t: TypeAlias = ctypes.c_ubyte
struct_rocprofiler_thread_trace_decoder_perfevent_t.register_fields([('time', int64_t, 0), ('events0', uint16_t, 8), ('events1', uint16_t, 10), ('events2', uint16_t, 12), ('events3', uint16_t, 14), ('CU', uint8_t, 16), ('bank', uint8_t, 17)])
rocprofiler_thread_trace_decoder_perfevent_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_perfevent_t
@c.record
class struct_rocprofiler_thread_trace_decoder_occupancy_t(c.Struct):
SIZE = 32
pc: Annotated[rocprofiler_thread_trace_decoder_pc_t, 0]
time: Annotated[uint64_t, 16]
reserved: Annotated[uint8_t, 24]
cu: Annotated[uint8_t, 25]
simd: Annotated[uint8_t, 26]
wave_id: Annotated[uint8_t, 27]
start: Annotated[uint32_t, 28, 1, 0]
_rsvd: Annotated[uint32_t, 28, 31, 1]
pc: struct_rocprofiler_thread_trace_decoder_pc_t
time: int
reserved: int
cu: int
simd: int
wave_id: int
start: int
_rsvd: int
struct_rocprofiler_thread_trace_decoder_occupancy_t.register_fields([('pc', rocprofiler_thread_trace_decoder_pc_t, 0), ('time', uint64_t, 16), ('reserved', uint8_t, 24), ('cu', uint8_t, 25), ('simd', uint8_t, 26), ('wave_id', uint8_t, 27), ('start', uint32_t, 28, 1, 0), ('_rsvd', uint32_t, 28, 31, 1)])
rocprofiler_thread_trace_decoder_occupancy_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_occupancy_t
class enum_rocprofiler_thread_trace_decoder_wstate_type_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EMPTY = enum_rocprofiler_thread_trace_decoder_wstate_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EMPTY', 0)
ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_IDLE = enum_rocprofiler_thread_trace_decoder_wstate_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_IDLE', 1)
ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EXEC = enum_rocprofiler_thread_trace_decoder_wstate_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EXEC', 2)
ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_WAIT = enum_rocprofiler_thread_trace_decoder_wstate_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_WAIT', 3)
ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_STALL = enum_rocprofiler_thread_trace_decoder_wstate_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_STALL', 4)
ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_LAST = enum_rocprofiler_thread_trace_decoder_wstate_type_t.define('ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_LAST', 5)
rocprofiler_thread_trace_decoder_wstate_type_t: TypeAlias = enum_rocprofiler_thread_trace_decoder_wstate_type_t
enum_rocprofiler_thread_trace_decoder_wstate_type_t: dict[int, str] = {(ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EMPTY:=0): 'ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EMPTY', (ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_IDLE:=1): 'ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_IDLE', (ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EXEC:=2): 'ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_EXEC', (ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_WAIT:=3): 'ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_WAIT', (ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_STALL:=4): 'ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_STALL', (ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_LAST:=5): 'ROCPROFILER_THREAD_TRACE_DECODER_WSTATE_LAST'}
rocprofiler_thread_trace_decoder_wstate_type_t: TypeAlias = ctypes.c_uint32
@c.record
class struct_rocprofiler_thread_trace_decoder_wave_state_t(c.Struct):
SIZE = 8
type: Annotated[int32_t, 0]
duration: Annotated[int32_t, 4]
int32_t: TypeAlias = Annotated[int, ctypes.c_int32]
type: int
duration: int
int32_t: TypeAlias = ctypes.c_int32
struct_rocprofiler_thread_trace_decoder_wave_state_t.register_fields([('type', int32_t, 0), ('duration', int32_t, 4)])
rocprofiler_thread_trace_decoder_wave_state_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_wave_state_t
class enum_rocprofiler_thread_trace_decoder_inst_category_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROFILER_THREAD_TRACE_DECODER_INST_NONE = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_NONE', 0)
ROCPROFILER_THREAD_TRACE_DECODER_INST_SMEM = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_SMEM', 1)
ROCPROFILER_THREAD_TRACE_DECODER_INST_SALU = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_SALU', 2)
ROCPROFILER_THREAD_TRACE_DECODER_INST_VMEM = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_VMEM', 3)
ROCPROFILER_THREAD_TRACE_DECODER_INST_FLAT = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_FLAT', 4)
ROCPROFILER_THREAD_TRACE_DECODER_INST_LDS = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_LDS', 5)
ROCPROFILER_THREAD_TRACE_DECODER_INST_VALU = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_VALU', 6)
ROCPROFILER_THREAD_TRACE_DECODER_INST_JUMP = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_JUMP', 7)
ROCPROFILER_THREAD_TRACE_DECODER_INST_NEXT = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_NEXT', 8)
ROCPROFILER_THREAD_TRACE_DECODER_INST_IMMED = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_IMMED', 9)
ROCPROFILER_THREAD_TRACE_DECODER_INST_CONTEXT = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_CONTEXT', 10)
ROCPROFILER_THREAD_TRACE_DECODER_INST_MESSAGE = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_MESSAGE', 11)
ROCPROFILER_THREAD_TRACE_DECODER_INST_BVH = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_BVH', 12)
ROCPROFILER_THREAD_TRACE_DECODER_INST_LAST = enum_rocprofiler_thread_trace_decoder_inst_category_t.define('ROCPROFILER_THREAD_TRACE_DECODER_INST_LAST', 13)
rocprofiler_thread_trace_decoder_inst_category_t: TypeAlias = enum_rocprofiler_thread_trace_decoder_inst_category_t
enum_rocprofiler_thread_trace_decoder_inst_category_t: dict[int, str] = {(ROCPROFILER_THREAD_TRACE_DECODER_INST_NONE:=0): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_NONE', (ROCPROFILER_THREAD_TRACE_DECODER_INST_SMEM:=1): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_SMEM', (ROCPROFILER_THREAD_TRACE_DECODER_INST_SALU:=2): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_SALU', (ROCPROFILER_THREAD_TRACE_DECODER_INST_VMEM:=3): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_VMEM', (ROCPROFILER_THREAD_TRACE_DECODER_INST_FLAT:=4): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_FLAT', (ROCPROFILER_THREAD_TRACE_DECODER_INST_LDS:=5): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_LDS', (ROCPROFILER_THREAD_TRACE_DECODER_INST_VALU:=6): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_VALU', (ROCPROFILER_THREAD_TRACE_DECODER_INST_JUMP:=7): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_JUMP', (ROCPROFILER_THREAD_TRACE_DECODER_INST_NEXT:=8): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_NEXT', (ROCPROFILER_THREAD_TRACE_DECODER_INST_IMMED:=9): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_IMMED', (ROCPROFILER_THREAD_TRACE_DECODER_INST_CONTEXT:=10): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_CONTEXT', (ROCPROFILER_THREAD_TRACE_DECODER_INST_MESSAGE:=11): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_MESSAGE', (ROCPROFILER_THREAD_TRACE_DECODER_INST_BVH:=12): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_BVH', (ROCPROFILER_THREAD_TRACE_DECODER_INST_LAST:=13): 'ROCPROFILER_THREAD_TRACE_DECODER_INST_LAST'}
rocprofiler_thread_trace_decoder_inst_category_t: TypeAlias = ctypes.c_uint32
@c.record
class struct_rocprofiler_thread_trace_decoder_inst_t(c.Struct):
SIZE = 32
category: Annotated[uint32_t, 0, 8, 0]
stall: Annotated[uint32_t, 1, 24, 0]
duration: Annotated[int32_t, 4]
time: Annotated[int64_t, 8]
pc: Annotated[rocprofiler_thread_trace_decoder_pc_t, 16]
category: int
stall: int
duration: int
time: int
pc: struct_rocprofiler_thread_trace_decoder_pc_t
struct_rocprofiler_thread_trace_decoder_inst_t.register_fields([('category', uint32_t, 0, 8, 0), ('stall', uint32_t, 1, 24, 0), ('duration', int32_t, 4), ('time', int64_t, 8), ('pc', rocprofiler_thread_trace_decoder_pc_t, 16)])
rocprofiler_thread_trace_decoder_inst_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_inst_t
@c.record
class struct_rocprofiler_thread_trace_decoder_wave_t(c.Struct):
SIZE = 64
cu: Annotated[uint8_t, 0]
simd: Annotated[uint8_t, 1]
wave_id: Annotated[uint8_t, 2]
contexts: Annotated[uint8_t, 3]
_rsvd1: Annotated[uint32_t, 4]
_rsvd2: Annotated[uint32_t, 8]
_rsvd3: Annotated[uint32_t, 12]
begin_time: Annotated[int64_t, 16]
end_time: Annotated[int64_t, 24]
timeline_size: Annotated[uint64_t, 32]
instructions_size: Annotated[uint64_t, 40]
timeline_array: Annotated[c.POINTER[rocprofiler_thread_trace_decoder_wave_state_t], 48]
instructions_array: Annotated[c.POINTER[rocprofiler_thread_trace_decoder_inst_t], 56]
cu: int
simd: int
wave_id: int
contexts: int
_rsvd1: int
_rsvd2: int
_rsvd3: int
begin_time: int
end_time: int
timeline_size: int
instructions_size: int
timeline_array: c.POINTER[struct_rocprofiler_thread_trace_decoder_wave_state_t]
instructions_array: c.POINTER[struct_rocprofiler_thread_trace_decoder_inst_t]
struct_rocprofiler_thread_trace_decoder_wave_t.register_fields([('cu', uint8_t, 0), ('simd', uint8_t, 1), ('wave_id', uint8_t, 2), ('contexts', uint8_t, 3), ('_rsvd1', uint32_t, 4), ('_rsvd2', uint32_t, 8), ('_rsvd3', uint32_t, 12), ('begin_time', int64_t, 16), ('end_time', int64_t, 24), ('timeline_size', uint64_t, 32), ('instructions_size', uint64_t, 40), ('timeline_array', c.POINTER[rocprofiler_thread_trace_decoder_wave_state_t], 48), ('instructions_array', c.POINTER[rocprofiler_thread_trace_decoder_inst_t], 56)])
rocprofiler_thread_trace_decoder_wave_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_wave_t
@c.record
class struct_rocprofiler_thread_trace_decoder_realtime_t(c.Struct):
SIZE = 24
shader_clock: Annotated[int64_t, 0]
realtime_clock: Annotated[uint64_t, 8]
reserved: Annotated[uint64_t, 16]
shader_clock: int
realtime_clock: int
reserved: int
struct_rocprofiler_thread_trace_decoder_realtime_t.register_fields([('shader_clock', int64_t, 0), ('realtime_clock', uint64_t, 8), ('reserved', uint64_t, 16)])
rocprofiler_thread_trace_decoder_realtime_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_realtime_t
class enum_rocprofiler_thread_trace_decoder_shaderdata_flags_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_IMM = enum_rocprofiler_thread_trace_decoder_shaderdata_flags_t.define('ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_IMM', 0)
ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_PRIV = enum_rocprofiler_thread_trace_decoder_shaderdata_flags_t.define('ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_PRIV', 1)
rocprofiler_thread_trace_decoder_shaderdata_flags_t: TypeAlias = enum_rocprofiler_thread_trace_decoder_shaderdata_flags_t
enum_rocprofiler_thread_trace_decoder_shaderdata_flags_t: dict[int, str] = {(ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_IMM:=0): 'ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_IMM', (ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_PRIV:=1): 'ROCPROFILER_THREAD_TRACE_DECODER_SHADERDATA_FLAGS_PRIV'}
rocprofiler_thread_trace_decoder_shaderdata_flags_t: TypeAlias = ctypes.c_uint32
@c.record
class struct_rocprofiler_thread_trace_decoder_shaderdata_t(c.Struct):
SIZE = 24
time: Annotated[int64_t, 0]
value: Annotated[uint64_t, 8]
cu: Annotated[uint8_t, 16]
simd: Annotated[uint8_t, 17]
wave_id: Annotated[uint8_t, 18]
flags: Annotated[uint8_t, 19]
reserved: Annotated[uint32_t, 20]
time: int
value: int
cu: int
simd: int
wave_id: int
flags: int
reserved: int
struct_rocprofiler_thread_trace_decoder_shaderdata_t.register_fields([('time', int64_t, 0), ('value', uint64_t, 8), ('cu', uint8_t, 16), ('simd', uint8_t, 17), ('wave_id', uint8_t, 18), ('flags', uint8_t, 19), ('reserved', uint32_t, 20)])
rocprofiler_thread_trace_decoder_shaderdata_t: TypeAlias = struct_rocprofiler_thread_trace_decoder_shaderdata_t
rocprofiler_thread_trace_decoder_record_type_t: TypeAlias = enum_rocprofiler_thread_trace_decoder_record_type_t
c.init_records()
rocprofiler_thread_trace_decoder_record_type_t: TypeAlias = ctypes.c_uint32

File diff suppressed because it is too large Load diff

View file

@ -1,401 +1,409 @@
# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
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_vfio_info_cap_header(c.Struct):
SIZE = 8
id: Annotated[Annotated[int, ctypes.c_uint16], 0]
version: Annotated[Annotated[int, ctypes.c_uint16], 2]
next: Annotated[Annotated[int, ctypes.c_uint32], 4]
__u16: TypeAlias = Annotated[int, ctypes.c_uint16]
__u32: TypeAlias = Annotated[int, ctypes.c_uint32]
id: int
version: int
next: int
__u16: TypeAlias = ctypes.c_uint16
__u32: TypeAlias = ctypes.c_uint32
struct_vfio_info_cap_header.register_fields([('id', ctypes.c_uint16, 0), ('version', ctypes.c_uint16, 2), ('next', ctypes.c_uint32, 4)])
@c.record
class struct_vfio_group_status(c.Struct):
SIZE = 8
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
argsz: int
flags: int
struct_vfio_group_status.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4)])
@c.record
class struct_vfio_device_info(c.Struct):
SIZE = 24
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
num_regions: Annotated[Annotated[int, ctypes.c_uint32], 8]
num_irqs: Annotated[Annotated[int, ctypes.c_uint32], 12]
cap_offset: Annotated[Annotated[int, ctypes.c_uint32], 16]
pad: Annotated[Annotated[int, ctypes.c_uint32], 20]
argsz: int
flags: int
num_regions: int
num_irqs: int
cap_offset: int
pad: int
struct_vfio_device_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('num_regions', ctypes.c_uint32, 8), ('num_irqs', ctypes.c_uint32, 12), ('cap_offset', ctypes.c_uint32, 16), ('pad', ctypes.c_uint32, 20)])
@c.record
class struct_vfio_device_info_cap_pci_atomic_comp(c.Struct):
SIZE = 16
header: Annotated[struct_vfio_info_cap_header, 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 8]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 12]
header: struct_vfio_info_cap_header
flags: int
reserved: int
struct_vfio_device_info_cap_pci_atomic_comp.register_fields([('header', struct_vfio_info_cap_header, 0), ('flags', ctypes.c_uint32, 8), ('reserved', ctypes.c_uint32, 12)])
@c.record
class struct_vfio_region_info(c.Struct):
SIZE = 32
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
index: Annotated[Annotated[int, ctypes.c_uint32], 8]
cap_offset: Annotated[Annotated[int, ctypes.c_uint32], 12]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
offset: Annotated[Annotated[int, ctypes.c_uint64], 24]
__u64: TypeAlias = Annotated[int, ctypes.c_uint64]
argsz: int
flags: int
index: int
cap_offset: int
size: int
offset: int
__u64: TypeAlias = ctypes.c_uint64
struct_vfio_region_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('index', ctypes.c_uint32, 8), ('cap_offset', ctypes.c_uint32, 12), ('size', ctypes.c_uint64, 16), ('offset', ctypes.c_uint64, 24)])
@c.record
class struct_vfio_region_sparse_mmap_area(c.Struct):
SIZE = 16
offset: Annotated[Annotated[int, ctypes.c_uint64], 0]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
offset: int
size: int
struct_vfio_region_sparse_mmap_area.register_fields([('offset', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8)])
@c.record
class struct_vfio_region_info_cap_sparse_mmap(c.Struct):
SIZE = 16
header: Annotated[struct_vfio_info_cap_header, 0]
nr_areas: Annotated[Annotated[int, ctypes.c_uint32], 8]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 12]
areas: Annotated[c.Array[struct_vfio_region_sparse_mmap_area, Literal[0]], 16]
header: struct_vfio_info_cap_header
nr_areas: int
reserved: int
areas: c.Array[struct_vfio_region_sparse_mmap_area, Literal[0]]
struct_vfio_region_info_cap_sparse_mmap.register_fields([('header', struct_vfio_info_cap_header, 0), ('nr_areas', ctypes.c_uint32, 8), ('reserved', ctypes.c_uint32, 12), ('areas', c.Array[struct_vfio_region_sparse_mmap_area, Literal[0]], 16)])
@c.record
class struct_vfio_region_info_cap_type(c.Struct):
SIZE = 16
header: Annotated[struct_vfio_info_cap_header, 0]
type: Annotated[Annotated[int, ctypes.c_uint32], 8]
subtype: Annotated[Annotated[int, ctypes.c_uint32], 12]
header: struct_vfio_info_cap_header
type: int
subtype: int
struct_vfio_region_info_cap_type.register_fields([('header', struct_vfio_info_cap_header, 0), ('type', ctypes.c_uint32, 8), ('subtype', ctypes.c_uint32, 12)])
@c.record
class struct_vfio_region_gfx_edid(c.Struct):
SIZE = 24
edid_offset: Annotated[Annotated[int, ctypes.c_uint32], 0]
edid_max_size: Annotated[Annotated[int, ctypes.c_uint32], 4]
edid_size: Annotated[Annotated[int, ctypes.c_uint32], 8]
max_xres: Annotated[Annotated[int, ctypes.c_uint32], 12]
max_yres: Annotated[Annotated[int, ctypes.c_uint32], 16]
link_state: Annotated[Annotated[int, ctypes.c_uint32], 20]
edid_offset: int
edid_max_size: int
edid_size: int
max_xres: int
max_yres: int
link_state: int
struct_vfio_region_gfx_edid.register_fields([('edid_offset', ctypes.c_uint32, 0), ('edid_max_size', ctypes.c_uint32, 4), ('edid_size', ctypes.c_uint32, 8), ('max_xres', ctypes.c_uint32, 12), ('max_yres', ctypes.c_uint32, 16), ('link_state', ctypes.c_uint32, 20)])
@c.record
class struct_vfio_device_migration_info(c.Struct):
SIZE = 32
device_state: Annotated[Annotated[int, ctypes.c_uint32], 0]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 4]
pending_bytes: Annotated[Annotated[int, ctypes.c_uint64], 8]
data_offset: Annotated[Annotated[int, ctypes.c_uint64], 16]
data_size: Annotated[Annotated[int, ctypes.c_uint64], 24]
device_state: int
reserved: int
pending_bytes: int
data_offset: int
data_size: int
struct_vfio_device_migration_info.register_fields([('device_state', ctypes.c_uint32, 0), ('reserved', ctypes.c_uint32, 4), ('pending_bytes', ctypes.c_uint64, 8), ('data_offset', ctypes.c_uint64, 16), ('data_size', ctypes.c_uint64, 24)])
@c.record
class struct_vfio_region_info_cap_nvlink2_ssatgt(c.Struct):
SIZE = 16
header: Annotated[struct_vfio_info_cap_header, 0]
tgt: Annotated[Annotated[int, ctypes.c_uint64], 8]
header: struct_vfio_info_cap_header
tgt: int
struct_vfio_region_info_cap_nvlink2_ssatgt.register_fields([('header', struct_vfio_info_cap_header, 0), ('tgt', ctypes.c_uint64, 8)])
@c.record
class struct_vfio_region_info_cap_nvlink2_lnkspd(c.Struct):
SIZE = 16
header: Annotated[struct_vfio_info_cap_header, 0]
link_speed: Annotated[Annotated[int, ctypes.c_uint32], 8]
__pad: Annotated[Annotated[int, ctypes.c_uint32], 12]
header: struct_vfio_info_cap_header
link_speed: int
__pad: int
struct_vfio_region_info_cap_nvlink2_lnkspd.register_fields([('header', struct_vfio_info_cap_header, 0), ('link_speed', ctypes.c_uint32, 8), ('__pad', ctypes.c_uint32, 12)])
@c.record
class struct_vfio_irq_info(c.Struct):
SIZE = 16
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
index: Annotated[Annotated[int, ctypes.c_uint32], 8]
count: Annotated[Annotated[int, ctypes.c_uint32], 12]
argsz: int
flags: int
index: int
count: int
struct_vfio_irq_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('index', ctypes.c_uint32, 8), ('count', ctypes.c_uint32, 12)])
@c.record
class struct_vfio_irq_set(c.Struct):
SIZE = 20
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
index: Annotated[Annotated[int, ctypes.c_uint32], 8]
start: Annotated[Annotated[int, ctypes.c_uint32], 12]
count: Annotated[Annotated[int, ctypes.c_uint32], 16]
data: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[0]], 20]
__u8: TypeAlias = Annotated[int, ctypes.c_ubyte]
class _anonenum0(Annotated[int, ctypes.c_uint32], c.Enum): pass
VFIO_PCI_BAR0_REGION_INDEX = _anonenum0.define('VFIO_PCI_BAR0_REGION_INDEX', 0)
VFIO_PCI_BAR1_REGION_INDEX = _anonenum0.define('VFIO_PCI_BAR1_REGION_INDEX', 1)
VFIO_PCI_BAR2_REGION_INDEX = _anonenum0.define('VFIO_PCI_BAR2_REGION_INDEX', 2)
VFIO_PCI_BAR3_REGION_INDEX = _anonenum0.define('VFIO_PCI_BAR3_REGION_INDEX', 3)
VFIO_PCI_BAR4_REGION_INDEX = _anonenum0.define('VFIO_PCI_BAR4_REGION_INDEX', 4)
VFIO_PCI_BAR5_REGION_INDEX = _anonenum0.define('VFIO_PCI_BAR5_REGION_INDEX', 5)
VFIO_PCI_ROM_REGION_INDEX = _anonenum0.define('VFIO_PCI_ROM_REGION_INDEX', 6)
VFIO_PCI_CONFIG_REGION_INDEX = _anonenum0.define('VFIO_PCI_CONFIG_REGION_INDEX', 7)
VFIO_PCI_VGA_REGION_INDEX = _anonenum0.define('VFIO_PCI_VGA_REGION_INDEX', 8)
VFIO_PCI_NUM_REGIONS = _anonenum0.define('VFIO_PCI_NUM_REGIONS', 9)
class _anonenum1(Annotated[int, ctypes.c_uint32], c.Enum): pass
VFIO_PCI_INTX_IRQ_INDEX = _anonenum1.define('VFIO_PCI_INTX_IRQ_INDEX', 0)
VFIO_PCI_MSI_IRQ_INDEX = _anonenum1.define('VFIO_PCI_MSI_IRQ_INDEX', 1)
VFIO_PCI_MSIX_IRQ_INDEX = _anonenum1.define('VFIO_PCI_MSIX_IRQ_INDEX', 2)
VFIO_PCI_ERR_IRQ_INDEX = _anonenum1.define('VFIO_PCI_ERR_IRQ_INDEX', 3)
VFIO_PCI_REQ_IRQ_INDEX = _anonenum1.define('VFIO_PCI_REQ_IRQ_INDEX', 4)
VFIO_PCI_NUM_IRQS = _anonenum1.define('VFIO_PCI_NUM_IRQS', 5)
class _anonenum2(Annotated[int, ctypes.c_uint32], c.Enum): pass
VFIO_CCW_CONFIG_REGION_INDEX = _anonenum2.define('VFIO_CCW_CONFIG_REGION_INDEX', 0)
VFIO_CCW_NUM_REGIONS = _anonenum2.define('VFIO_CCW_NUM_REGIONS', 1)
class _anonenum3(Annotated[int, ctypes.c_uint32], c.Enum): pass
VFIO_CCW_IO_IRQ_INDEX = _anonenum3.define('VFIO_CCW_IO_IRQ_INDEX', 0)
VFIO_CCW_CRW_IRQ_INDEX = _anonenum3.define('VFIO_CCW_CRW_IRQ_INDEX', 1)
VFIO_CCW_REQ_IRQ_INDEX = _anonenum3.define('VFIO_CCW_REQ_IRQ_INDEX', 2)
VFIO_CCW_NUM_IRQS = _anonenum3.define('VFIO_CCW_NUM_IRQS', 3)
class _anonenum4(Annotated[int, ctypes.c_uint32], c.Enum): pass
VFIO_AP_REQ_IRQ_INDEX = _anonenum4.define('VFIO_AP_REQ_IRQ_INDEX', 0)
VFIO_AP_CFG_CHG_IRQ_INDEX = _anonenum4.define('VFIO_AP_CFG_CHG_IRQ_INDEX', 1)
VFIO_AP_NUM_IRQS = _anonenum4.define('VFIO_AP_NUM_IRQS', 2)
argsz: int
flags: int
index: int
start: int
count: int
data: c.Array[ctypes.c_ubyte, Literal[0]]
__u8: TypeAlias = ctypes.c_ubyte
struct_vfio_irq_set.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('index', ctypes.c_uint32, 8), ('start', ctypes.c_uint32, 12), ('count', ctypes.c_uint32, 16), ('data', c.Array[ctypes.c_ubyte, Literal[0]], 20)])
_anonenum0: dict[int, str] = {(VFIO_PCI_BAR0_REGION_INDEX:=0): 'VFIO_PCI_BAR0_REGION_INDEX', (VFIO_PCI_BAR1_REGION_INDEX:=1): 'VFIO_PCI_BAR1_REGION_INDEX', (VFIO_PCI_BAR2_REGION_INDEX:=2): 'VFIO_PCI_BAR2_REGION_INDEX', (VFIO_PCI_BAR3_REGION_INDEX:=3): 'VFIO_PCI_BAR3_REGION_INDEX', (VFIO_PCI_BAR4_REGION_INDEX:=4): 'VFIO_PCI_BAR4_REGION_INDEX', (VFIO_PCI_BAR5_REGION_INDEX:=5): 'VFIO_PCI_BAR5_REGION_INDEX', (VFIO_PCI_ROM_REGION_INDEX:=6): 'VFIO_PCI_ROM_REGION_INDEX', (VFIO_PCI_CONFIG_REGION_INDEX:=7): 'VFIO_PCI_CONFIG_REGION_INDEX', (VFIO_PCI_VGA_REGION_INDEX:=8): 'VFIO_PCI_VGA_REGION_INDEX', (VFIO_PCI_NUM_REGIONS:=9): 'VFIO_PCI_NUM_REGIONS'}
_anonenum1: dict[int, str] = {(VFIO_PCI_INTX_IRQ_INDEX:=0): 'VFIO_PCI_INTX_IRQ_INDEX', (VFIO_PCI_MSI_IRQ_INDEX:=1): 'VFIO_PCI_MSI_IRQ_INDEX', (VFIO_PCI_MSIX_IRQ_INDEX:=2): 'VFIO_PCI_MSIX_IRQ_INDEX', (VFIO_PCI_ERR_IRQ_INDEX:=3): 'VFIO_PCI_ERR_IRQ_INDEX', (VFIO_PCI_REQ_IRQ_INDEX:=4): 'VFIO_PCI_REQ_IRQ_INDEX', (VFIO_PCI_NUM_IRQS:=5): 'VFIO_PCI_NUM_IRQS'}
_anonenum2: dict[int, str] = {(VFIO_CCW_CONFIG_REGION_INDEX:=0): 'VFIO_CCW_CONFIG_REGION_INDEX', (VFIO_CCW_NUM_REGIONS:=1): 'VFIO_CCW_NUM_REGIONS'}
_anonenum3: dict[int, str] = {(VFIO_CCW_IO_IRQ_INDEX:=0): 'VFIO_CCW_IO_IRQ_INDEX', (VFIO_CCW_CRW_IRQ_INDEX:=1): 'VFIO_CCW_CRW_IRQ_INDEX', (VFIO_CCW_REQ_IRQ_INDEX:=2): 'VFIO_CCW_REQ_IRQ_INDEX', (VFIO_CCW_NUM_IRQS:=3): 'VFIO_CCW_NUM_IRQS'}
_anonenum4: dict[int, str] = {(VFIO_AP_REQ_IRQ_INDEX:=0): 'VFIO_AP_REQ_IRQ_INDEX', (VFIO_AP_CFG_CHG_IRQ_INDEX:=1): 'VFIO_AP_CFG_CHG_IRQ_INDEX', (VFIO_AP_NUM_IRQS:=2): 'VFIO_AP_NUM_IRQS'}
@c.record
class struct_vfio_pci_dependent_device(c.Struct):
SIZE = 8
group_id: Annotated[Annotated[int, ctypes.c_uint32], 0]
devid: Annotated[Annotated[int, ctypes.c_uint32], 0]
segment: Annotated[Annotated[int, ctypes.c_uint16], 4]
bus: Annotated[Annotated[int, ctypes.c_ubyte], 6]
devfn: Annotated[Annotated[int, ctypes.c_ubyte], 7]
group_id: int
devid: int
segment: int
bus: int
devfn: int
struct_vfio_pci_dependent_device.register_fields([('group_id', ctypes.c_uint32, 0), ('devid', ctypes.c_uint32, 0), ('segment', ctypes.c_uint16, 4), ('bus', ctypes.c_ubyte, 6), ('devfn', ctypes.c_ubyte, 7)])
@c.record
class struct_vfio_pci_hot_reset_info(c.Struct):
SIZE = 12
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
count: Annotated[Annotated[int, ctypes.c_uint32], 8]
devices: Annotated[c.Array[struct_vfio_pci_dependent_device, Literal[0]], 12]
argsz: int
flags: int
count: int
devices: c.Array[struct_vfio_pci_dependent_device, Literal[0]]
struct_vfio_pci_hot_reset_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('count', ctypes.c_uint32, 8), ('devices', c.Array[struct_vfio_pci_dependent_device, Literal[0]], 12)])
@c.record
class struct_vfio_pci_hot_reset(c.Struct):
SIZE = 12
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
count: Annotated[Annotated[int, ctypes.c_uint32], 8]
group_fds: Annotated[c.Array[Annotated[int, ctypes.c_int32], Literal[0]], 12]
__s32: TypeAlias = Annotated[int, ctypes.c_int32]
argsz: int
flags: int
count: int
group_fds: c.Array[ctypes.c_int32, Literal[0]]
__s32: TypeAlias = ctypes.c_int32
struct_vfio_pci_hot_reset.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('count', ctypes.c_uint32, 8), ('group_fds', c.Array[ctypes.c_int32, Literal[0]], 12)])
@c.record
class struct_vfio_device_gfx_plane_info(c.Struct):
SIZE = 64
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
drm_plane_type: Annotated[Annotated[int, ctypes.c_uint32], 8]
drm_format: Annotated[Annotated[int, ctypes.c_uint32], 12]
drm_format_mod: Annotated[Annotated[int, ctypes.c_uint64], 16]
width: Annotated[Annotated[int, ctypes.c_uint32], 24]
height: Annotated[Annotated[int, ctypes.c_uint32], 28]
stride: Annotated[Annotated[int, ctypes.c_uint32], 32]
size: Annotated[Annotated[int, ctypes.c_uint32], 36]
x_pos: Annotated[Annotated[int, ctypes.c_uint32], 40]
y_pos: Annotated[Annotated[int, ctypes.c_uint32], 44]
x_hot: Annotated[Annotated[int, ctypes.c_uint32], 48]
y_hot: Annotated[Annotated[int, ctypes.c_uint32], 52]
region_index: Annotated[Annotated[int, ctypes.c_uint32], 56]
dmabuf_id: Annotated[Annotated[int, ctypes.c_uint32], 56]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 60]
argsz: int
flags: int
drm_plane_type: int
drm_format: int
drm_format_mod: int
width: int
height: int
stride: int
size: int
x_pos: int
y_pos: int
x_hot: int
y_hot: int
region_index: int
dmabuf_id: int
reserved: int
struct_vfio_device_gfx_plane_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('drm_plane_type', ctypes.c_uint32, 8), ('drm_format', ctypes.c_uint32, 12), ('drm_format_mod', ctypes.c_uint64, 16), ('width', ctypes.c_uint32, 24), ('height', ctypes.c_uint32, 28), ('stride', ctypes.c_uint32, 32), ('size', ctypes.c_uint32, 36), ('x_pos', ctypes.c_uint32, 40), ('y_pos', ctypes.c_uint32, 44), ('x_hot', ctypes.c_uint32, 48), ('y_hot', ctypes.c_uint32, 52), ('region_index', ctypes.c_uint32, 56), ('dmabuf_id', ctypes.c_uint32, 56), ('reserved', ctypes.c_uint32, 60)])
@c.record
class struct_vfio_device_ioeventfd(c.Struct):
SIZE = 32
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
offset: Annotated[Annotated[int, ctypes.c_uint64], 8]
data: Annotated[Annotated[int, ctypes.c_uint64], 16]
fd: Annotated[Annotated[int, ctypes.c_int32], 24]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 28]
argsz: int
flags: int
offset: int
data: int
fd: int
reserved: int
struct_vfio_device_ioeventfd.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('offset', ctypes.c_uint64, 8), ('data', ctypes.c_uint64, 16), ('fd', ctypes.c_int32, 24), ('reserved', ctypes.c_uint32, 28)])
@c.record
class struct_vfio_device_feature(c.Struct):
SIZE = 8
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
data: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[0]], 8]
argsz: int
flags: int
data: c.Array[ctypes.c_ubyte, Literal[0]]
struct_vfio_device_feature.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('data', c.Array[ctypes.c_ubyte, Literal[0]], 8)])
@c.record
class struct_vfio_device_bind_iommufd(c.Struct):
SIZE = 24
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
iommufd: Annotated[Annotated[int, ctypes.c_int32], 8]
out_devid: Annotated[Annotated[int, ctypes.c_uint32], 12]
token_uuid_ptr: Annotated[Annotated[int, ctypes.c_uint64], 16]
argsz: int
flags: int
iommufd: int
out_devid: int
token_uuid_ptr: int
struct_vfio_device_bind_iommufd.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('iommufd', ctypes.c_int32, 8), ('out_devid', ctypes.c_uint32, 12), ('token_uuid_ptr', ctypes.c_uint64, 16)])
@c.record
class struct_vfio_device_attach_iommufd_pt(c.Struct):
SIZE = 16
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
pt_id: Annotated[Annotated[int, ctypes.c_uint32], 8]
pasid: Annotated[Annotated[int, ctypes.c_uint32], 12]
argsz: int
flags: int
pt_id: int
pasid: int
struct_vfio_device_attach_iommufd_pt.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('pt_id', ctypes.c_uint32, 8), ('pasid', ctypes.c_uint32, 12)])
@c.record
class struct_vfio_device_detach_iommufd_pt(c.Struct):
SIZE = 12
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
pasid: Annotated[Annotated[int, ctypes.c_uint32], 8]
argsz: int
flags: int
pasid: int
struct_vfio_device_detach_iommufd_pt.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('pasid', ctypes.c_uint32, 8)])
@c.record
class struct_vfio_device_feature_migration(c.Struct):
SIZE = 8
flags: Annotated[Annotated[int, ctypes.c_uint64], 0]
flags: int
struct_vfio_device_feature_migration.register_fields([('flags', ctypes.c_uint64, 0)])
@c.record
class struct_vfio_device_feature_mig_state(c.Struct):
SIZE = 8
device_state: Annotated[Annotated[int, ctypes.c_uint32], 0]
data_fd: Annotated[Annotated[int, ctypes.c_int32], 4]
class enum_vfio_device_mig_state(Annotated[int, ctypes.c_uint32], c.Enum): pass
VFIO_DEVICE_STATE_ERROR = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_ERROR', 0)
VFIO_DEVICE_STATE_STOP = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_STOP', 1)
VFIO_DEVICE_STATE_RUNNING = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_RUNNING', 2)
VFIO_DEVICE_STATE_STOP_COPY = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_STOP_COPY', 3)
VFIO_DEVICE_STATE_RESUMING = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_RESUMING', 4)
VFIO_DEVICE_STATE_RUNNING_P2P = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_RUNNING_P2P', 5)
VFIO_DEVICE_STATE_PRE_COPY = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_PRE_COPY', 6)
VFIO_DEVICE_STATE_PRE_COPY_P2P = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_PRE_COPY_P2P', 7)
VFIO_DEVICE_STATE_NR = enum_vfio_device_mig_state.define('VFIO_DEVICE_STATE_NR', 8)
device_state: int
data_fd: int
struct_vfio_device_feature_mig_state.register_fields([('device_state', ctypes.c_uint32, 0), ('data_fd', ctypes.c_int32, 4)])
enum_vfio_device_mig_state: dict[int, str] = {(VFIO_DEVICE_STATE_ERROR:=0): 'VFIO_DEVICE_STATE_ERROR', (VFIO_DEVICE_STATE_STOP:=1): 'VFIO_DEVICE_STATE_STOP', (VFIO_DEVICE_STATE_RUNNING:=2): 'VFIO_DEVICE_STATE_RUNNING', (VFIO_DEVICE_STATE_STOP_COPY:=3): 'VFIO_DEVICE_STATE_STOP_COPY', (VFIO_DEVICE_STATE_RESUMING:=4): 'VFIO_DEVICE_STATE_RESUMING', (VFIO_DEVICE_STATE_RUNNING_P2P:=5): 'VFIO_DEVICE_STATE_RUNNING_P2P', (VFIO_DEVICE_STATE_PRE_COPY:=6): 'VFIO_DEVICE_STATE_PRE_COPY', (VFIO_DEVICE_STATE_PRE_COPY_P2P:=7): 'VFIO_DEVICE_STATE_PRE_COPY_P2P', (VFIO_DEVICE_STATE_NR:=8): 'VFIO_DEVICE_STATE_NR'}
@c.record
class struct_vfio_precopy_info(c.Struct):
SIZE = 24
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
initial_bytes: Annotated[Annotated[int, ctypes.c_uint64], 8]
dirty_bytes: Annotated[Annotated[int, ctypes.c_uint64], 16]
argsz: int
flags: int
initial_bytes: int
dirty_bytes: int
struct_vfio_precopy_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('initial_bytes', ctypes.c_uint64, 8), ('dirty_bytes', ctypes.c_uint64, 16)])
@c.record
class struct_vfio_device_low_power_entry_with_wakeup(c.Struct):
SIZE = 8
wakeup_eventfd: Annotated[Annotated[int, ctypes.c_int32], 0]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 4]
wakeup_eventfd: int
reserved: int
struct_vfio_device_low_power_entry_with_wakeup.register_fields([('wakeup_eventfd', ctypes.c_int32, 0), ('reserved', ctypes.c_uint32, 4)])
@c.record
class struct_vfio_device_feature_dma_logging_control(c.Struct):
SIZE = 24
page_size: Annotated[Annotated[int, ctypes.c_uint64], 0]
num_ranges: Annotated[Annotated[int, ctypes.c_uint32], 8]
__reserved: Annotated[Annotated[int, ctypes.c_uint32], 12]
ranges: Annotated[Annotated[int, ctypes.c_uint64], 16]
page_size: int
num_ranges: int
__reserved: int
ranges: int
struct_vfio_device_feature_dma_logging_control.register_fields([('page_size', ctypes.c_uint64, 0), ('num_ranges', ctypes.c_uint32, 8), ('__reserved', ctypes.c_uint32, 12), ('ranges', ctypes.c_uint64, 16)])
@c.record
class struct_vfio_device_feature_dma_logging_range(c.Struct):
SIZE = 16
iova: Annotated[Annotated[int, ctypes.c_uint64], 0]
length: Annotated[Annotated[int, ctypes.c_uint64], 8]
iova: int
length: int
struct_vfio_device_feature_dma_logging_range.register_fields([('iova', ctypes.c_uint64, 0), ('length', ctypes.c_uint64, 8)])
@c.record
class struct_vfio_device_feature_dma_logging_report(c.Struct):
SIZE = 32
iova: Annotated[Annotated[int, ctypes.c_uint64], 0]
length: Annotated[Annotated[int, ctypes.c_uint64], 8]
page_size: Annotated[Annotated[int, ctypes.c_uint64], 16]
bitmap: Annotated[Annotated[int, ctypes.c_uint64], 24]
iova: int
length: int
page_size: int
bitmap: int
struct_vfio_device_feature_dma_logging_report.register_fields([('iova', ctypes.c_uint64, 0), ('length', ctypes.c_uint64, 8), ('page_size', ctypes.c_uint64, 16), ('bitmap', ctypes.c_uint64, 24)])
@c.record
class struct_vfio_device_feature_mig_data_size(c.Struct):
SIZE = 8
stop_copy_length: Annotated[Annotated[int, ctypes.c_uint64], 0]
stop_copy_length: int
struct_vfio_device_feature_mig_data_size.register_fields([('stop_copy_length', ctypes.c_uint64, 0)])
@c.record
class struct_vfio_device_feature_bus_master(c.Struct):
SIZE = 4
op: Annotated[Annotated[int, ctypes.c_uint32], 0]
op: int
struct_vfio_device_feature_bus_master.register_fields([('op', ctypes.c_uint32, 0)])
@c.record
class struct_vfio_iommu_type1_info(c.Struct):
SIZE = 24
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
iova_pgsizes: Annotated[Annotated[int, ctypes.c_uint64], 8]
cap_offset: Annotated[Annotated[int, ctypes.c_uint32], 16]
pad: Annotated[Annotated[int, ctypes.c_uint32], 20]
argsz: int
flags: int
iova_pgsizes: int
cap_offset: int
pad: int
struct_vfio_iommu_type1_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('iova_pgsizes', ctypes.c_uint64, 8), ('cap_offset', ctypes.c_uint32, 16), ('pad', ctypes.c_uint32, 20)])
@c.record
class struct_vfio_iova_range(c.Struct):
SIZE = 16
start: Annotated[Annotated[int, ctypes.c_uint64], 0]
end: Annotated[Annotated[int, ctypes.c_uint64], 8]
start: int
end: int
struct_vfio_iova_range.register_fields([('start', ctypes.c_uint64, 0), ('end', ctypes.c_uint64, 8)])
@c.record
class struct_vfio_iommu_type1_info_cap_iova_range(c.Struct):
SIZE = 16
header: Annotated[struct_vfio_info_cap_header, 0]
nr_iovas: Annotated[Annotated[int, ctypes.c_uint32], 8]
reserved: Annotated[Annotated[int, ctypes.c_uint32], 12]
iova_ranges: Annotated[c.Array[struct_vfio_iova_range, Literal[0]], 16]
header: struct_vfio_info_cap_header
nr_iovas: int
reserved: int
iova_ranges: c.Array[struct_vfio_iova_range, Literal[0]]
struct_vfio_iommu_type1_info_cap_iova_range.register_fields([('header', struct_vfio_info_cap_header, 0), ('nr_iovas', ctypes.c_uint32, 8), ('reserved', ctypes.c_uint32, 12), ('iova_ranges', c.Array[struct_vfio_iova_range, Literal[0]], 16)])
@c.record
class struct_vfio_iommu_type1_info_cap_migration(c.Struct):
SIZE = 32
header: Annotated[struct_vfio_info_cap_header, 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 8]
pgsize_bitmap: Annotated[Annotated[int, ctypes.c_uint64], 16]
max_dirty_bitmap_size: Annotated[Annotated[int, ctypes.c_uint64], 24]
header: struct_vfio_info_cap_header
flags: int
pgsize_bitmap: int
max_dirty_bitmap_size: int
struct_vfio_iommu_type1_info_cap_migration.register_fields([('header', struct_vfio_info_cap_header, 0), ('flags', ctypes.c_uint32, 8), ('pgsize_bitmap', ctypes.c_uint64, 16), ('max_dirty_bitmap_size', ctypes.c_uint64, 24)])
@c.record
class struct_vfio_iommu_type1_info_dma_avail(c.Struct):
SIZE = 12
header: Annotated[struct_vfio_info_cap_header, 0]
avail: Annotated[Annotated[int, ctypes.c_uint32], 8]
header: struct_vfio_info_cap_header
avail: int
struct_vfio_iommu_type1_info_dma_avail.register_fields([('header', struct_vfio_info_cap_header, 0), ('avail', ctypes.c_uint32, 8)])
@c.record
class struct_vfio_iommu_type1_dma_map(c.Struct):
SIZE = 32
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
vaddr: Annotated[Annotated[int, ctypes.c_uint64], 8]
iova: Annotated[Annotated[int, ctypes.c_uint64], 16]
size: Annotated[Annotated[int, ctypes.c_uint64], 24]
argsz: int
flags: int
vaddr: int
iova: int
size: int
struct_vfio_iommu_type1_dma_map.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('vaddr', ctypes.c_uint64, 8), ('iova', ctypes.c_uint64, 16), ('size', ctypes.c_uint64, 24)])
@c.record
class struct_vfio_bitmap(c.Struct):
SIZE = 24
pgsize: Annotated[Annotated[int, ctypes.c_uint64], 0]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
data: Annotated[c.POINTER[Annotated[int, ctypes.c_uint64]], 16]
pgsize: int
size: int
data: c.POINTER[ctypes.c_uint64]
struct_vfio_bitmap.register_fields([('pgsize', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('data', c.POINTER[ctypes.c_uint64], 16)])
@c.record
class struct_vfio_iommu_type1_dma_unmap(c.Struct):
SIZE = 24
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
iova: Annotated[Annotated[int, ctypes.c_uint64], 8]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
data: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[0]], 24]
argsz: int
flags: int
iova: int
size: int
data: c.Array[ctypes.c_ubyte, Literal[0]]
struct_vfio_iommu_type1_dma_unmap.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('iova', ctypes.c_uint64, 8), ('size', ctypes.c_uint64, 16), ('data', c.Array[ctypes.c_ubyte, Literal[0]], 24)])
@c.record
class struct_vfio_iommu_type1_dirty_bitmap(c.Struct):
SIZE = 8
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
data: Annotated[c.Array[Annotated[int, ctypes.c_ubyte], Literal[0]], 8]
argsz: int
flags: int
data: c.Array[ctypes.c_ubyte, Literal[0]]
struct_vfio_iommu_type1_dirty_bitmap.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('data', c.Array[ctypes.c_ubyte, Literal[0]], 8)])
@c.record
class struct_vfio_iommu_type1_dirty_bitmap_get(c.Struct):
SIZE = 40
iova: Annotated[Annotated[int, ctypes.c_uint64], 0]
size: Annotated[Annotated[int, ctypes.c_uint64], 8]
bitmap: Annotated[struct_vfio_bitmap, 16]
iova: int
size: int
bitmap: struct_vfio_bitmap
struct_vfio_iommu_type1_dirty_bitmap_get.register_fields([('iova', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('bitmap', struct_vfio_bitmap, 16)])
@c.record
class struct_vfio_iommu_spapr_tce_ddw_info(c.Struct):
SIZE = 16
pgsizes: Annotated[Annotated[int, ctypes.c_uint64], 0]
max_dynamic_windows_supported: Annotated[Annotated[int, ctypes.c_uint32], 8]
levels: Annotated[Annotated[int, ctypes.c_uint32], 12]
pgsizes: int
max_dynamic_windows_supported: int
levels: int
struct_vfio_iommu_spapr_tce_ddw_info.register_fields([('pgsizes', ctypes.c_uint64, 0), ('max_dynamic_windows_supported', ctypes.c_uint32, 8), ('levels', ctypes.c_uint32, 12)])
@c.record
class struct_vfio_iommu_spapr_tce_info(c.Struct):
SIZE = 32
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
dma32_window_start: Annotated[Annotated[int, ctypes.c_uint32], 8]
dma32_window_size: Annotated[Annotated[int, ctypes.c_uint32], 12]
ddw: Annotated[struct_vfio_iommu_spapr_tce_ddw_info, 16]
argsz: int
flags: int
dma32_window_start: int
dma32_window_size: int
ddw: struct_vfio_iommu_spapr_tce_ddw_info
struct_vfio_iommu_spapr_tce_info.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('dma32_window_start', ctypes.c_uint32, 8), ('dma32_window_size', ctypes.c_uint32, 12), ('ddw', struct_vfio_iommu_spapr_tce_ddw_info, 16)])
@c.record
class struct_vfio_eeh_pe_err(c.Struct):
SIZE = 24
type: Annotated[Annotated[int, ctypes.c_uint32], 0]
func: Annotated[Annotated[int, ctypes.c_uint32], 4]
addr: Annotated[Annotated[int, ctypes.c_uint64], 8]
mask: Annotated[Annotated[int, ctypes.c_uint64], 16]
type: int
func: int
addr: int
mask: int
struct_vfio_eeh_pe_err.register_fields([('type', ctypes.c_uint32, 0), ('func', ctypes.c_uint32, 4), ('addr', ctypes.c_uint64, 8), ('mask', ctypes.c_uint64, 16)])
@c.record
class struct_vfio_eeh_pe_op(c.Struct):
SIZE = 40
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
op: Annotated[Annotated[int, ctypes.c_uint32], 8]
err: Annotated[struct_vfio_eeh_pe_err, 16]
argsz: int
flags: int
op: int
err: struct_vfio_eeh_pe_err
struct_vfio_eeh_pe_op.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('op', ctypes.c_uint32, 8), ('err', struct_vfio_eeh_pe_err, 16)])
@c.record
class struct_vfio_iommu_spapr_register_memory(c.Struct):
SIZE = 24
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
vaddr: Annotated[Annotated[int, ctypes.c_uint64], 8]
size: Annotated[Annotated[int, ctypes.c_uint64], 16]
argsz: int
flags: int
vaddr: int
size: int
struct_vfio_iommu_spapr_register_memory.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('vaddr', ctypes.c_uint64, 8), ('size', ctypes.c_uint64, 16)])
@c.record
class struct_vfio_iommu_spapr_tce_create(c.Struct):
SIZE = 40
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
page_shift: Annotated[Annotated[int, ctypes.c_uint32], 8]
__resv1: Annotated[Annotated[int, ctypes.c_uint32], 12]
window_size: Annotated[Annotated[int, ctypes.c_uint64], 16]
levels: Annotated[Annotated[int, ctypes.c_uint32], 24]
__resv2: Annotated[Annotated[int, ctypes.c_uint32], 28]
start_addr: Annotated[Annotated[int, ctypes.c_uint64], 32]
argsz: int
flags: int
page_shift: int
__resv1: int
window_size: int
levels: int
__resv2: int
start_addr: int
struct_vfio_iommu_spapr_tce_create.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('page_shift', ctypes.c_uint32, 8), ('__resv1', ctypes.c_uint32, 12), ('window_size', ctypes.c_uint64, 16), ('levels', ctypes.c_uint32, 24), ('__resv2', ctypes.c_uint32, 28), ('start_addr', ctypes.c_uint64, 32)])
@c.record
class struct_vfio_iommu_spapr_tce_remove(c.Struct):
SIZE = 16
argsz: Annotated[Annotated[int, ctypes.c_uint32], 0]
flags: Annotated[Annotated[int, ctypes.c_uint32], 4]
start_addr: Annotated[Annotated[int, ctypes.c_uint64], 8]
c.init_records()
argsz: int
flags: int
start_addr: int
struct_vfio_iommu_spapr_tce_remove.register_fields([('argsz', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('start_addr', ctypes.c_uint64, 8)])
VFIO_API_VERSION = 0 # type: ignore
VFIO_TYPE1_IOMMU = 1 # type: ignore
VFIO_SPAPR_TCE_IOMMU = 2 # type: ignore

File diff suppressed because one or more lines are too long

View file

@ -43,7 +43,7 @@ class CUDAProgram:
status = cuda.cuModuleLoadData(ctypes.byref(self.module), lib)
if status != 0:
del self.module
raise RuntimeError(f"module load failed with status code {status}: {cuda.CUresult.get(status)}")
raise RuntimeError(f"module load failed with status code {status}: {cuda.enum_cudaError_enum.get(status)}")
check(cuda.cuModuleGetFunction(ctypes.byref(prg := cuda.CUfunction()), self.module, name.encode("utf-8")))
self.prg = prg
if self.smem > 0: check(cuda.cuFuncSetAttribute(self.prg, cuda.CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES, self.smem))

View file

@ -1,5 +1,5 @@
import ctypes, time, contextlib, functools
from typing import cast, Literal
from typing import Literal
from tinygrad.helpers import to_mv, data64, lo32, hi32, DEBUG, wait_cond, pad_bytes, getbits
from tinygrad.runtime.autogen.am import am
from tinygrad.runtime.support.amd import import_soc
@ -674,7 +674,7 @@ class AM_PSP(AM_IP):
cmd = am.struct_psp_gfx_cmd_resp(cmd_id=am.GFX_CMD_ID_LOAD_IP_FW)
cmd.cmd.cmd_load_ip_fw.fw_phy_addr_hi, cmd.cmd.cmd_load_ip_fw.fw_phy_addr_lo = data64(self.msg1_addr)
cmd.cmd.cmd_load_ip_fw.fw_size = len(fw_bytes)
cmd.cmd.cmd_load_ip_fw.fw_type = cast(am.enum_psp_gfx_fw_type, fw_type)
cmd.cmd.cmd_load_ip_fw.fw_type = fw_type
self._ring_submit(cmd)
def _tmr_load_cmd(self) -> am.struct_psp_gfx_cmd_resp:

View file

@ -85,24 +85,32 @@ base_rules = [(r'\s*\\\n\s*', ' '), (r'\s*\n\s*', ' '), (r'//.*', ''), (r'/\*.*?
(r'\((unsigned )?(char|uint64_t)\)', ''), (r'^.*\d+:\d+.*$', ''), (r'^.*\w##\w.*$', '')]
uints = (clang.CXType_Char_U, clang.CXType_UChar, clang.CXType_UShort, clang.CXType_UInt, clang.CXType_ULong, clang.CXType_ULongLong)
ints = uints + (clang.CXType_Char_S, clang.CXType_Short, clang.CXType_Int, clang.CXType_ULong, clang.CXType_LongLong)
ints = uints + (clang.CXType_Char_S, clang.CXType_Short, clang.CXType_Int, clang.CXType_Long, clang.CXType_LongLong)
fps, specs = (clang.CXType_FunctionProto, clang.CXType_FunctionNoProto), (clang.CXCursor_ObjCSuperClassRef,) # this could include protocols
tmap = {clang.CXType_Void:"None", clang.CXType_Char_U:"ctypes.c_ubyte", clang.CXType_UChar:"ctypes.c_ubyte", clang.CXType_WChar:"ctypes.c_wchar",
clang.CXType_Char_S:"ctypes.c_char", clang.CXType_SChar:"ctypes.c_byte", clang.CXType_Bool:"ctypes.c_bool",
**{getattr(clang, f'CXType_{k}'):f"ctypes.c_{k.lower()}" for k in ["Float", "Double", "LongDouble"]},
**{getattr(clang, f'CXType_{k}'):f"ctypes.c_{'u' if 'U' in k else ''}int{sz}" for sz,k in
[(16, "UShort"), (16, "Short"), (32, "UInt"), (32, "Int"), (64, "ULong"), (64, "Long"), (64, "ULongLong"), (64, "LongLong")]}}
# https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-method-families
arc_families = ['alloc', 'copy', 'mutableCopy', 'new']
def normalize(a): return ("_" + n if keyword.iskeyword(n:=nm(a)) else n)
def an(py, dt): return f"Annotated[{py}, ctypes.c_{dt}]"
def gen(name, dll, files, args=[], prolog=[], rules=[], epilog=[], recsym=False, errno=False, anon_names={}, types={}, parse_macros=True, paths=[]):
macros, lines, anoncnt, types, objc, fns = [], [], itertools.count().__next__, {k:(v,True) for k,v in types.items()}, False, set()
# ctypes automatically "unboxes" simple types
def typehint(ty) -> str:
if (v:={**{i:"int" for i in ints}, **{getattr(clang, f"CXType_{f}"):"float" for f in ['Float', 'Double', 'LongDouble']}, clang.CXType_Enum:"int",
clang.CXType_WChar:"str", clang.CXType_SChar:"int", clang.CXType_Char_S:"bytes", clang.CXType_Bool:"bool",}.get(ty.kind, None)): return v
return tname(ty)
def tname(t, suggested_name=None, typedef=None) -> str:
suggested_name = anon_names.get(f"{loc_file(loc(decl:=clang.clang_getTypeDeclaration(t)))}:{loc_line(loc(decl))}", suggested_name)
nonlocal lines, types, anoncnt, objc
tmap = {clang.CXType_Void:"None",clang.CXType_Char_U:an("int","ubyte"),clang.CXType_UChar:an("int","ubyte"),clang.CXType_WChar:an("str","wchar"),
clang.CXType_Char_S:an("bytes","char"),clang.CXType_SChar:an("int","byte"),clang.CXType_Bool:an("bool","bool"),
**{getattr(clang, f'CXType_{k}'):an("float", k.lower()) for k in ["Float", "Double", "LongDouble"]},
**{getattr(clang, f'CXType_{k}'):an("int", f"{'u' if 'U' in k else ''}int{sz}") for sz,k in
[(16, "UShort"), (16, "Short"), (32, "UInt"), (32, "Int"), (64, "ULong"), (64, "Long"), (64, "ULongLong"), (64, "LongLong")]}}
if t.kind in tmap: return tmap[t.kind]
if nm(t) in types and types[nm(t)][1]: return types[nm(t)][0]
@ -124,34 +132,35 @@ def gen(name, dll, files, args=[], prolog=[], rules=[], epilog=[], recsym=False,
# TODO: packed unions
# libclang does not use CXType_Elaborated for function parameters with type qualifiers (eg. void (*)(const struct foo))
if (_nm:=re.sub(r"^const ", "", nm(t))) in types and types[_nm][1]: return types[_nm][0]
# check for forward declaration
if _nm in types: types[_nm] = (tnm:=types[_nm][0]), len(fields(t)) != 0, (ln:=types[_nm][2])
# check if previously declared
if _nm in types: types[_nm] = (tnm:=types[_nm][0]), types[_nm][1] or len(fields(t)) != 0, (ln:=types[_nm][2])
else:
real_nm = ((suggested_name or (f"_anon{'struct' if decl.kind==clang.CXCursor_StructDecl else 'union'}{anoncnt()}"))
if clang.clang_Cursor_isAnonymous(decl) else _nm)
types[_nm] = (tnm:=real_nm.replace(' ', '_').replace('::', '_')), len(fields(t)) != 0, (ln:=len(lines))
lines.append(f"class {tnm}(c.Struct): SIZE = 0")
lines.append(f"class {tnm}(c.Struct): pass")
if typedef:
lines.append(f"{typedef.replace('::', '_')}: TypeAlias = {tnm}")
types[typedef] = typedef.replace('::', '_'), True
ff=[(f, tname(clang.clang_getCursorType(f), f"{tnm}_{nm(f)}"), offset) +
((clang.clang_getFieldDeclBitWidth(f), clang.clang_Cursor_getOffsetOfField(f) % 8) *clang.clang_Cursor_isBitField(f))
for f,offset in all_fields(t)]
if ff: lines[ln] = '\n'.join(["@c.record", f"class {tnm}(c.Struct):", f" SIZE = {clang.clang_Type_getSizeOf(t)}",
*[f" {normalize(f)}: Annotated[{', '.join(str(a) for a in args)}]" for f,*args in ff]])
ff = [(normalize(f), clang.clang_getCanonicalType(ty:=clang.clang_getCursorType(f)), tname(ty, f"{tnm}_{nm(f)}"), offset) +
((clang.clang_getFieldDeclBitWidth(f), clang.clang_Cursor_getOffsetOfField(f) % 8) * clang.clang_Cursor_isBitField(f))
for f,offset in all_fields(t)]
if ff:
lines[ln] = "\n".join(["@c.record", f"class {tnm}(c.Struct):", f" SIZE = {clang.clang_Type_getSizeOf(t)}"] +
[f" {f}: {typehint(ty)}" for f,ty,*args in ff])
lines.append(f"{tnm}.register_fields([" + ", ".join([f"('{f}', {', '.join(str(a) for a in args)})" for f,ty,*args in ff]) + "])")
return tnm
case clang.CXType_Enum:
# TODO: C++ and GNU C have forward declared enums
if clang.clang_Cursor_isAnonymous(decl): types[nm(t)] = suggested_name or f"_anonenum{anoncnt()}", True
else: types[nm(t)] = nm(t).replace(' ', '_').replace('::', '_'), True
ety = clang.clang_getEnumDeclIntegerType(decl)
types[nm(t)] = tname(ety:=clang.clang_getEnumDeclIntegerType(decl)), True
enm = suggested_name or f"_anonenum{anoncnt()}" if clang.clang_Cursor_isAnonymous(decl) else nm(t).replace(' ', '_').replace('::', '_')
def value(e): return (clang.clang_getEnumConstantDeclUnsignedValue if ety.kind in uints else clang.clang_getEnumConstantDeclValue)(e)
lines.append(f"class {types[nm(t)][0]}({tname(ety)}, c.Enum): pass\n" +
"\n".join(f"{nm(e)} = {types[nm(t)][0]}.define('{nm(e)}', {value(e)})" for e in children(decl)
if e.kind == clang.CXCursor_EnumConstantDecl) + "\n")
lines.append(f"{enm}: dict[int, str] = {{" + ", ".join(f"({nm(e)}:={value(e)}): '{nm(e)}'" for e in children(decl)
if e.kind == clang.CXCursor_EnumConstantDecl) + "}")
return types[nm(t)][0]
case clang.CXType_ConstantArray: return ("c.Array[" + tname(clang.clang_getArrayElementType(t), suggested_name and suggested_name.rstrip('s'))
+ f", Literal[{clang.clang_getArraySize(t)}]]")
case clang.CXType_ConstantArray: return (f"c.Array[{tname(clang.clang_getArrayElementType(t), suggested_name and suggested_name.rstrip('s'))}, "
f"Literal[{clang.clang_getArraySize(t)}]]")
case clang.CXType_IncompleteArray:
return f"c.Array[{tname(clang.clang_getArrayElementType(t), suggested_name and suggested_name.rstrip('s'))}, Literal[0]]"
case clang.CXType_ObjCInterface:
@ -224,8 +233,10 @@ def gen(name, dll, files, args=[], prolog=[], rules=[], epilog=[], recsym=False,
case clang.CXCursor_FunctionDecl if clang.clang_getCursorLinkage(c) == clang.CXLinkage_External and dll and nm(c) not in fns:
# TODO: we could support name-mangling
fns.add(nm(c))
argus = [f"{normalize(arg) or '_' + str(i)}:{tname(clang.clang_getCursorType(arg))}" for i, arg in enumerate(arguments(c))]
lines.extend(["@dll.bind", f"def {nm(c)}({', '.join(argus)}) -> {tname(clang.clang_getCursorResultType(c))}: ..."])
rt, ats = clang.clang_getCursorResultType(c), [clang.clang_getCursorType(arg) for arg in arguments(c)]
anms = [normalize(arg) or '_' + str(i) for i, arg in enumerate(arguments(c))]
lines.extend([f"@dll.bind({', '.join([tname(at) for at in [rt] + ats])})",
f"def {nm(c)}({', '.join([f'{anm}:{typehint(at)}' for anm, at in zip(anms, ats)])}) -> {typehint(rt)}: ..."])
if clang.CXCursor_NSReturnsRetained in attrs(c): lines.append(f"{nm(c)} = objc.returns_retained({nm(c)})")
case (clang.CXCursor_StructDecl | clang.CXCursor_UnionDecl | clang.CXCursor_TypedefDecl | clang.CXCursor_EnumDecl
| clang.CXCursor_ObjCInterfaceDecl): tname(clang.clang_getCursorType(c))
@ -256,10 +267,9 @@ def gen(name, dll, files, args=[], prolog=[], rules=[], epilog=[], recsym=False,
clang.clang_disposeTranslationUnit(tu)
clang.clang_disposeIndex(idx)
main = '\n'.join(['# mypy: disable-error-code="empty-body"', "from __future__ import annotations", "import ctypes",
"from typing import Annotated, Literal, TypeAlias", "from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR",
"from typing import Literal, TypeAlias", "from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR",
"from tinygrad.runtime.support import c", *prolog, *(["from tinygrad.runtime.support import objc"]*objc),
*([f"dll = c.DLL('{name}', {dll}{f', {paths}'*bool(paths)}{', use_errno=True'*errno})"] if dll else []), *lines,
"c.init_records()"]) + '\n'
*([f"dll = c.DLL('{name}', {dll}{f', {paths}'*bool(paths)}{', use_errno=True'*errno})"] if dll else []), *lines]) + '\n'
macros = [f"{r} # type: ignore" for m in macros if (r:=functools.reduce(lambda s,r:re.sub(r[0], r[1], s), rules + base_rules, m))]
while True:
try:

View file

@ -1,7 +1,7 @@
from __future__ import annotations
import ctypes, functools, os, pathlib, re, sys, sysconfig
from tinygrad.helpers import ceildiv, getenv, unwrap, DEBUG, OSX, WIN
from typing import TYPE_CHECKING, get_type_hints, get_args, get_origin, overload, Annotated, Any, Generic, Iterable, ParamSpec, TypeVar
from tinygrad.helpers import ceildiv, getenv, DEBUG, OSX, WIN
from typing import TYPE_CHECKING, get_args, Generic, ParamSpec, TypeVar
def _do_ioctl(__idir, __base, __nr, __struct, __fd, *args, __payload=None, **kwargs):
assert not WIN, "ioctl not supported"
@ -13,93 +13,55 @@ def _do_ioctl(__idir, __base, __nr, __struct, __fd, *args, __payload=None, **kwa
return out
def _IO(base, nr): return functools.partial(_do_ioctl, 0, ord(base) if isinstance(base, str) else base, nr, None)
def _IOW(base, nr, typ): return functools.partial(_do_ioctl, 1, ord(base) if isinstance(base, str) else base, nr, del_an(typ))
def _IOR(base, nr, typ): return functools.partial(_do_ioctl, 2, ord(base) if isinstance(base, str) else base, nr, del_an(typ))
def _IOWR(base, nr, typ): return functools.partial(_do_ioctl, 3, ord(base) if isinstance(base, str) else base, nr, del_an(typ))
def del_an(ty):
if isinstance(ty, type) and issubclass(ty, Enum): return del_an(ty.__orig_bases__[0]) # type: ignore
return ty.__metadata__[0] if get_origin(ty) is Annotated else (None if ty is type(None) else ty)
_pending_records = []
def _IOW(base, nr, typ): return functools.partial(_do_ioctl, 1, ord(base) if isinstance(base, str) else base, nr, typ)
def _IOR(base, nr, typ): return functools.partial(_do_ioctl, 2, ord(base) if isinstance(base, str) else base, nr, typ)
def _IOWR(base, nr, typ): return functools.partial(_do_ioctl, 3, ord(base) if isinstance(base, str) else base, nr, typ)
T = TypeVar("T")
U = TypeVar("U")
V = TypeVar("V")
P = ParamSpec("P")
if TYPE_CHECKING:
from ctypes import _CFunctionType
from _ctypes import _CData
class Array(Generic[T, U], _CData):
@overload
def __getitem__(self: Array[ctypes._SimpleCData[V], Any], key: int) -> V: ...
@overload
def __getitem__(self: Array[T, Any], key: slice) -> list[T]: ...
@overload
def __getitem__(self: Array[T, Any], key: int) -> T: ...
def __getitem__(self, key) -> Any: ...
@overload
def __setitem__(self: Array[ctypes._SimpleCData[V], Any], key: int, val: V): ...
@overload
def __setitem__(self: Array[T, Any], key: int, val: T): ...
@overload
def __setitem__(self: Array[T, Any], key: slice, val: Iterable[T]): ...
def __setitem__(self, key, val): ...
class POINTER(Generic[T], ctypes._Pointer): ...
class CFUNCTYPE(Generic[T, P], _CFunctionType): ...
class Enum(ctypes._SimpleCData):
@classmethod
def get(cls, val:int, default="unknown") -> str: ...
@classmethod
def items(cls) -> Iterable[tuple[int,str]]: ...
@classmethod
def define(cls, name:str, val:int) -> int: ...
CT = TypeVar("CT", bound=_CData)
def pointer(obj: CT) -> POINTER[CT]: ...
else:
class _Array:
def __getitem__(self, key): return del_an(key[0]) * get_args(key[1])[0]
def __call__(self, ty, l): return del_an(ty) * l
Array = _Array()
class POINTER:
def __class_getitem__(cls, key): return ctypes.POINTER(del_an(key))
class CFUNCTYPE:
def __class_getitem__(cls, key): return ctypes.CFUNCTYPE(del_an(key[0]), *(del_an(a) for a in key[1]))
class Enum:
def __init_subclass__(cls): cls._val_to_name_ = {}
# mypy can't understand eg. ctypes.POINTER(ctypes.c_int), and python < 3.14 cannot understand ctypes.POINTER[ctypes.c_int]
class POINTER(Generic[T], ctypes._Pointer):
def __class_getitem__(cls, key): return ctypes.POINTER(key)
def pointer(x: T) -> POINTER[T]: return ctypes.pointer(x) # type: ignore
@classmethod
def get(cls, val, default="unknown"): return cls._val_to_name_.get(val, default)
@classmethod
def items(cls): return cls._val_to_name_.items()
@classmethod
def define(cls, name:str, val:int) -> int:
cls._val_to_name_[val] = name
return val
def pointer(obj): return ctypes.pointer(obj)
if TYPE_CHECKING: _CFuncPtr = ctypes._CFunctionType
else: _CFuncPtr = ctypes._CFuncPtr
class CFUNCTYPE(Generic[T, P], _CFuncPtr):
_flags_ = 0
def __class_getitem__(cls, key): return ctypes.CFUNCTYPE(key[0], *key[1])
class Array(Generic[T, U], ctypes.Array):
_type_, _length_ = ctypes.c_byte, 0
def __class_getitem__(cls, key): return key[0] * get_args(key[1])[0]
def __new__(cls, ty, l): return ty * l
class Struct(ctypes.Structure):
SIZE = 0
def __init__(self, *args, **kwargs):
ctypes.Structure.__init__(self)
for f,v in [*zip((rf[0] for rf in self._real_fields_), args), *kwargs.items()]: setattr(self, f, v)
def record(cls) -> type[Struct]:
struct = type(cls.__name__, (Struct,), {'_fields_': [('_mem_', ctypes.c_byte * cls.SIZE)]})
_pending_records.append((cls, struct, unwrap(sys._getframe().f_back).f_globals))
return struct
@classmethod
def register_fields(cls, fields):
setattr(cls, "_real_fields_", fields)
for i, (name, *args) in enumerate(fields): setattr(cls, name, Field(*args, name=name, idx=i))
def init_records() -> None:
for cls, struct, ns in _pending_records:
setattr(struct, '_real_fields_', [])
for i, (nm, t) in enumerate(get_type_hints(cls, globalns=ns, include_extras=True).items()):
struct._real_fields_.append((nm, *(f:=(del_an(t.__origin__), *t.__metadata__) if isinstance(t.__metadata__[0], int) else t.__metadata__))) # type: ignore
setattr(struct, nm, Field(nm, i, *f))
_pending_records.clear()
def record(cls) -> type[Struct]:
setattr(cls, "_fields_", [('_mem_', ctypes.c_byte * cls.SIZE)])
return cls
class Field:
def __init__(self, nm, idx, typ, off, bit_width=None, bit_off=0):
self.nm, self.idx, self.typ, self.off, self.bit_width, self.bit_off = nm, idx, typ, off, bit_width, bit_off
def __init__(self, typ, off, bit_width=None, bit_off=0, *, name=None, idx=0):
self.typ, self.off, self.bit_width, self.bit_off, self.name, self.idx = typ, off, bit_width, bit_off, name, idx
def __set_name__(self, owner, name):
entry = (name, self.typ, self.off) + ((self.bit_width, self.bit_off) if self.bit_width else ())
if hasattr(owner, "_real_fields_"): owner._real_fields_.append(entry)
else: setattr(owner, "_real_fields_", [entry])
self.name, self.idx = name, len(owner._real_fields_) - 1
# lazily resolve field descriptors
def _resolve(self, cls):
@ -110,9 +72,9 @@ class Field:
# FIXME: signedness
cf = property(lambda obj: b2i(obj) >> self.bit_off & mask, bset)
# pull the CField descriptor from a dummy class, zero length arrays are so ctypes manages references to child objects for us
else: cf = type(self.nm, (ctypes.Structure,), {"_layout_": "ms", "_pack_": 1, "_fields_": [(str(i), ctypes.c_byte * 0) for i in range(self.idx)] +
[("_", ctypes.c_byte * self.off), ("v", self.typ)]}).v # type: ignore
setattr(cls, self.nm, cf)
else: cf = type(self.name, (ctypes.Structure,), {"_layout_": "ms", "_pack_": 1, "_fields_": [(str(i), ctypes.c_byte*0) for i in range(self.idx)] +
[("_", ctypes.c_byte * self.off), ("v", self.typ)]}).v # type: ignore
setattr(cls, self.name, cf)
return cf
def __get__(self, obj, objtype=None): return self._resolve(objtype).__get__(obj, objtype) if objtype else self
@ -120,12 +82,9 @@ class Field:
@functools.cache
def init_c_struct_t(sz:int, fields: tuple[tuple, ...]):
CStruct = type("CStruct", (Struct,), {'_fields_': [('_mem_', ctypes.c_byte * sz)], '_real_fields_': []})
for i,(nm,ty,*args) in enumerate(fields):
CStruct._real_fields_.append((nm, *(f:=(del_an(ty), *args)))) # type: ignore
setattr(CStruct, nm, Field(nm, i, *f))
(CStruct:=type("CStruct", (Struct,), {'_fields_': [('_mem_', ctypes.c_byte * sz)]})).register_fields(fields) # type: ignore
return CStruct
def init_c_var(ty, creat_cb): return (creat_cb(v:=del_an(ty)()), v)[1]
def init_c_var(ty, creat_cb): return (creat_cb(v:=ty()), v)[1]
class DLL(ctypes.CDLL):
_loaded_: set[str] = set()
@ -164,14 +123,15 @@ class DLL(ctypes.CDLL):
if DEBUG >= 3: print(f"loading {nm} failed: {e}")
elif DEBUG >= 3: print(f"loading {nm} failed: not found on system")
def bind(self, fn):
restype, argtypes = del_an((hints:=get_type_hints(fn, include_extras=True)).pop('return', None)), tuple(del_an(h) for h in hints.values())
cfunc = None
def wrapper(*args):
nonlocal cfunc
if cfunc is None: (cfunc:=getattr(self, fn.__name__)).argtypes, cfunc.restype = argtypes, restype
return cfunc(*args)
return wrapper
def bind(self, restype, *argtypes):
def wrap(fn):
cfunc = None
def wrapper(*args):
nonlocal cfunc
if cfunc is None: (cfunc:=getattr(self, fn.__name__)).argtypes, cfunc.restype = argtypes, restype
return cfunc(*args)
return wrapper
return wrap
def __getattr__(self, nm):
if self.nm not in self._loaded_:

View file

@ -40,9 +40,8 @@ def _get_comgr_data(data_set, data_type):
# amd_comgr_action_info_set_options was deprecated
def set_options(action_info, options:bytes):
# TODO: this type should be correct in the autogen stub
@comgr.dll.bind
def amd_comgr_action_info_set_option_list(ai:comgr.amd_comgr_action_info_t, o:c.POINTER[c.POINTER[ctypes.c_char]], # type: ignore
c:comgr.size_t) -> comgr.amd_comgr_status_t: pass
@comgr.dll.bind(comgr.amd_comgr_status_t, comgr.amd_comgr_action_info_t, c.POINTER[c.POINTER[ctypes.c_char]], comgr.size_t)
def amd_comgr_action_info_set_option_list(ai, o, c) -> comgr.amd_comgr_status_t: pass # type: ignore[empty-body]
return amd_comgr_action_info_set_option_list(action_info, to_char_p_p(options_list:=options.split(b' ')), len(options_list))
# AMD_COMGR_SAVE_TEMPS=1 AMD_COMGR_REDIRECT_LOGS=stdout AMD_COMGR_EMIT_VERBOSE_LOGS=1

View file

@ -1,5 +1,4 @@
import ctypes, ctypes.util, functools, sys
from tinygrad.runtime.support.c import del_an
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING: id_ = ctypes.c_void_p
@ -30,7 +29,7 @@ dispatch_data_create = returns_retained(dispatch_data_create)
def msg(sel:str, restype=id_, argtypes=[], retain=False, clsmeth=False):
# Using attribute access returns a new reference so setting restype is safe
(sender:=lib["objc_msgSend"]).restype, sender.argtypes = del_an(restype), [id_, id_]+[del_an(a) for a in argtypes] if argtypes else []
(sender:=lib["objc_msgSend"]).restype, sender.argtypes = restype, [id_, id_]+list(argtypes) if argtypes else []
def f(ptr, *args): return sender(ptr._objc_class_ if clsmeth else ptr, getsel(sel.encode()), *args)
return returns_retained(f) if retain else f