mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-21 22:12:05 +08:00
6adb63b915
date: 2026-06-04T09:49:56 master commit: c0ab3550eca2e9daf197c46b7e4b24aa9637cf2e
1660 lines
71 KiB
Python
1660 lines
71 KiB
Python
# mypy: disable-error-code="empty-body"
|
|
from __future__ import annotations
|
|
import ctypes
|
|
from typing import Literal, TypeAlias
|
|
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
|
|
from tinygrad.runtime.support import c
|
|
drm_handle_t: TypeAlias = ctypes.c_uint32
|
|
drm_context_t: TypeAlias = ctypes.c_uint32
|
|
drm_drawable_t: TypeAlias = ctypes.c_uint32
|
|
drm_magic_t: TypeAlias = ctypes.c_uint32
|
|
@c.record
|
|
class struct_drm_clip_rect(c.Struct):
|
|
SIZE = 8
|
|
x1: int
|
|
y1: int
|
|
x2: int
|
|
y2: int
|
|
struct_drm_clip_rect.register_fields([('x1', ctypes.c_uint16, 0), ('y1', ctypes.c_uint16, 2), ('x2', ctypes.c_uint16, 4), ('y2', ctypes.c_uint16, 6)])
|
|
@c.record
|
|
class struct_drm_drawable_info(c.Struct):
|
|
SIZE = 16
|
|
num_rects: int
|
|
rects: c.POINTER[struct_drm_clip_rect]
|
|
struct_drm_drawable_info.register_fields([('num_rects', ctypes.c_uint32, 0), ('rects', c.POINTER[struct_drm_clip_rect], 8)])
|
|
@c.record
|
|
class struct_drm_tex_region(c.Struct):
|
|
SIZE = 8
|
|
next: int
|
|
prev: int
|
|
in_use: int
|
|
padding: int
|
|
age: int
|
|
struct_drm_tex_region.register_fields([('next', ctypes.c_ubyte, 0), ('prev', ctypes.c_ubyte, 1), ('in_use', ctypes.c_ubyte, 2), ('padding', ctypes.c_ubyte, 3), ('age', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_hw_lock(c.Struct):
|
|
SIZE = 64
|
|
lock: int
|
|
padding: c.Array[ctypes.c_char, Literal[60]]
|
|
struct_drm_hw_lock.register_fields([('lock', ctypes.c_uint32, 0), ('padding', c.Array[ctypes.c_char, Literal[60]], 4)])
|
|
@c.record
|
|
class struct_drm_version(c.Struct):
|
|
SIZE = 64
|
|
version_major: int
|
|
version_minor: int
|
|
version_patchlevel: int
|
|
name_len: int
|
|
name: c.POINTER[ctypes.c_char]
|
|
date_len: int
|
|
date: c.POINTER[ctypes.c_char]
|
|
desc_len: int
|
|
desc: c.POINTER[ctypes.c_char]
|
|
__kernel_size_t: TypeAlias = ctypes.c_uint64
|
|
struct_drm_version.register_fields([('version_major', ctypes.c_int32, 0), ('version_minor', ctypes.c_int32, 4), ('version_patchlevel', ctypes.c_int32, 8), ('name_len', ctypes.c_uint64, 16), ('name', c.POINTER[ctypes.c_char], 24), ('date_len', ctypes.c_uint64, 32), ('date', c.POINTER[ctypes.c_char], 40), ('desc_len', ctypes.c_uint64, 48), ('desc', c.POINTER[ctypes.c_char], 56)])
|
|
@c.record
|
|
class struct_drm_unique(c.Struct):
|
|
SIZE = 16
|
|
unique_len: int
|
|
unique: c.POINTER[ctypes.c_char]
|
|
struct_drm_unique.register_fields([('unique_len', ctypes.c_uint64, 0), ('unique', c.POINTER[ctypes.c_char], 8)])
|
|
@c.record
|
|
class struct_drm_list(c.Struct):
|
|
SIZE = 16
|
|
count: int
|
|
version: c.POINTER[struct_drm_version]
|
|
struct_drm_list.register_fields([('count', ctypes.c_int32, 0), ('version', c.POINTER[struct_drm_version], 8)])
|
|
@c.record
|
|
class struct_drm_block(c.Struct):
|
|
SIZE = 4
|
|
unused: int
|
|
struct_drm_block.register_fields([('unused', ctypes.c_int32, 0)])
|
|
@c.record
|
|
class struct_drm_control(c.Struct):
|
|
SIZE = 8
|
|
func: int
|
|
irq: int
|
|
struct_drm_control_func: dict[int, str] = {(DRM_ADD_COMMAND:=0): 'DRM_ADD_COMMAND', (DRM_RM_COMMAND:=1): 'DRM_RM_COMMAND', (DRM_INST_HANDLER:=2): 'DRM_INST_HANDLER', (DRM_UNINST_HANDLER:=3): 'DRM_UNINST_HANDLER'}
|
|
struct_drm_control.register_fields([('func', ctypes.c_uint32, 0), ('irq', ctypes.c_int32, 4)])
|
|
enum_drm_map_type: dict[int, str] = {(_DRM_FRAME_BUFFER:=0): '_DRM_FRAME_BUFFER', (_DRM_REGISTERS:=1): '_DRM_REGISTERS', (_DRM_SHM:=2): '_DRM_SHM', (_DRM_AGP:=3): '_DRM_AGP', (_DRM_SCATTER_GATHER:=4): '_DRM_SCATTER_GATHER', (_DRM_CONSISTENT:=5): '_DRM_CONSISTENT'}
|
|
enum_drm_map_flags: dict[int, str] = {(_DRM_RESTRICTED:=1): '_DRM_RESTRICTED', (_DRM_READ_ONLY:=2): '_DRM_READ_ONLY', (_DRM_LOCKED:=4): '_DRM_LOCKED', (_DRM_KERNEL:=8): '_DRM_KERNEL', (_DRM_WRITE_COMBINING:=16): '_DRM_WRITE_COMBINING', (_DRM_CONTAINS_LOCK:=32): '_DRM_CONTAINS_LOCK', (_DRM_REMOVABLE:=64): '_DRM_REMOVABLE', (_DRM_DRIVER:=128): '_DRM_DRIVER'}
|
|
@c.record
|
|
class struct_drm_ctx_priv_map(c.Struct):
|
|
SIZE = 16
|
|
ctx_id: int
|
|
handle: ctypes.c_void_p
|
|
struct_drm_ctx_priv_map.register_fields([('ctx_id', ctypes.c_uint32, 0), ('handle', ctypes.c_void_p, 8)])
|
|
@c.record
|
|
class struct_drm_map(c.Struct):
|
|
SIZE = 40
|
|
offset: int
|
|
size: int
|
|
type: int
|
|
flags: int
|
|
handle: ctypes.c_void_p
|
|
mtrr: int
|
|
struct_drm_map.register_fields([('offset', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('type', ctypes.c_uint32, 16), ('flags', ctypes.c_uint32, 20), ('handle', ctypes.c_void_p, 24), ('mtrr', ctypes.c_int32, 32)])
|
|
@c.record
|
|
class struct_drm_client(c.Struct):
|
|
SIZE = 40
|
|
idx: int
|
|
auth: int
|
|
pid: int
|
|
uid: int
|
|
magic: int
|
|
iocs: int
|
|
struct_drm_client.register_fields([('idx', ctypes.c_int32, 0), ('auth', ctypes.c_int32, 4), ('pid', ctypes.c_uint64, 8), ('uid', ctypes.c_uint64, 16), ('magic', ctypes.c_uint64, 24), ('iocs', ctypes.c_uint64, 32)])
|
|
enum_drm_stat_type: dict[int, str] = {(_DRM_STAT_LOCK:=0): '_DRM_STAT_LOCK', (_DRM_STAT_OPENS:=1): '_DRM_STAT_OPENS', (_DRM_STAT_CLOSES:=2): '_DRM_STAT_CLOSES', (_DRM_STAT_IOCTLS:=3): '_DRM_STAT_IOCTLS', (_DRM_STAT_LOCKS:=4): '_DRM_STAT_LOCKS', (_DRM_STAT_UNLOCKS:=5): '_DRM_STAT_UNLOCKS', (_DRM_STAT_VALUE:=6): '_DRM_STAT_VALUE', (_DRM_STAT_BYTE:=7): '_DRM_STAT_BYTE', (_DRM_STAT_COUNT:=8): '_DRM_STAT_COUNT', (_DRM_STAT_IRQ:=9): '_DRM_STAT_IRQ', (_DRM_STAT_PRIMARY:=10): '_DRM_STAT_PRIMARY', (_DRM_STAT_SECONDARY:=11): '_DRM_STAT_SECONDARY', (_DRM_STAT_DMA:=12): '_DRM_STAT_DMA', (_DRM_STAT_SPECIAL:=13): '_DRM_STAT_SPECIAL', (_DRM_STAT_MISSED:=14): '_DRM_STAT_MISSED'}
|
|
@c.record
|
|
class struct_drm_stats(c.Struct):
|
|
SIZE = 248
|
|
count: int
|
|
data: c.Array[struct_drm_stats_data, Literal[15]]
|
|
@c.record
|
|
class struct_drm_stats_data(c.Struct):
|
|
SIZE = 16
|
|
value: int
|
|
type: int
|
|
struct_drm_stats_data.register_fields([('value', ctypes.c_uint64, 0), ('type', ctypes.c_uint32, 8)])
|
|
struct_drm_stats.register_fields([('count', ctypes.c_uint64, 0), ('data', c.Array[struct_drm_stats_data, Literal[15]], 8)])
|
|
enum_drm_lock_flags: dict[int, str] = {(_DRM_LOCK_READY:=1): '_DRM_LOCK_READY', (_DRM_LOCK_QUIESCENT:=2): '_DRM_LOCK_QUIESCENT', (_DRM_LOCK_FLUSH:=4): '_DRM_LOCK_FLUSH', (_DRM_LOCK_FLUSH_ALL:=8): '_DRM_LOCK_FLUSH_ALL', (_DRM_HALT_ALL_QUEUES:=16): '_DRM_HALT_ALL_QUEUES', (_DRM_HALT_CUR_QUEUES:=32): '_DRM_HALT_CUR_QUEUES'}
|
|
@c.record
|
|
class struct_drm_lock(c.Struct):
|
|
SIZE = 8
|
|
context: int
|
|
flags: int
|
|
struct_drm_lock.register_fields([('context', ctypes.c_int32, 0), ('flags', ctypes.c_uint32, 4)])
|
|
enum_drm_dma_flags: dict[int, str] = {(_DRM_DMA_BLOCK:=1): '_DRM_DMA_BLOCK', (_DRM_DMA_WHILE_LOCKED:=2): '_DRM_DMA_WHILE_LOCKED', (_DRM_DMA_PRIORITY:=4): '_DRM_DMA_PRIORITY', (_DRM_DMA_WAIT:=16): '_DRM_DMA_WAIT', (_DRM_DMA_SMALLER_OK:=32): '_DRM_DMA_SMALLER_OK', (_DRM_DMA_LARGER_OK:=64): '_DRM_DMA_LARGER_OK'}
|
|
@c.record
|
|
class struct_drm_buf_desc(c.Struct):
|
|
SIZE = 32
|
|
count: int
|
|
size: int
|
|
low_mark: int
|
|
high_mark: int
|
|
flags: int
|
|
agp_start: int
|
|
struct_drm_buf_desc_flags: dict[int, str] = {(_DRM_PAGE_ALIGN:=1): '_DRM_PAGE_ALIGN', (_DRM_AGP_BUFFER:=2): '_DRM_AGP_BUFFER', (_DRM_SG_BUFFER:=4): '_DRM_SG_BUFFER', (_DRM_FB_BUFFER:=8): '_DRM_FB_BUFFER', (_DRM_PCI_BUFFER_RO:=16): '_DRM_PCI_BUFFER_RO'}
|
|
struct_drm_buf_desc.register_fields([('count', ctypes.c_int32, 0), ('size', ctypes.c_int32, 4), ('low_mark', ctypes.c_int32, 8), ('high_mark', ctypes.c_int32, 12), ('flags', ctypes.c_uint32, 16), ('agp_start', ctypes.c_uint64, 24)])
|
|
@c.record
|
|
class struct_drm_buf_info(c.Struct):
|
|
SIZE = 16
|
|
count: int
|
|
list: c.POINTER[struct_drm_buf_desc]
|
|
struct_drm_buf_info.register_fields([('count', ctypes.c_int32, 0), ('list', c.POINTER[struct_drm_buf_desc], 8)])
|
|
@c.record
|
|
class struct_drm_buf_free(c.Struct):
|
|
SIZE = 16
|
|
count: int
|
|
list: c.POINTER[ctypes.c_int32]
|
|
struct_drm_buf_free.register_fields([('count', ctypes.c_int32, 0), ('list', c.POINTER[ctypes.c_int32], 8)])
|
|
@c.record
|
|
class struct_drm_buf_pub(c.Struct):
|
|
SIZE = 24
|
|
idx: int
|
|
total: int
|
|
used: int
|
|
address: ctypes.c_void_p
|
|
struct_drm_buf_pub.register_fields([('idx', ctypes.c_int32, 0), ('total', ctypes.c_int32, 4), ('used', ctypes.c_int32, 8), ('address', ctypes.c_void_p, 16)])
|
|
@c.record
|
|
class struct_drm_buf_map(c.Struct):
|
|
SIZE = 24
|
|
count: int
|
|
virtual: ctypes.c_void_p
|
|
list: c.POINTER[struct_drm_buf_pub]
|
|
struct_drm_buf_map.register_fields([('count', ctypes.c_int32, 0), ('virtual', ctypes.c_void_p, 8), ('list', c.POINTER[struct_drm_buf_pub], 16)])
|
|
@c.record
|
|
class struct_drm_dma(c.Struct):
|
|
SIZE = 64
|
|
context: int
|
|
send_count: int
|
|
send_indices: c.POINTER[ctypes.c_int32]
|
|
send_sizes: c.POINTER[ctypes.c_int32]
|
|
flags: int
|
|
request_count: int
|
|
request_size: int
|
|
request_indices: c.POINTER[ctypes.c_int32]
|
|
request_sizes: c.POINTER[ctypes.c_int32]
|
|
granted_count: int
|
|
struct_drm_dma.register_fields([('context', ctypes.c_int32, 0), ('send_count', ctypes.c_int32, 4), ('send_indices', c.POINTER[ctypes.c_int32], 8), ('send_sizes', c.POINTER[ctypes.c_int32], 16), ('flags', ctypes.c_uint32, 24), ('request_count', ctypes.c_int32, 28), ('request_size', ctypes.c_int32, 32), ('request_indices', c.POINTER[ctypes.c_int32], 40), ('request_sizes', c.POINTER[ctypes.c_int32], 48), ('granted_count', ctypes.c_int32, 56)])
|
|
enum_drm_ctx_flags: dict[int, str] = {(_DRM_CONTEXT_PRESERVED:=1): '_DRM_CONTEXT_PRESERVED', (_DRM_CONTEXT_2DONLY:=2): '_DRM_CONTEXT_2DONLY'}
|
|
@c.record
|
|
class struct_drm_ctx(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
flags: int
|
|
struct_drm_ctx.register_fields([('handle', drm_context_t, 0), ('flags', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_ctx_res(c.Struct):
|
|
SIZE = 16
|
|
count: int
|
|
contexts: c.POINTER[struct_drm_ctx]
|
|
struct_drm_ctx_res.register_fields([('count', ctypes.c_int32, 0), ('contexts', c.POINTER[struct_drm_ctx], 8)])
|
|
@c.record
|
|
class struct_drm_draw(c.Struct):
|
|
SIZE = 4
|
|
handle: int
|
|
struct_drm_draw.register_fields([('handle', drm_drawable_t, 0)])
|
|
drm_drawable_info_type_t: dict[int, str] = {(DRM_DRAWABLE_CLIPRECTS:=0): 'DRM_DRAWABLE_CLIPRECTS'}
|
|
@c.record
|
|
class struct_drm_update_draw(c.Struct):
|
|
SIZE = 24
|
|
handle: int
|
|
type: int
|
|
num: int
|
|
data: int
|
|
struct_drm_update_draw.register_fields([('handle', drm_drawable_t, 0), ('type', ctypes.c_uint32, 4), ('num', ctypes.c_uint32, 8), ('data', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_auth(c.Struct):
|
|
SIZE = 4
|
|
magic: int
|
|
struct_drm_auth.register_fields([('magic', drm_magic_t, 0)])
|
|
@c.record
|
|
class struct_drm_irq_busid(c.Struct):
|
|
SIZE = 16
|
|
irq: int
|
|
busnum: int
|
|
devnum: int
|
|
funcnum: int
|
|
struct_drm_irq_busid.register_fields([('irq', ctypes.c_int32, 0), ('busnum', ctypes.c_int32, 4), ('devnum', ctypes.c_int32, 8), ('funcnum', ctypes.c_int32, 12)])
|
|
enum_drm_vblank_seq_type: dict[int, str] = {(_DRM_VBLANK_ABSOLUTE:=0): '_DRM_VBLANK_ABSOLUTE', (_DRM_VBLANK_RELATIVE:=1): '_DRM_VBLANK_RELATIVE', (_DRM_VBLANK_HIGH_CRTC_MASK:=62): '_DRM_VBLANK_HIGH_CRTC_MASK', (_DRM_VBLANK_EVENT:=67108864): '_DRM_VBLANK_EVENT', (_DRM_VBLANK_FLIP:=134217728): '_DRM_VBLANK_FLIP', (_DRM_VBLANK_NEXTONMISS:=268435456): '_DRM_VBLANK_NEXTONMISS', (_DRM_VBLANK_SECONDARY:=536870912): '_DRM_VBLANK_SECONDARY', (_DRM_VBLANK_SIGNAL:=1073741824): '_DRM_VBLANK_SIGNAL'}
|
|
@c.record
|
|
class struct_drm_wait_vblank_request(c.Struct):
|
|
SIZE = 16
|
|
type: int
|
|
sequence: int
|
|
signal: int
|
|
struct_drm_wait_vblank_request.register_fields([('type', ctypes.c_uint32, 0), ('sequence', ctypes.c_uint32, 4), ('signal', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_wait_vblank_reply(c.Struct):
|
|
SIZE = 24
|
|
type: int
|
|
sequence: int
|
|
tval_sec: int
|
|
tval_usec: int
|
|
struct_drm_wait_vblank_reply.register_fields([('type', ctypes.c_uint32, 0), ('sequence', ctypes.c_uint32, 4), ('tval_sec', ctypes.c_int64, 8), ('tval_usec', ctypes.c_int64, 16)])
|
|
@c.record
|
|
class union_drm_wait_vblank(c.Struct):
|
|
SIZE = 24
|
|
request: struct_drm_wait_vblank_request
|
|
reply: struct_drm_wait_vblank_reply
|
|
union_drm_wait_vblank.register_fields([('request', struct_drm_wait_vblank_request, 0), ('reply', struct_drm_wait_vblank_reply, 0)])
|
|
@c.record
|
|
class struct_drm_modeset_ctl(c.Struct):
|
|
SIZE = 8
|
|
crtc: int
|
|
cmd: int
|
|
__u32: TypeAlias = ctypes.c_uint32
|
|
struct_drm_modeset_ctl.register_fields([('crtc', ctypes.c_uint32, 0), ('cmd', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_agp_mode(c.Struct):
|
|
SIZE = 8
|
|
mode: int
|
|
struct_drm_agp_mode.register_fields([('mode', ctypes.c_uint64, 0)])
|
|
@c.record
|
|
class struct_drm_agp_buffer(c.Struct):
|
|
SIZE = 32
|
|
size: int
|
|
handle: int
|
|
type: int
|
|
physical: int
|
|
struct_drm_agp_buffer.register_fields([('size', ctypes.c_uint64, 0), ('handle', ctypes.c_uint64, 8), ('type', ctypes.c_uint64, 16), ('physical', ctypes.c_uint64, 24)])
|
|
@c.record
|
|
class struct_drm_agp_binding(c.Struct):
|
|
SIZE = 16
|
|
handle: int
|
|
offset: int
|
|
struct_drm_agp_binding.register_fields([('handle', ctypes.c_uint64, 0), ('offset', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_agp_info(c.Struct):
|
|
SIZE = 56
|
|
agp_version_major: int
|
|
agp_version_minor: int
|
|
mode: int
|
|
aperture_base: int
|
|
aperture_size: int
|
|
memory_allowed: int
|
|
memory_used: int
|
|
id_vendor: int
|
|
id_device: int
|
|
struct_drm_agp_info.register_fields([('agp_version_major', ctypes.c_int32, 0), ('agp_version_minor', ctypes.c_int32, 4), ('mode', ctypes.c_uint64, 8), ('aperture_base', ctypes.c_uint64, 16), ('aperture_size', ctypes.c_uint64, 24), ('memory_allowed', ctypes.c_uint64, 32), ('memory_used', ctypes.c_uint64, 40), ('id_vendor', ctypes.c_uint16, 48), ('id_device', ctypes.c_uint16, 50)])
|
|
@c.record
|
|
class struct_drm_scatter_gather(c.Struct):
|
|
SIZE = 16
|
|
size: int
|
|
handle: int
|
|
struct_drm_scatter_gather.register_fields([('size', ctypes.c_uint64, 0), ('handle', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_set_version(c.Struct):
|
|
SIZE = 16
|
|
drm_di_major: int
|
|
drm_di_minor: int
|
|
drm_dd_major: int
|
|
drm_dd_minor: int
|
|
struct_drm_set_version.register_fields([('drm_di_major', ctypes.c_int32, 0), ('drm_di_minor', ctypes.c_int32, 4), ('drm_dd_major', ctypes.c_int32, 8), ('drm_dd_minor', ctypes.c_int32, 12)])
|
|
@c.record
|
|
class struct_drm_gem_close(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
pad: int
|
|
struct_drm_gem_close.register_fields([('handle', ctypes.c_uint32, 0), ('pad', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_gem_flink(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
name: int
|
|
struct_drm_gem_flink.register_fields([('handle', ctypes.c_uint32, 0), ('name', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_gem_open(c.Struct):
|
|
SIZE = 16
|
|
name: int
|
|
handle: int
|
|
size: int
|
|
__u64: TypeAlias = ctypes.c_uint64
|
|
struct_drm_gem_open.register_fields([('name', ctypes.c_uint32, 0), ('handle', ctypes.c_uint32, 4), ('size', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_get_cap(c.Struct):
|
|
SIZE = 16
|
|
capability: int
|
|
value: int
|
|
struct_drm_get_cap.register_fields([('capability', ctypes.c_uint64, 0), ('value', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_set_client_cap(c.Struct):
|
|
SIZE = 16
|
|
capability: int
|
|
value: int
|
|
struct_drm_set_client_cap.register_fields([('capability', ctypes.c_uint64, 0), ('value', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_prime_handle(c.Struct):
|
|
SIZE = 12
|
|
handle: int
|
|
flags: int
|
|
fd: int
|
|
__s32: TypeAlias = ctypes.c_int32
|
|
struct_drm_prime_handle.register_fields([('handle', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('fd', ctypes.c_int32, 8)])
|
|
@c.record
|
|
class struct_drm_syncobj_create(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
flags: int
|
|
struct_drm_syncobj_create.register_fields([('handle', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_syncobj_destroy(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
pad: int
|
|
struct_drm_syncobj_destroy.register_fields([('handle', ctypes.c_uint32, 0), ('pad', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_syncobj_handle(c.Struct):
|
|
SIZE = 16
|
|
handle: int
|
|
flags: int
|
|
fd: int
|
|
pad: int
|
|
struct_drm_syncobj_handle.register_fields([('handle', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('fd', ctypes.c_int32, 8), ('pad', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_syncobj_transfer(c.Struct):
|
|
SIZE = 32
|
|
src_handle: int
|
|
dst_handle: int
|
|
src_point: int
|
|
dst_point: int
|
|
flags: int
|
|
pad: int
|
|
struct_drm_syncobj_transfer.register_fields([('src_handle', ctypes.c_uint32, 0), ('dst_handle', ctypes.c_uint32, 4), ('src_point', ctypes.c_uint64, 8), ('dst_point', ctypes.c_uint64, 16), ('flags', ctypes.c_uint32, 24), ('pad', ctypes.c_uint32, 28)])
|
|
@c.record
|
|
class struct_drm_syncobj_wait(c.Struct):
|
|
SIZE = 40
|
|
handles: int
|
|
timeout_nsec: int
|
|
count_handles: int
|
|
flags: int
|
|
first_signaled: int
|
|
pad: int
|
|
deadline_nsec: int
|
|
__s64: TypeAlias = ctypes.c_int64
|
|
struct_drm_syncobj_wait.register_fields([('handles', ctypes.c_uint64, 0), ('timeout_nsec', ctypes.c_int64, 8), ('count_handles', ctypes.c_uint32, 16), ('flags', ctypes.c_uint32, 20), ('first_signaled', ctypes.c_uint32, 24), ('pad', ctypes.c_uint32, 28), ('deadline_nsec', ctypes.c_uint64, 32)])
|
|
@c.record
|
|
class struct_drm_syncobj_timeline_wait(c.Struct):
|
|
SIZE = 48
|
|
handles: int
|
|
points: int
|
|
timeout_nsec: int
|
|
count_handles: int
|
|
flags: int
|
|
first_signaled: int
|
|
pad: int
|
|
deadline_nsec: int
|
|
struct_drm_syncobj_timeline_wait.register_fields([('handles', ctypes.c_uint64, 0), ('points', ctypes.c_uint64, 8), ('timeout_nsec', ctypes.c_int64, 16), ('count_handles', ctypes.c_uint32, 24), ('flags', ctypes.c_uint32, 28), ('first_signaled', ctypes.c_uint32, 32), ('pad', ctypes.c_uint32, 36), ('deadline_nsec', ctypes.c_uint64, 40)])
|
|
@c.record
|
|
class struct_drm_syncobj_eventfd(c.Struct):
|
|
SIZE = 24
|
|
handle: int
|
|
flags: int
|
|
point: int
|
|
fd: int
|
|
pad: int
|
|
struct_drm_syncobj_eventfd.register_fields([('handle', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('point', ctypes.c_uint64, 8), ('fd', ctypes.c_int32, 16), ('pad', ctypes.c_uint32, 20)])
|
|
@c.record
|
|
class struct_drm_syncobj_array(c.Struct):
|
|
SIZE = 16
|
|
handles: int
|
|
count_handles: int
|
|
pad: int
|
|
struct_drm_syncobj_array.register_fields([('handles', ctypes.c_uint64, 0), ('count_handles', ctypes.c_uint32, 8), ('pad', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_syncobj_timeline_array(c.Struct):
|
|
SIZE = 24
|
|
handles: int
|
|
points: int
|
|
count_handles: int
|
|
flags: int
|
|
struct_drm_syncobj_timeline_array.register_fields([('handles', ctypes.c_uint64, 0), ('points', ctypes.c_uint64, 8), ('count_handles', ctypes.c_uint32, 16), ('flags', ctypes.c_uint32, 20)])
|
|
@c.record
|
|
class struct_drm_crtc_get_sequence(c.Struct):
|
|
SIZE = 24
|
|
crtc_id: int
|
|
active: int
|
|
sequence: int
|
|
sequence_ns: int
|
|
struct_drm_crtc_get_sequence.register_fields([('crtc_id', ctypes.c_uint32, 0), ('active', ctypes.c_uint32, 4), ('sequence', ctypes.c_uint64, 8), ('sequence_ns', ctypes.c_int64, 16)])
|
|
@c.record
|
|
class struct_drm_crtc_queue_sequence(c.Struct):
|
|
SIZE = 24
|
|
crtc_id: int
|
|
flags: int
|
|
sequence: int
|
|
user_data: int
|
|
struct_drm_crtc_queue_sequence.register_fields([('crtc_id', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('sequence', ctypes.c_uint64, 8), ('user_data', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_event(c.Struct):
|
|
SIZE = 8
|
|
type: int
|
|
length: int
|
|
struct_drm_event.register_fields([('type', ctypes.c_uint32, 0), ('length', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_event_vblank(c.Struct):
|
|
SIZE = 32
|
|
base: struct_drm_event
|
|
user_data: int
|
|
tv_sec: int
|
|
tv_usec: int
|
|
sequence: int
|
|
crtc_id: int
|
|
struct_drm_event_vblank.register_fields([('base', struct_drm_event, 0), ('user_data', ctypes.c_uint64, 8), ('tv_sec', ctypes.c_uint32, 16), ('tv_usec', ctypes.c_uint32, 20), ('sequence', ctypes.c_uint32, 24), ('crtc_id', ctypes.c_uint32, 28)])
|
|
@c.record
|
|
class struct_drm_event_crtc_sequence(c.Struct):
|
|
SIZE = 32
|
|
base: struct_drm_event
|
|
user_data: int
|
|
time_ns: int
|
|
sequence: int
|
|
struct_drm_event_crtc_sequence.register_fields([('base', struct_drm_event, 0), ('user_data', ctypes.c_uint64, 8), ('time_ns', ctypes.c_int64, 16), ('sequence', ctypes.c_uint64, 24)])
|
|
drm_clip_rect_t: TypeAlias = struct_drm_clip_rect
|
|
drm_drawable_info_t: TypeAlias = struct_drm_drawable_info
|
|
drm_tex_region_t: TypeAlias = struct_drm_tex_region
|
|
drm_hw_lock_t: TypeAlias = struct_drm_hw_lock
|
|
drm_version_t: TypeAlias = struct_drm_version
|
|
drm_unique_t: TypeAlias = struct_drm_unique
|
|
drm_list_t: TypeAlias = struct_drm_list
|
|
drm_block_t: TypeAlias = struct_drm_block
|
|
drm_control_t: TypeAlias = struct_drm_control
|
|
drm_map_type_t: TypeAlias = ctypes.c_uint32
|
|
drm_map_flags_t: TypeAlias = ctypes.c_uint32
|
|
drm_ctx_priv_map_t: TypeAlias = struct_drm_ctx_priv_map
|
|
drm_map_t: TypeAlias = struct_drm_map
|
|
drm_client_t: TypeAlias = struct_drm_client
|
|
drm_stat_type_t: TypeAlias = ctypes.c_uint32
|
|
drm_stats_t: TypeAlias = struct_drm_stats
|
|
drm_lock_flags_t: TypeAlias = ctypes.c_uint32
|
|
drm_lock_t: TypeAlias = struct_drm_lock
|
|
drm_dma_flags_t: TypeAlias = ctypes.c_uint32
|
|
drm_buf_desc_t: TypeAlias = struct_drm_buf_desc
|
|
drm_buf_info_t: TypeAlias = struct_drm_buf_info
|
|
drm_buf_free_t: TypeAlias = struct_drm_buf_free
|
|
drm_buf_pub_t: TypeAlias = struct_drm_buf_pub
|
|
drm_buf_map_t: TypeAlias = struct_drm_buf_map
|
|
drm_dma_t: TypeAlias = struct_drm_dma
|
|
drm_wait_vblank_t: TypeAlias = union_drm_wait_vblank
|
|
drm_agp_mode_t: TypeAlias = struct_drm_agp_mode
|
|
drm_ctx_flags_t: TypeAlias = ctypes.c_uint32
|
|
drm_ctx_t: TypeAlias = struct_drm_ctx
|
|
drm_ctx_res_t: TypeAlias = struct_drm_ctx_res
|
|
drm_draw_t: TypeAlias = struct_drm_draw
|
|
drm_update_draw_t: TypeAlias = struct_drm_update_draw
|
|
drm_auth_t: TypeAlias = struct_drm_auth
|
|
drm_irq_busid_t: TypeAlias = struct_drm_irq_busid
|
|
drm_vblank_seq_type_t: TypeAlias = ctypes.c_uint32
|
|
drm_agp_buffer_t: TypeAlias = struct_drm_agp_buffer
|
|
drm_agp_binding_t: TypeAlias = struct_drm_agp_binding
|
|
drm_agp_info_t: TypeAlias = struct_drm_agp_info
|
|
drm_scatter_gather_t: TypeAlias = struct_drm_scatter_gather
|
|
drm_set_version_t: TypeAlias = struct_drm_set_version
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_create_in(c.Struct):
|
|
SIZE = 32
|
|
bo_size: int
|
|
alignment: int
|
|
domains: int
|
|
domain_flags: int
|
|
struct_drm_amdgpu_gem_create_in.register_fields([('bo_size', ctypes.c_uint64, 0), ('alignment', ctypes.c_uint64, 8), ('domains', ctypes.c_uint64, 16), ('domain_flags', ctypes.c_uint64, 24)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_create_out(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
_pad: int
|
|
struct_drm_amdgpu_gem_create_out.register_fields([('handle', ctypes.c_uint32, 0), ('_pad', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class union_drm_amdgpu_gem_create(c.Struct):
|
|
SIZE = 32
|
|
_in: struct_drm_amdgpu_gem_create_in
|
|
out: struct_drm_amdgpu_gem_create_out
|
|
union_drm_amdgpu_gem_create.register_fields([('_in', struct_drm_amdgpu_gem_create_in, 0), ('out', struct_drm_amdgpu_gem_create_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_bo_list_in(c.Struct):
|
|
SIZE = 24
|
|
operation: int
|
|
list_handle: int
|
|
bo_number: int
|
|
bo_info_size: int
|
|
bo_info_ptr: int
|
|
struct_drm_amdgpu_bo_list_in.register_fields([('operation', ctypes.c_uint32, 0), ('list_handle', ctypes.c_uint32, 4), ('bo_number', ctypes.c_uint32, 8), ('bo_info_size', ctypes.c_uint32, 12), ('bo_info_ptr', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_amdgpu_bo_list_entry(c.Struct):
|
|
SIZE = 8
|
|
bo_handle: int
|
|
bo_priority: int
|
|
struct_drm_amdgpu_bo_list_entry.register_fields([('bo_handle', ctypes.c_uint32, 0), ('bo_priority', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_amdgpu_bo_list_out(c.Struct):
|
|
SIZE = 8
|
|
list_handle: int
|
|
_pad: int
|
|
struct_drm_amdgpu_bo_list_out.register_fields([('list_handle', ctypes.c_uint32, 0), ('_pad', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class union_drm_amdgpu_bo_list(c.Struct):
|
|
SIZE = 24
|
|
_in: struct_drm_amdgpu_bo_list_in
|
|
out: struct_drm_amdgpu_bo_list_out
|
|
union_drm_amdgpu_bo_list.register_fields([('_in', struct_drm_amdgpu_bo_list_in, 0), ('out', struct_drm_amdgpu_bo_list_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_ctx_in(c.Struct):
|
|
SIZE = 16
|
|
op: int
|
|
flags: int
|
|
ctx_id: int
|
|
priority: int
|
|
struct_drm_amdgpu_ctx_in.register_fields([('op', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('ctx_id', ctypes.c_uint32, 8), ('priority', ctypes.c_int32, 12)])
|
|
@c.record
|
|
class union_drm_amdgpu_ctx_out(c.Struct):
|
|
SIZE = 16
|
|
alloc: union_drm_amdgpu_ctx_out_alloc
|
|
state: union_drm_amdgpu_ctx_out_state
|
|
pstate: union_drm_amdgpu_ctx_out_pstate
|
|
@c.record
|
|
class union_drm_amdgpu_ctx_out_alloc(c.Struct):
|
|
SIZE = 8
|
|
ctx_id: int
|
|
_pad: int
|
|
union_drm_amdgpu_ctx_out_alloc.register_fields([('ctx_id', ctypes.c_uint32, 0), ('_pad', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class union_drm_amdgpu_ctx_out_state(c.Struct):
|
|
SIZE = 16
|
|
flags: int
|
|
hangs: int
|
|
reset_status: int
|
|
union_drm_amdgpu_ctx_out_state.register_fields([('flags', ctypes.c_uint64, 0), ('hangs', ctypes.c_uint32, 8), ('reset_status', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class union_drm_amdgpu_ctx_out_pstate(c.Struct):
|
|
SIZE = 8
|
|
flags: int
|
|
_pad: int
|
|
union_drm_amdgpu_ctx_out_pstate.register_fields([('flags', ctypes.c_uint32, 0), ('_pad', ctypes.c_uint32, 4)])
|
|
union_drm_amdgpu_ctx_out.register_fields([('alloc', union_drm_amdgpu_ctx_out_alloc, 0), ('state', union_drm_amdgpu_ctx_out_state, 0), ('pstate', union_drm_amdgpu_ctx_out_pstate, 0)])
|
|
@c.record
|
|
class union_drm_amdgpu_ctx(c.Struct):
|
|
SIZE = 16
|
|
_in: struct_drm_amdgpu_ctx_in
|
|
out: union_drm_amdgpu_ctx_out
|
|
union_drm_amdgpu_ctx.register_fields([('_in', struct_drm_amdgpu_ctx_in, 0), ('out', union_drm_amdgpu_ctx_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_in(c.Struct):
|
|
SIZE = 72
|
|
op: int
|
|
queue_id: int
|
|
ip_type: int
|
|
doorbell_handle: int
|
|
doorbell_offset: int
|
|
flags: int
|
|
queue_va: int
|
|
queue_size: int
|
|
rptr_va: int
|
|
wptr_va: int
|
|
mqd: int
|
|
mqd_size: int
|
|
struct_drm_amdgpu_userq_in.register_fields([('op', ctypes.c_uint32, 0), ('queue_id', ctypes.c_uint32, 4), ('ip_type', ctypes.c_uint32, 8), ('doorbell_handle', ctypes.c_uint32, 12), ('doorbell_offset', ctypes.c_uint32, 16), ('flags', ctypes.c_uint32, 20), ('queue_va', ctypes.c_uint64, 24), ('queue_size', ctypes.c_uint64, 32), ('rptr_va', ctypes.c_uint64, 40), ('wptr_va', ctypes.c_uint64, 48), ('mqd', ctypes.c_uint64, 56), ('mqd_size', ctypes.c_uint64, 64)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_out(c.Struct):
|
|
SIZE = 8
|
|
queue_id: int
|
|
_pad: int
|
|
struct_drm_amdgpu_userq_out.register_fields([('queue_id', ctypes.c_uint32, 0), ('_pad', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class union_drm_amdgpu_userq(c.Struct):
|
|
SIZE = 72
|
|
_in: struct_drm_amdgpu_userq_in
|
|
out: struct_drm_amdgpu_userq_out
|
|
union_drm_amdgpu_userq.register_fields([('_in', struct_drm_amdgpu_userq_in, 0), ('out', struct_drm_amdgpu_userq_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_mqd_gfx11(c.Struct):
|
|
SIZE = 16
|
|
shadow_va: int
|
|
csa_va: int
|
|
struct_drm_amdgpu_userq_mqd_gfx11.register_fields([('shadow_va', ctypes.c_uint64, 0), ('csa_va', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_mqd_sdma_gfx11(c.Struct):
|
|
SIZE = 8
|
|
csa_va: int
|
|
struct_drm_amdgpu_userq_mqd_sdma_gfx11.register_fields([('csa_va', ctypes.c_uint64, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_mqd_compute_gfx11(c.Struct):
|
|
SIZE = 8
|
|
eop_va: int
|
|
struct_drm_amdgpu_userq_mqd_compute_gfx11.register_fields([('eop_va', ctypes.c_uint64, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_signal(c.Struct):
|
|
SIZE = 48
|
|
queue_id: int
|
|
pad: int
|
|
syncobj_handles: int
|
|
num_syncobj_handles: int
|
|
bo_read_handles: int
|
|
bo_write_handles: int
|
|
num_bo_read_handles: int
|
|
num_bo_write_handles: int
|
|
struct_drm_amdgpu_userq_signal.register_fields([('queue_id', ctypes.c_uint32, 0), ('pad', ctypes.c_uint32, 4), ('syncobj_handles', ctypes.c_uint64, 8), ('num_syncobj_handles', ctypes.c_uint64, 16), ('bo_read_handles', ctypes.c_uint64, 24), ('bo_write_handles', ctypes.c_uint64, 32), ('num_bo_read_handles', ctypes.c_uint32, 40), ('num_bo_write_handles', ctypes.c_uint32, 44)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_fence_info(c.Struct):
|
|
SIZE = 16
|
|
va: int
|
|
value: int
|
|
struct_drm_amdgpu_userq_fence_info.register_fields([('va', ctypes.c_uint64, 0), ('value', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_amdgpu_userq_wait(c.Struct):
|
|
SIZE = 72
|
|
waitq_id: int
|
|
pad: int
|
|
syncobj_handles: int
|
|
syncobj_timeline_handles: int
|
|
syncobj_timeline_points: int
|
|
bo_read_handles: int
|
|
bo_write_handles: int
|
|
num_syncobj_timeline_handles: int
|
|
num_fences: int
|
|
num_syncobj_handles: int
|
|
num_bo_read_handles: int
|
|
num_bo_write_handles: int
|
|
out_fences: int
|
|
__u16: TypeAlias = ctypes.c_uint16
|
|
struct_drm_amdgpu_userq_wait.register_fields([('waitq_id', ctypes.c_uint32, 0), ('pad', ctypes.c_uint32, 4), ('syncobj_handles', ctypes.c_uint64, 8), ('syncobj_timeline_handles', ctypes.c_uint64, 16), ('syncobj_timeline_points', ctypes.c_uint64, 24), ('bo_read_handles', ctypes.c_uint64, 32), ('bo_write_handles', ctypes.c_uint64, 40), ('num_syncobj_timeline_handles', ctypes.c_uint16, 48), ('num_fences', ctypes.c_uint16, 50), ('num_syncobj_handles', ctypes.c_uint32, 52), ('num_bo_read_handles', ctypes.c_uint32, 56), ('num_bo_write_handles', ctypes.c_uint32, 60), ('out_fences', ctypes.c_uint64, 64)])
|
|
class struct_drm_amdgpu_sem_in(c.Struct): pass
|
|
class union_drm_amdgpu_sem_out(c.Struct): pass
|
|
class union_drm_amdgpu_sem(c.Struct): pass
|
|
@c.record
|
|
class struct_drm_amdgpu_vm_in(c.Struct):
|
|
SIZE = 8
|
|
op: int
|
|
flags: int
|
|
struct_drm_amdgpu_vm_in.register_fields([('op', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_amdgpu_vm_out(c.Struct):
|
|
SIZE = 8
|
|
flags: int
|
|
struct_drm_amdgpu_vm_out.register_fields([('flags', ctypes.c_uint64, 0)])
|
|
@c.record
|
|
class union_drm_amdgpu_vm(c.Struct):
|
|
SIZE = 8
|
|
_in: struct_drm_amdgpu_vm_in
|
|
out: struct_drm_amdgpu_vm_out
|
|
union_drm_amdgpu_vm.register_fields([('_in', struct_drm_amdgpu_vm_in, 0), ('out', struct_drm_amdgpu_vm_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_sched_in(c.Struct):
|
|
SIZE = 16
|
|
op: int
|
|
fd: int
|
|
priority: int
|
|
ctx_id: int
|
|
struct_drm_amdgpu_sched_in.register_fields([('op', ctypes.c_uint32, 0), ('fd', ctypes.c_uint32, 4), ('priority', ctypes.c_int32, 8), ('ctx_id', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class union_drm_amdgpu_sched(c.Struct):
|
|
SIZE = 16
|
|
_in: struct_drm_amdgpu_sched_in
|
|
union_drm_amdgpu_sched.register_fields([('_in', struct_drm_amdgpu_sched_in, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_userptr(c.Struct):
|
|
SIZE = 24
|
|
addr: int
|
|
size: int
|
|
flags: int
|
|
handle: int
|
|
struct_drm_amdgpu_gem_userptr.register_fields([('addr', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('flags', ctypes.c_uint32, 16), ('handle', ctypes.c_uint32, 20)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_dgma(c.Struct):
|
|
SIZE = 24
|
|
addr: int
|
|
size: int
|
|
op: int
|
|
handle: int
|
|
struct_drm_amdgpu_gem_dgma.register_fields([('addr', ctypes.c_uint64, 0), ('size', ctypes.c_uint64, 8), ('op', ctypes.c_uint32, 16), ('handle', ctypes.c_uint32, 20)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_metadata(c.Struct):
|
|
SIZE = 288
|
|
handle: int
|
|
op: int
|
|
data: struct_drm_amdgpu_gem_metadata_data
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_metadata_data(c.Struct):
|
|
SIZE = 280
|
|
flags: int
|
|
tiling_info: int
|
|
data_size_bytes: int
|
|
data: c.Array[ctypes.c_uint32, Literal[64]]
|
|
struct_drm_amdgpu_gem_metadata_data.register_fields([('flags', ctypes.c_uint64, 0), ('tiling_info', ctypes.c_uint64, 8), ('data_size_bytes', ctypes.c_uint32, 16), ('data', c.Array[ctypes.c_uint32, Literal[64]], 20)])
|
|
struct_drm_amdgpu_gem_metadata.register_fields([('handle', ctypes.c_uint32, 0), ('op', ctypes.c_uint32, 4), ('data', struct_drm_amdgpu_gem_metadata_data, 8)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_mmap_in(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
_pad: int
|
|
struct_drm_amdgpu_gem_mmap_in.register_fields([('handle', ctypes.c_uint32, 0), ('_pad', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_mmap_out(c.Struct):
|
|
SIZE = 8
|
|
addr_ptr: int
|
|
struct_drm_amdgpu_gem_mmap_out.register_fields([('addr_ptr', ctypes.c_uint64, 0)])
|
|
@c.record
|
|
class union_drm_amdgpu_gem_mmap(c.Struct):
|
|
SIZE = 8
|
|
_in: struct_drm_amdgpu_gem_mmap_in
|
|
out: struct_drm_amdgpu_gem_mmap_out
|
|
union_drm_amdgpu_gem_mmap.register_fields([('_in', struct_drm_amdgpu_gem_mmap_in, 0), ('out', struct_drm_amdgpu_gem_mmap_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_wait_idle_in(c.Struct):
|
|
SIZE = 16
|
|
handle: int
|
|
flags: int
|
|
timeout: int
|
|
struct_drm_amdgpu_gem_wait_idle_in.register_fields([('handle', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('timeout', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_wait_idle_out(c.Struct):
|
|
SIZE = 8
|
|
status: int
|
|
domain: int
|
|
struct_drm_amdgpu_gem_wait_idle_out.register_fields([('status', ctypes.c_uint32, 0), ('domain', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class union_drm_amdgpu_gem_wait_idle(c.Struct):
|
|
SIZE = 16
|
|
_in: struct_drm_amdgpu_gem_wait_idle_in
|
|
out: struct_drm_amdgpu_gem_wait_idle_out
|
|
union_drm_amdgpu_gem_wait_idle.register_fields([('_in', struct_drm_amdgpu_gem_wait_idle_in, 0), ('out', struct_drm_amdgpu_gem_wait_idle_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_wait_cs_in(c.Struct):
|
|
SIZE = 32
|
|
handle: int
|
|
timeout: int
|
|
ip_type: int
|
|
ip_instance: int
|
|
ring: int
|
|
ctx_id: int
|
|
struct_drm_amdgpu_wait_cs_in.register_fields([('handle', ctypes.c_uint64, 0), ('timeout', ctypes.c_uint64, 8), ('ip_type', ctypes.c_uint32, 16), ('ip_instance', ctypes.c_uint32, 20), ('ring', ctypes.c_uint32, 24), ('ctx_id', ctypes.c_uint32, 28)])
|
|
@c.record
|
|
class struct_drm_amdgpu_wait_cs_out(c.Struct):
|
|
SIZE = 8
|
|
status: int
|
|
struct_drm_amdgpu_wait_cs_out.register_fields([('status', ctypes.c_uint64, 0)])
|
|
@c.record
|
|
class union_drm_amdgpu_wait_cs(c.Struct):
|
|
SIZE = 32
|
|
_in: struct_drm_amdgpu_wait_cs_in
|
|
out: struct_drm_amdgpu_wait_cs_out
|
|
union_drm_amdgpu_wait_cs.register_fields([('_in', struct_drm_amdgpu_wait_cs_in, 0), ('out', struct_drm_amdgpu_wait_cs_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_fence(c.Struct):
|
|
SIZE = 24
|
|
ctx_id: int
|
|
ip_type: int
|
|
ip_instance: int
|
|
ring: int
|
|
seq_no: int
|
|
struct_drm_amdgpu_fence.register_fields([('ctx_id', ctypes.c_uint32, 0), ('ip_type', ctypes.c_uint32, 4), ('ip_instance', ctypes.c_uint32, 8), ('ring', ctypes.c_uint32, 12), ('seq_no', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_amdgpu_wait_fences_in(c.Struct):
|
|
SIZE = 24
|
|
fences: int
|
|
fence_count: int
|
|
wait_all: int
|
|
timeout_ns: int
|
|
struct_drm_amdgpu_wait_fences_in.register_fields([('fences', ctypes.c_uint64, 0), ('fence_count', ctypes.c_uint32, 8), ('wait_all', ctypes.c_uint32, 12), ('timeout_ns', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_amdgpu_wait_fences_out(c.Struct):
|
|
SIZE = 8
|
|
status: int
|
|
first_signaled: int
|
|
struct_drm_amdgpu_wait_fences_out.register_fields([('status', ctypes.c_uint32, 0), ('first_signaled', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class union_drm_amdgpu_wait_fences(c.Struct):
|
|
SIZE = 24
|
|
_in: struct_drm_amdgpu_wait_fences_in
|
|
out: struct_drm_amdgpu_wait_fences_out
|
|
union_drm_amdgpu_wait_fences.register_fields([('_in', struct_drm_amdgpu_wait_fences_in, 0), ('out', struct_drm_amdgpu_wait_fences_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_op(c.Struct):
|
|
SIZE = 16
|
|
handle: int
|
|
op: int
|
|
value: int
|
|
struct_drm_amdgpu_gem_op.register_fields([('handle', ctypes.c_uint32, 0), ('op', ctypes.c_uint32, 4), ('value', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_amdgpu_gem_va(c.Struct):
|
|
SIZE = 64
|
|
handle: int
|
|
_pad: int
|
|
operation: int
|
|
flags: int
|
|
va_address: int
|
|
offset_in_bo: int
|
|
map_size: int
|
|
vm_timeline_point: int
|
|
vm_timeline_syncobj_out: int
|
|
num_syncobj_handles: int
|
|
input_fence_syncobj_handles: int
|
|
struct_drm_amdgpu_gem_va.register_fields([('handle', ctypes.c_uint32, 0), ('_pad', ctypes.c_uint32, 4), ('operation', ctypes.c_uint32, 8), ('flags', ctypes.c_uint32, 12), ('va_address', ctypes.c_uint64, 16), ('offset_in_bo', ctypes.c_uint64, 24), ('map_size', ctypes.c_uint64, 32), ('vm_timeline_point', ctypes.c_uint64, 40), ('vm_timeline_syncobj_out', ctypes.c_uint32, 48), ('num_syncobj_handles', ctypes.c_uint32, 52), ('input_fence_syncobj_handles', ctypes.c_uint64, 56)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk(c.Struct):
|
|
SIZE = 16
|
|
chunk_id: int
|
|
length_dw: int
|
|
chunk_data: int
|
|
struct_drm_amdgpu_cs_chunk.register_fields([('chunk_id', ctypes.c_uint32, 0), ('length_dw', ctypes.c_uint32, 4), ('chunk_data', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_in(c.Struct):
|
|
SIZE = 24
|
|
ctx_id: int
|
|
bo_list_handle: int
|
|
num_chunks: int
|
|
flags: int
|
|
chunks: int
|
|
struct_drm_amdgpu_cs_in.register_fields([('ctx_id', ctypes.c_uint32, 0), ('bo_list_handle', ctypes.c_uint32, 4), ('num_chunks', ctypes.c_uint32, 8), ('flags', ctypes.c_uint32, 12), ('chunks', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_out(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
struct_drm_amdgpu_cs_out.register_fields([('handle', ctypes.c_uint64, 0)])
|
|
@c.record
|
|
class union_drm_amdgpu_cs(c.Struct):
|
|
SIZE = 24
|
|
_in: struct_drm_amdgpu_cs_in
|
|
out: struct_drm_amdgpu_cs_out
|
|
union_drm_amdgpu_cs.register_fields([('_in', struct_drm_amdgpu_cs_in, 0), ('out', struct_drm_amdgpu_cs_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk_ib(c.Struct):
|
|
SIZE = 32
|
|
_pad: int
|
|
flags: int
|
|
va_start: int
|
|
ib_bytes: int
|
|
ip_type: int
|
|
ip_instance: int
|
|
ring: int
|
|
struct_drm_amdgpu_cs_chunk_ib.register_fields([('_pad', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('va_start', ctypes.c_uint64, 8), ('ib_bytes', ctypes.c_uint32, 16), ('ip_type', ctypes.c_uint32, 20), ('ip_instance', ctypes.c_uint32, 24), ('ring', ctypes.c_uint32, 28)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk_dep(c.Struct):
|
|
SIZE = 24
|
|
ip_type: int
|
|
ip_instance: int
|
|
ring: int
|
|
ctx_id: int
|
|
handle: int
|
|
struct_drm_amdgpu_cs_chunk_dep.register_fields([('ip_type', ctypes.c_uint32, 0), ('ip_instance', ctypes.c_uint32, 4), ('ring', ctypes.c_uint32, 8), ('ctx_id', ctypes.c_uint32, 12), ('handle', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk_fence(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
offset: int
|
|
struct_drm_amdgpu_cs_chunk_fence.register_fields([('handle', ctypes.c_uint32, 0), ('offset', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk_sem(c.Struct):
|
|
SIZE = 4
|
|
handle: int
|
|
struct_drm_amdgpu_cs_chunk_sem.register_fields([('handle', ctypes.c_uint32, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk_syncobj(c.Struct):
|
|
SIZE = 16
|
|
handle: int
|
|
flags: int
|
|
point: int
|
|
struct_drm_amdgpu_cs_chunk_syncobj.register_fields([('handle', ctypes.c_uint32, 0), ('flags', ctypes.c_uint32, 4), ('point', ctypes.c_uint64, 8)])
|
|
@c.record
|
|
class union_drm_amdgpu_fence_to_handle(c.Struct):
|
|
SIZE = 32
|
|
_in: union_drm_amdgpu_fence_to_handle_in
|
|
out: union_drm_amdgpu_fence_to_handle_out
|
|
@c.record
|
|
class union_drm_amdgpu_fence_to_handle_in(c.Struct):
|
|
SIZE = 32
|
|
fence: struct_drm_amdgpu_fence
|
|
what: int
|
|
pad: int
|
|
union_drm_amdgpu_fence_to_handle_in.register_fields([('fence', struct_drm_amdgpu_fence, 0), ('what', ctypes.c_uint32, 24), ('pad', ctypes.c_uint32, 28)])
|
|
@c.record
|
|
class union_drm_amdgpu_fence_to_handle_out(c.Struct):
|
|
SIZE = 4
|
|
handle: int
|
|
union_drm_amdgpu_fence_to_handle_out.register_fields([('handle', ctypes.c_uint32, 0)])
|
|
union_drm_amdgpu_fence_to_handle.register_fields([('_in', union_drm_amdgpu_fence_to_handle_in, 0), ('out', union_drm_amdgpu_fence_to_handle_out, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk_data(c.Struct):
|
|
SIZE = 32
|
|
ib_data: struct_drm_amdgpu_cs_chunk_ib
|
|
fence_data: struct_drm_amdgpu_cs_chunk_fence
|
|
struct_drm_amdgpu_cs_chunk_data.register_fields([('ib_data', struct_drm_amdgpu_cs_chunk_ib, 0), ('fence_data', struct_drm_amdgpu_cs_chunk_fence, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_cs_chunk_cp_gfx_shadow(c.Struct):
|
|
SIZE = 32
|
|
shadow_va: int
|
|
csa_va: int
|
|
gds_va: int
|
|
flags: int
|
|
struct_drm_amdgpu_cs_chunk_cp_gfx_shadow.register_fields([('shadow_va', ctypes.c_uint64, 0), ('csa_va', ctypes.c_uint64, 8), ('gds_va', ctypes.c_uint64, 16), ('flags', ctypes.c_uint64, 24)])
|
|
@c.record
|
|
class struct_drm_amdgpu_query_fw(c.Struct):
|
|
SIZE = 16
|
|
fw_type: int
|
|
ip_instance: int
|
|
index: int
|
|
_pad: int
|
|
struct_drm_amdgpu_query_fw.register_fields([('fw_type', ctypes.c_uint32, 0), ('ip_instance', ctypes.c_uint32, 4), ('index', ctypes.c_uint32, 8), ('_pad', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info(c.Struct):
|
|
SIZE = 16
|
|
return_pointer: int
|
|
return_size: int
|
|
query: int
|
|
struct_drm_amdgpu_info.register_fields([('return_pointer', ctypes.c_uint64, 0), ('return_size', ctypes.c_uint32, 8), ('query', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_gds(c.Struct):
|
|
SIZE = 32
|
|
gds_gfx_partition_size: int
|
|
compute_partition_size: int
|
|
gds_total_size: int
|
|
gws_per_gfx_partition: int
|
|
gws_per_compute_partition: int
|
|
oa_per_gfx_partition: int
|
|
oa_per_compute_partition: int
|
|
_pad: int
|
|
struct_drm_amdgpu_info_gds.register_fields([('gds_gfx_partition_size', ctypes.c_uint32, 0), ('compute_partition_size', ctypes.c_uint32, 4), ('gds_total_size', ctypes.c_uint32, 8), ('gws_per_gfx_partition', ctypes.c_uint32, 12), ('gws_per_compute_partition', ctypes.c_uint32, 16), ('oa_per_gfx_partition', ctypes.c_uint32, 20), ('oa_per_compute_partition', ctypes.c_uint32, 24), ('_pad', ctypes.c_uint32, 28)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_vram_gtt(c.Struct):
|
|
SIZE = 24
|
|
vram_size: int
|
|
vram_cpu_accessible_size: int
|
|
gtt_size: int
|
|
struct_drm_amdgpu_info_vram_gtt.register_fields([('vram_size', ctypes.c_uint64, 0), ('vram_cpu_accessible_size', ctypes.c_uint64, 8), ('gtt_size', ctypes.c_uint64, 16)])
|
|
@c.record
|
|
class struct_drm_amdgpu_heap_info(c.Struct):
|
|
SIZE = 32
|
|
total_heap_size: int
|
|
usable_heap_size: int
|
|
heap_usage: int
|
|
max_allocation: int
|
|
struct_drm_amdgpu_heap_info.register_fields([('total_heap_size', ctypes.c_uint64, 0), ('usable_heap_size', ctypes.c_uint64, 8), ('heap_usage', ctypes.c_uint64, 16), ('max_allocation', ctypes.c_uint64, 24)])
|
|
@c.record
|
|
class struct_drm_amdgpu_memory_info(c.Struct):
|
|
SIZE = 96
|
|
vram: struct_drm_amdgpu_heap_info
|
|
cpu_accessible_vram: struct_drm_amdgpu_heap_info
|
|
gtt: struct_drm_amdgpu_heap_info
|
|
struct_drm_amdgpu_memory_info.register_fields([('vram', struct_drm_amdgpu_heap_info, 0), ('cpu_accessible_vram', struct_drm_amdgpu_heap_info, 32), ('gtt', struct_drm_amdgpu_heap_info, 64)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_firmware(c.Struct):
|
|
SIZE = 8
|
|
ver: int
|
|
feature: int
|
|
struct_drm_amdgpu_info_firmware.register_fields([('ver', ctypes.c_uint32, 0), ('feature', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_vbios(c.Struct):
|
|
SIZE = 200
|
|
name: c.Array[ctypes.c_ubyte, Literal[64]]
|
|
vbios_pn: c.Array[ctypes.c_ubyte, Literal[64]]
|
|
version: int
|
|
pad: int
|
|
vbios_ver_str: c.Array[ctypes.c_ubyte, Literal[32]]
|
|
date: c.Array[ctypes.c_ubyte, Literal[32]]
|
|
__u8: TypeAlias = ctypes.c_ubyte
|
|
struct_drm_amdgpu_info_vbios.register_fields([('name', c.Array[ctypes.c_ubyte, Literal[64]], 0), ('vbios_pn', c.Array[ctypes.c_ubyte, Literal[64]], 64), ('version', ctypes.c_uint32, 128), ('pad', ctypes.c_uint32, 132), ('vbios_ver_str', c.Array[ctypes.c_ubyte, Literal[32]], 136), ('date', c.Array[ctypes.c_ubyte, Literal[32]], 168)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_device(c.Struct):
|
|
SIZE = 448
|
|
device_id: int
|
|
chip_rev: int
|
|
external_rev: int
|
|
pci_rev: int
|
|
family: int
|
|
num_shader_engines: int
|
|
num_shader_arrays_per_engine: int
|
|
gpu_counter_freq: int
|
|
max_engine_clock: int
|
|
max_memory_clock: int
|
|
cu_active_number: int
|
|
cu_ao_mask: int
|
|
cu_bitmap: c.Array[c.Array[ctypes.c_uint32, Literal[4]], Literal[4]]
|
|
enabled_rb_pipes_mask: int
|
|
num_rb_pipes: int
|
|
num_hw_gfx_contexts: int
|
|
pcie_gen: int
|
|
ids_flags: int
|
|
virtual_address_offset: int
|
|
virtual_address_max: int
|
|
virtual_address_alignment: int
|
|
pte_fragment_size: int
|
|
gart_page_size: int
|
|
ce_ram_size: int
|
|
vram_type: int
|
|
vram_bit_width: int
|
|
vce_harvest_config: int
|
|
gc_double_offchip_lds_buf: int
|
|
prim_buf_gpu_addr: int
|
|
pos_buf_gpu_addr: int
|
|
cntl_sb_buf_gpu_addr: int
|
|
param_buf_gpu_addr: int
|
|
prim_buf_size: int
|
|
pos_buf_size: int
|
|
cntl_sb_buf_size: int
|
|
param_buf_size: int
|
|
wave_front_size: int
|
|
num_shader_visible_vgprs: int
|
|
num_cu_per_sh: int
|
|
num_tcc_blocks: int
|
|
gs_vgt_table_depth: int
|
|
gs_prim_buffer_depth: int
|
|
max_gs_waves_per_vgt: int
|
|
pcie_num_lanes: int
|
|
cu_ao_bitmap: c.Array[c.Array[ctypes.c_uint32, Literal[4]], Literal[4]]
|
|
high_va_offset: int
|
|
high_va_max: int
|
|
pa_sc_tile_steering_override: int
|
|
tcc_disabled_mask: int
|
|
min_engine_clock: int
|
|
min_memory_clock: int
|
|
tcp_cache_size: int
|
|
num_sqc_per_wgp: int
|
|
sqc_data_cache_size: int
|
|
sqc_inst_cache_size: int
|
|
gl1c_cache_size: int
|
|
gl2c_cache_size: int
|
|
mall_size: int
|
|
enabled_rb_pipes_mask_hi: int
|
|
shadow_size: int
|
|
shadow_alignment: int
|
|
csa_size: int
|
|
csa_alignment: int
|
|
userq_ip_mask: int
|
|
pad: int
|
|
struct_drm_amdgpu_info_device.register_fields([('device_id', ctypes.c_uint32, 0), ('chip_rev', ctypes.c_uint32, 4), ('external_rev', ctypes.c_uint32, 8), ('pci_rev', ctypes.c_uint32, 12), ('family', ctypes.c_uint32, 16), ('num_shader_engines', ctypes.c_uint32, 20), ('num_shader_arrays_per_engine', ctypes.c_uint32, 24), ('gpu_counter_freq', ctypes.c_uint32, 28), ('max_engine_clock', ctypes.c_uint64, 32), ('max_memory_clock', ctypes.c_uint64, 40), ('cu_active_number', ctypes.c_uint32, 48), ('cu_ao_mask', ctypes.c_uint32, 52), ('cu_bitmap', c.Array[c.Array[ctypes.c_uint32, Literal[4]], Literal[4]], 56), ('enabled_rb_pipes_mask', ctypes.c_uint32, 120), ('num_rb_pipes', ctypes.c_uint32, 124), ('num_hw_gfx_contexts', ctypes.c_uint32, 128), ('pcie_gen', ctypes.c_uint32, 132), ('ids_flags', ctypes.c_uint64, 136), ('virtual_address_offset', ctypes.c_uint64, 144), ('virtual_address_max', ctypes.c_uint64, 152), ('virtual_address_alignment', ctypes.c_uint32, 160), ('pte_fragment_size', ctypes.c_uint32, 164), ('gart_page_size', ctypes.c_uint32, 168), ('ce_ram_size', ctypes.c_uint32, 172), ('vram_type', ctypes.c_uint32, 176), ('vram_bit_width', ctypes.c_uint32, 180), ('vce_harvest_config', ctypes.c_uint32, 184), ('gc_double_offchip_lds_buf', ctypes.c_uint32, 188), ('prim_buf_gpu_addr', ctypes.c_uint64, 192), ('pos_buf_gpu_addr', ctypes.c_uint64, 200), ('cntl_sb_buf_gpu_addr', ctypes.c_uint64, 208), ('param_buf_gpu_addr', ctypes.c_uint64, 216), ('prim_buf_size', ctypes.c_uint32, 224), ('pos_buf_size', ctypes.c_uint32, 228), ('cntl_sb_buf_size', ctypes.c_uint32, 232), ('param_buf_size', ctypes.c_uint32, 236), ('wave_front_size', ctypes.c_uint32, 240), ('num_shader_visible_vgprs', ctypes.c_uint32, 244), ('num_cu_per_sh', ctypes.c_uint32, 248), ('num_tcc_blocks', ctypes.c_uint32, 252), ('gs_vgt_table_depth', ctypes.c_uint32, 256), ('gs_prim_buffer_depth', ctypes.c_uint32, 260), ('max_gs_waves_per_vgt', ctypes.c_uint32, 264), ('pcie_num_lanes', ctypes.c_uint32, 268), ('cu_ao_bitmap', c.Array[c.Array[ctypes.c_uint32, Literal[4]], Literal[4]], 272), ('high_va_offset', ctypes.c_uint64, 336), ('high_va_max', ctypes.c_uint64, 344), ('pa_sc_tile_steering_override', ctypes.c_uint32, 352), ('tcc_disabled_mask', ctypes.c_uint64, 360), ('min_engine_clock', ctypes.c_uint64, 368), ('min_memory_clock', ctypes.c_uint64, 376), ('tcp_cache_size', ctypes.c_uint32, 384), ('num_sqc_per_wgp', ctypes.c_uint32, 388), ('sqc_data_cache_size', ctypes.c_uint32, 392), ('sqc_inst_cache_size', ctypes.c_uint32, 396), ('gl1c_cache_size', ctypes.c_uint32, 400), ('gl2c_cache_size', ctypes.c_uint32, 404), ('mall_size', ctypes.c_uint64, 408), ('enabled_rb_pipes_mask_hi', ctypes.c_uint32, 416), ('shadow_size', ctypes.c_uint32, 420), ('shadow_alignment', ctypes.c_uint32, 424), ('csa_size', ctypes.c_uint32, 428), ('csa_alignment', ctypes.c_uint32, 432), ('userq_ip_mask', ctypes.c_uint32, 436), ('pad', ctypes.c_uint32, 440)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_hw_ip(c.Struct):
|
|
SIZE = 32
|
|
hw_ip_version_major: int
|
|
hw_ip_version_minor: int
|
|
capabilities_flags: int
|
|
ib_start_alignment: int
|
|
ib_size_alignment: int
|
|
available_rings: int
|
|
ip_discovery_version: int
|
|
struct_drm_amdgpu_info_hw_ip.register_fields([('hw_ip_version_major', ctypes.c_uint32, 0), ('hw_ip_version_minor', ctypes.c_uint32, 4), ('capabilities_flags', ctypes.c_uint64, 8), ('ib_start_alignment', ctypes.c_uint32, 16), ('ib_size_alignment', ctypes.c_uint32, 20), ('available_rings', ctypes.c_uint32, 24), ('ip_discovery_version', ctypes.c_uint32, 28)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_uq_fw_areas_gfx(c.Struct):
|
|
SIZE = 16
|
|
shadow_size: int
|
|
shadow_alignment: int
|
|
csa_size: int
|
|
csa_alignment: int
|
|
struct_drm_amdgpu_info_uq_fw_areas_gfx.register_fields([('shadow_size', ctypes.c_uint32, 0), ('shadow_alignment', ctypes.c_uint32, 4), ('csa_size', ctypes.c_uint32, 8), ('csa_alignment', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_uq_fw_areas(c.Struct):
|
|
SIZE = 16
|
|
gfx: struct_drm_amdgpu_info_uq_fw_areas_gfx
|
|
struct_drm_amdgpu_info_uq_fw_areas.register_fields([('gfx', struct_drm_amdgpu_info_uq_fw_areas_gfx, 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_num_handles(c.Struct):
|
|
SIZE = 8
|
|
uvd_max_handles: int
|
|
uvd_used_handles: int
|
|
struct_drm_amdgpu_info_num_handles.register_fields([('uvd_max_handles', ctypes.c_uint32, 0), ('uvd_used_handles', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_vce_clock_table_entry(c.Struct):
|
|
SIZE = 16
|
|
sclk: int
|
|
mclk: int
|
|
eclk: int
|
|
pad: int
|
|
struct_drm_amdgpu_info_vce_clock_table_entry.register_fields([('sclk', ctypes.c_uint32, 0), ('mclk', ctypes.c_uint32, 4), ('eclk', ctypes.c_uint32, 8), ('pad', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_vce_clock_table(c.Struct):
|
|
SIZE = 104
|
|
entries: c.Array[struct_drm_amdgpu_info_vce_clock_table_entry, Literal[6]]
|
|
num_valid_entries: int
|
|
pad: int
|
|
struct_drm_amdgpu_info_vce_clock_table.register_fields([('entries', c.Array[struct_drm_amdgpu_info_vce_clock_table_entry, Literal[6]], 0), ('num_valid_entries', ctypes.c_uint32, 96), ('pad', ctypes.c_uint32, 100)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_video_codec_info(c.Struct):
|
|
SIZE = 24
|
|
valid: int
|
|
max_width: int
|
|
max_height: int
|
|
max_pixels_per_frame: int
|
|
max_level: int
|
|
pad: int
|
|
struct_drm_amdgpu_info_video_codec_info.register_fields([('valid', ctypes.c_uint32, 0), ('max_width', ctypes.c_uint32, 4), ('max_height', ctypes.c_uint32, 8), ('max_pixels_per_frame', ctypes.c_uint32, 12), ('max_level', ctypes.c_uint32, 16), ('pad', ctypes.c_uint32, 20)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_video_caps(c.Struct):
|
|
SIZE = 192
|
|
codec_info: c.Array[struct_drm_amdgpu_info_video_codec_info, Literal[8]]
|
|
struct_drm_amdgpu_info_video_caps.register_fields([('codec_info', c.Array[struct_drm_amdgpu_info_video_codec_info, Literal[8]], 0)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_gpuvm_fault(c.Struct):
|
|
SIZE = 16
|
|
addr: int
|
|
status: int
|
|
vmhub: int
|
|
struct_drm_amdgpu_info_gpuvm_fault.register_fields([('addr', ctypes.c_uint64, 0), ('status', ctypes.c_uint32, 8), ('vmhub', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_uq_metadata_gfx(c.Struct):
|
|
SIZE = 16
|
|
shadow_size: int
|
|
shadow_alignment: int
|
|
csa_size: int
|
|
csa_alignment: int
|
|
struct_drm_amdgpu_info_uq_metadata_gfx.register_fields([('shadow_size', ctypes.c_uint32, 0), ('shadow_alignment', ctypes.c_uint32, 4), ('csa_size', ctypes.c_uint32, 8), ('csa_alignment', ctypes.c_uint32, 12)])
|
|
@c.record
|
|
class struct_drm_amdgpu_info_uq_metadata(c.Struct):
|
|
SIZE = 16
|
|
gfx: struct_drm_amdgpu_info_uq_metadata_gfx
|
|
struct_drm_amdgpu_info_uq_metadata.register_fields([('gfx', struct_drm_amdgpu_info_uq_metadata_gfx, 0)])
|
|
class _anonstruct0(c.Struct): pass
|
|
class struct_drm_amdgpu_virtual_range(c.Struct): pass
|
|
@c.record
|
|
class struct_drm_amdgpu_capability(c.Struct):
|
|
SIZE = 8
|
|
flag: int
|
|
direct_gma_size: int
|
|
struct_drm_amdgpu_capability.register_fields([('flag', ctypes.c_uint32, 0), ('direct_gma_size', ctypes.c_uint32, 4)])
|
|
@c.record
|
|
class struct_drm_amdgpu_freesync(c.Struct):
|
|
SIZE = 32
|
|
op: int
|
|
spare: c.Array[ctypes.c_uint32, Literal[7]]
|
|
struct_drm_amdgpu_freesync.register_fields([('op', ctypes.c_uint32, 0), ('spare', c.Array[ctypes.c_uint32, Literal[7]], 4)])
|
|
DRM_NAME = "drm"
|
|
DRM_MIN_ORDER = 5
|
|
DRM_MAX_ORDER = 22
|
|
DRM_RAM_PERCENT = 10
|
|
_DRM_LOCK_HELD = 0x80000000
|
|
_DRM_LOCK_CONT = 0x40000000
|
|
_DRM_LOCK_IS_HELD = lambda lock: ((lock) & _DRM_LOCK_HELD) # type: ignore
|
|
_DRM_LOCK_IS_CONT = lambda lock: ((lock) & _DRM_LOCK_CONT) # type: ignore
|
|
_DRM_LOCKING_CONTEXT = lambda lock: ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT)) # type: ignore
|
|
_DRM_VBLANK_HIGH_CRTC_SHIFT = 1
|
|
_DRM_VBLANK_TYPES_MASK = (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
|
|
_DRM_VBLANK_FLAGS_MASK = (_DRM_VBLANK_EVENT | _DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | _DRM_VBLANK_NEXTONMISS)
|
|
_DRM_PRE_MODESET = 1
|
|
_DRM_POST_MODESET = 2
|
|
DRM_CAP_DUMB_BUFFER = 0x1
|
|
DRM_CAP_VBLANK_HIGH_CRTC = 0x2
|
|
DRM_CAP_DUMB_PREFERRED_DEPTH = 0x3
|
|
DRM_CAP_DUMB_PREFER_SHADOW = 0x4
|
|
DRM_CAP_PRIME = 0x5
|
|
DRM_PRIME_CAP_IMPORT = 0x1
|
|
DRM_PRIME_CAP_EXPORT = 0x2
|
|
DRM_CAP_TIMESTAMP_MONOTONIC = 0x6
|
|
DRM_CAP_ASYNC_PAGE_FLIP = 0x7
|
|
DRM_CAP_CURSOR_WIDTH = 0x8
|
|
DRM_CAP_CURSOR_HEIGHT = 0x9
|
|
DRM_CAP_ADDFB2_MODIFIERS = 0x10
|
|
DRM_CAP_PAGE_FLIP_TARGET = 0x11
|
|
DRM_CAP_CRTC_IN_VBLANK_EVENT = 0x12
|
|
DRM_CAP_SYNCOBJ = 0x13
|
|
DRM_CAP_SYNCOBJ_TIMELINE = 0x14
|
|
DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP = 0x15
|
|
DRM_CLIENT_CAP_STEREO_3D = 1
|
|
DRM_CLIENT_CAP_UNIVERSAL_PLANES = 2
|
|
DRM_CLIENT_CAP_ATOMIC = 3
|
|
DRM_CLIENT_CAP_ASPECT_RATIO = 4
|
|
DRM_CLIENT_CAP_WRITEBACK_CONNECTORS = 5
|
|
DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT = 6
|
|
DRM_SYNCOBJ_CREATE_SIGNALED = (1 << 0)
|
|
DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE = (1 << 0)
|
|
DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE = (1 << 0)
|
|
DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL = (1 << 0)
|
|
DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT = (1 << 1)
|
|
DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE = (1 << 2)
|
|
DRM_SYNCOBJ_WAIT_FLAGS_WAIT_DEADLINE = (1 << 3)
|
|
DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED = (1 << 0)
|
|
DRM_CRTC_SEQUENCE_RELATIVE = 0x00000001
|
|
DRM_CRTC_SEQUENCE_NEXT_ON_MISS = 0x00000002
|
|
DRM_IOCTL_BASE = 'd'
|
|
DRM_IO = lambda nr: _IO(DRM_IOCTL_BASE,nr) # type: ignore
|
|
DRM_IOR = lambda nr,type: _IOR(DRM_IOCTL_BASE,nr,type) # type: ignore
|
|
DRM_IOW = lambda nr,type: _IOW(DRM_IOCTL_BASE,nr,type) # type: ignore
|
|
DRM_IOWR = lambda nr,type: _IOWR(DRM_IOCTL_BASE,nr,type) # type: ignore
|
|
DRM_IOCTL_VERSION = DRM_IOWR(0x00, struct_drm_version)
|
|
DRM_IOCTL_GET_UNIQUE = DRM_IOWR(0x01, struct_drm_unique)
|
|
DRM_IOCTL_GET_MAGIC = DRM_IOR( 0x02, struct_drm_auth)
|
|
DRM_IOCTL_IRQ_BUSID = DRM_IOWR(0x03, struct_drm_irq_busid)
|
|
DRM_IOCTL_GET_MAP = DRM_IOWR(0x04, struct_drm_map)
|
|
DRM_IOCTL_GET_CLIENT = DRM_IOWR(0x05, struct_drm_client)
|
|
DRM_IOCTL_GET_STATS = DRM_IOR( 0x06, struct_drm_stats)
|
|
DRM_IOCTL_SET_VERSION = DRM_IOWR(0x07, struct_drm_set_version)
|
|
DRM_IOCTL_MODESET_CTL = DRM_IOW(0x08, struct_drm_modeset_ctl)
|
|
DRM_IOCTL_GEM_CLOSE = DRM_IOW (0x09, struct_drm_gem_close)
|
|
DRM_IOCTL_GEM_FLINK = DRM_IOWR(0x0a, struct_drm_gem_flink)
|
|
DRM_IOCTL_GEM_OPEN = DRM_IOWR(0x0b, struct_drm_gem_open)
|
|
DRM_IOCTL_GET_CAP = DRM_IOWR(0x0c, struct_drm_get_cap)
|
|
DRM_IOCTL_SET_CLIENT_CAP = DRM_IOW( 0x0d, struct_drm_set_client_cap)
|
|
DRM_IOCTL_SET_UNIQUE = DRM_IOW( 0x10, struct_drm_unique)
|
|
DRM_IOCTL_AUTH_MAGIC = DRM_IOW( 0x11, struct_drm_auth)
|
|
DRM_IOCTL_BLOCK = DRM_IOWR(0x12, struct_drm_block)
|
|
DRM_IOCTL_UNBLOCK = DRM_IOWR(0x13, struct_drm_block)
|
|
DRM_IOCTL_CONTROL = DRM_IOW( 0x14, struct_drm_control)
|
|
DRM_IOCTL_ADD_MAP = DRM_IOWR(0x15, struct_drm_map)
|
|
DRM_IOCTL_ADD_BUFS = DRM_IOWR(0x16, struct_drm_buf_desc)
|
|
DRM_IOCTL_MARK_BUFS = DRM_IOW( 0x17, struct_drm_buf_desc)
|
|
DRM_IOCTL_INFO_BUFS = DRM_IOWR(0x18, struct_drm_buf_info)
|
|
DRM_IOCTL_MAP_BUFS = DRM_IOWR(0x19, struct_drm_buf_map)
|
|
DRM_IOCTL_FREE_BUFS = DRM_IOW( 0x1a, struct_drm_buf_free)
|
|
DRM_IOCTL_RM_MAP = DRM_IOW( 0x1b, struct_drm_map)
|
|
DRM_IOCTL_SET_SAREA_CTX = DRM_IOW( 0x1c, struct_drm_ctx_priv_map)
|
|
DRM_IOCTL_GET_SAREA_CTX = DRM_IOWR(0x1d, struct_drm_ctx_priv_map)
|
|
DRM_IOCTL_SET_MASTER = DRM_IO(0x1e)
|
|
DRM_IOCTL_DROP_MASTER = DRM_IO(0x1f)
|
|
DRM_IOCTL_ADD_CTX = DRM_IOWR(0x20, struct_drm_ctx)
|
|
DRM_IOCTL_RM_CTX = DRM_IOWR(0x21, struct_drm_ctx)
|
|
DRM_IOCTL_MOD_CTX = DRM_IOW( 0x22, struct_drm_ctx)
|
|
DRM_IOCTL_GET_CTX = DRM_IOWR(0x23, struct_drm_ctx)
|
|
DRM_IOCTL_SWITCH_CTX = DRM_IOW( 0x24, struct_drm_ctx)
|
|
DRM_IOCTL_NEW_CTX = DRM_IOW( 0x25, struct_drm_ctx)
|
|
DRM_IOCTL_RES_CTX = DRM_IOWR(0x26, struct_drm_ctx_res)
|
|
DRM_IOCTL_ADD_DRAW = DRM_IOWR(0x27, struct_drm_draw)
|
|
DRM_IOCTL_RM_DRAW = DRM_IOWR(0x28, struct_drm_draw)
|
|
DRM_IOCTL_DMA = DRM_IOWR(0x29, struct_drm_dma)
|
|
DRM_IOCTL_LOCK = DRM_IOW( 0x2a, struct_drm_lock)
|
|
DRM_IOCTL_UNLOCK = DRM_IOW( 0x2b, struct_drm_lock)
|
|
DRM_IOCTL_FINISH = DRM_IOW( 0x2c, struct_drm_lock)
|
|
DRM_IOCTL_PRIME_HANDLE_TO_FD = DRM_IOWR(0x2d, struct_drm_prime_handle)
|
|
DRM_IOCTL_PRIME_FD_TO_HANDLE = DRM_IOWR(0x2e, struct_drm_prime_handle)
|
|
DRM_IOCTL_AGP_ACQUIRE = DRM_IO( 0x30)
|
|
DRM_IOCTL_AGP_RELEASE = DRM_IO( 0x31)
|
|
DRM_IOCTL_AGP_ENABLE = DRM_IOW( 0x32, struct_drm_agp_mode)
|
|
DRM_IOCTL_AGP_INFO = DRM_IOR( 0x33, struct_drm_agp_info)
|
|
DRM_IOCTL_AGP_ALLOC = DRM_IOWR(0x34, struct_drm_agp_buffer)
|
|
DRM_IOCTL_AGP_FREE = DRM_IOW( 0x35, struct_drm_agp_buffer)
|
|
DRM_IOCTL_AGP_BIND = DRM_IOW( 0x36, struct_drm_agp_binding)
|
|
DRM_IOCTL_AGP_UNBIND = DRM_IOW( 0x37, struct_drm_agp_binding)
|
|
DRM_IOCTL_SG_ALLOC = DRM_IOWR(0x38, struct_drm_scatter_gather)
|
|
DRM_IOCTL_SG_FREE = DRM_IOW( 0x39, struct_drm_scatter_gather)
|
|
DRM_IOCTL_WAIT_VBLANK = DRM_IOWR(0x3a, union_drm_wait_vblank)
|
|
DRM_IOCTL_CRTC_GET_SEQUENCE = DRM_IOWR(0x3b, struct_drm_crtc_get_sequence)
|
|
DRM_IOCTL_CRTC_QUEUE_SEQUENCE = DRM_IOWR(0x3c, struct_drm_crtc_queue_sequence)
|
|
DRM_IOCTL_UPDATE_DRAW = DRM_IOW(0x3f, struct_drm_update_draw)
|
|
DRM_IOCTL_SYNCOBJ_CREATE = DRM_IOWR(0xBF, struct_drm_syncobj_create)
|
|
DRM_IOCTL_SYNCOBJ_DESTROY = DRM_IOWR(0xC0, struct_drm_syncobj_destroy)
|
|
DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD = DRM_IOWR(0xC1, struct_drm_syncobj_handle)
|
|
DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE = DRM_IOWR(0xC2, struct_drm_syncobj_handle)
|
|
DRM_IOCTL_SYNCOBJ_WAIT = DRM_IOWR(0xC3, struct_drm_syncobj_wait)
|
|
DRM_IOCTL_SYNCOBJ_RESET = DRM_IOWR(0xC4, struct_drm_syncobj_array)
|
|
DRM_IOCTL_SYNCOBJ_SIGNAL = DRM_IOWR(0xC5, struct_drm_syncobj_array)
|
|
DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT = DRM_IOWR(0xCA, struct_drm_syncobj_timeline_wait)
|
|
DRM_IOCTL_SYNCOBJ_QUERY = DRM_IOWR(0xCB, struct_drm_syncobj_timeline_array)
|
|
DRM_IOCTL_SYNCOBJ_TRANSFER = DRM_IOWR(0xCC, struct_drm_syncobj_transfer)
|
|
DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL = DRM_IOWR(0xCD, struct_drm_syncobj_timeline_array)
|
|
DRM_IOCTL_SYNCOBJ_EVENTFD = DRM_IOWR(0xCF, struct_drm_syncobj_eventfd)
|
|
DRM_COMMAND_BASE = 0x40
|
|
DRM_COMMAND_END = 0xA0
|
|
DRM_EVENT_VBLANK = 0x01
|
|
DRM_EVENT_FLIP_COMPLETE = 0x02
|
|
DRM_EVENT_CRTC_SEQUENCE = 0x03
|
|
DRM_AMDGPU_GEM_CREATE = 0x00
|
|
DRM_AMDGPU_GEM_MMAP = 0x01
|
|
DRM_AMDGPU_CTX = 0x02
|
|
DRM_AMDGPU_BO_LIST = 0x03
|
|
DRM_AMDGPU_CS = 0x04
|
|
DRM_AMDGPU_INFO = 0x05
|
|
DRM_AMDGPU_GEM_METADATA = 0x06
|
|
DRM_AMDGPU_GEM_WAIT_IDLE = 0x07
|
|
DRM_AMDGPU_GEM_VA = 0x08
|
|
DRM_AMDGPU_WAIT_CS = 0x09
|
|
DRM_AMDGPU_GEM_OP = 0x10
|
|
DRM_AMDGPU_GEM_USERPTR = 0x11
|
|
DRM_AMDGPU_WAIT_FENCES = 0x12
|
|
DRM_AMDGPU_VM = 0x13
|
|
DRM_AMDGPU_FENCE_TO_HANDLE = 0x14
|
|
DRM_AMDGPU_SCHED = 0x15
|
|
DRM_AMDGPU_USERQ = 0x16
|
|
DRM_AMDGPU_USERQ_SIGNAL = 0x17
|
|
DRM_AMDGPU_USERQ_WAIT = 0x18
|
|
DRM_AMDGPU_GEM_DGMA = 0x5c
|
|
DRM_AMDGPU_SEM = 0x5b
|
|
DRM_IOCTL_AMDGPU_GEM_CREATE = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_CREATE, union_drm_amdgpu_gem_create)
|
|
DRM_IOCTL_AMDGPU_GEM_MMAP = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_MMAP, union_drm_amdgpu_gem_mmap)
|
|
DRM_IOCTL_AMDGPU_CTX = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_CTX, union_drm_amdgpu_ctx)
|
|
DRM_IOCTL_AMDGPU_BO_LIST = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_BO_LIST, union_drm_amdgpu_bo_list)
|
|
DRM_IOCTL_AMDGPU_CS = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_CS, union_drm_amdgpu_cs)
|
|
DRM_IOCTL_AMDGPU_INFO = DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_INFO, struct_drm_amdgpu_info)
|
|
DRM_IOCTL_AMDGPU_GEM_METADATA = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_METADATA, struct_drm_amdgpu_gem_metadata)
|
|
DRM_IOCTL_AMDGPU_GEM_WAIT_IDLE = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_WAIT_IDLE, union_drm_amdgpu_gem_wait_idle)
|
|
DRM_IOCTL_AMDGPU_GEM_VA = DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_VA, struct_drm_amdgpu_gem_va)
|
|
DRM_IOCTL_AMDGPU_WAIT_CS = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_CS, union_drm_amdgpu_wait_cs)
|
|
DRM_IOCTL_AMDGPU_GEM_OP = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_OP, struct_drm_amdgpu_gem_op)
|
|
DRM_IOCTL_AMDGPU_GEM_USERPTR = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_USERPTR, struct_drm_amdgpu_gem_userptr)
|
|
DRM_IOCTL_AMDGPU_WAIT_FENCES = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_FENCES, union_drm_amdgpu_wait_fences)
|
|
DRM_IOCTL_AMDGPU_VM = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_VM, union_drm_amdgpu_vm)
|
|
DRM_IOCTL_AMDGPU_FENCE_TO_HANDLE = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_FENCE_TO_HANDLE, union_drm_amdgpu_fence_to_handle)
|
|
DRM_IOCTL_AMDGPU_SCHED = DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_SCHED, union_drm_amdgpu_sched)
|
|
DRM_IOCTL_AMDGPU_USERQ = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_USERQ, union_drm_amdgpu_userq)
|
|
DRM_IOCTL_AMDGPU_USERQ_SIGNAL = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_USERQ_SIGNAL, struct_drm_amdgpu_userq_signal)
|
|
DRM_IOCTL_AMDGPU_USERQ_WAIT = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_USERQ_WAIT, struct_drm_amdgpu_userq_wait)
|
|
DRM_IOCTL_AMDGPU_GEM_DGMA = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_DGMA, struct_drm_amdgpu_gem_dgma)
|
|
DRM_IOCTL_AMDGPU_SEM = DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_SEM, union_drm_amdgpu_sem)
|
|
AMDGPU_GEM_DOMAIN_CPU = 0x1
|
|
AMDGPU_GEM_DOMAIN_GTT = 0x2
|
|
AMDGPU_GEM_DOMAIN_VRAM = 0x4
|
|
AMDGPU_GEM_DOMAIN_GDS = 0x8
|
|
AMDGPU_GEM_DOMAIN_GWS = 0x10
|
|
AMDGPU_GEM_DOMAIN_OA = 0x20
|
|
AMDGPU_GEM_DOMAIN_DOORBELL = 0x40
|
|
AMDGPU_GEM_DOMAIN_DGMA = 0x400
|
|
AMDGPU_GEM_DOMAIN_DGMA_IMPORT = 0x800
|
|
AMDGPU_GEM_DOMAIN_MASK = (AMDGPU_GEM_DOMAIN_CPU | AMDGPU_GEM_DOMAIN_GTT | AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GDS | AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA | AMDGPU_GEM_DOMAIN_DOORBELL | AMDGPU_GEM_DOMAIN_DGMA | AMDGPU_GEM_DOMAIN_DGMA_IMPORT)
|
|
AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED = (1 << 0)
|
|
AMDGPU_GEM_CREATE_NO_CPU_ACCESS = (1 << 1)
|
|
AMDGPU_GEM_CREATE_CPU_GTT_USWC = (1 << 2)
|
|
AMDGPU_GEM_CREATE_VRAM_CLEARED = (1 << 3)
|
|
AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS = (1 << 5)
|
|
AMDGPU_GEM_CREATE_VM_ALWAYS_VALID = (1 << 6)
|
|
AMDGPU_GEM_CREATE_EXPLICIT_SYNC = (1 << 7)
|
|
AMDGPU_GEM_CREATE_CP_MQD_GFX9 = (1 << 8)
|
|
AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE = (1 << 9)
|
|
AMDGPU_GEM_CREATE_ENCRYPTED = (1 << 10)
|
|
AMDGPU_GEM_CREATE_PREEMPTIBLE = (1 << 11)
|
|
AMDGPU_GEM_CREATE_DISCARDABLE = (1 << 12)
|
|
AMDGPU_GEM_CREATE_COHERENT = (1 << 13)
|
|
AMDGPU_GEM_CREATE_UNCACHED = (1 << 14)
|
|
AMDGPU_GEM_CREATE_EXT_COHERENT = (1 << 15)
|
|
AMDGPU_GEM_CREATE_GFX12_DCC = (1 << 16)
|
|
AMDGPU_GEM_CREATE_SPARSE = (1 << 29)
|
|
AMDGPU_GEM_CREATE_TOP_DOWN = (1 << 30)
|
|
AMDGPU_GEM_CREATE_NO_EVICT = (1 << 31)
|
|
AMDGPU_BO_LIST_OP_CREATE = 0
|
|
AMDGPU_BO_LIST_OP_DESTROY = 1
|
|
AMDGPU_BO_LIST_OP_UPDATE = 2
|
|
AMDGPU_CTX_OP_ALLOC_CTX = 1
|
|
AMDGPU_CTX_OP_FREE_CTX = 2
|
|
AMDGPU_CTX_OP_QUERY_STATE = 3
|
|
AMDGPU_CTX_OP_QUERY_STATE2 = 4
|
|
AMDGPU_CTX_OP_GET_STABLE_PSTATE = 5
|
|
AMDGPU_CTX_OP_SET_STABLE_PSTATE = 6
|
|
AMDGPU_CTX_NO_RESET = 0
|
|
AMDGPU_CTX_GUILTY_RESET = 1
|
|
AMDGPU_CTX_INNOCENT_RESET = 2
|
|
AMDGPU_CTX_UNKNOWN_RESET = 3
|
|
AMDGPU_CTX_QUERY2_FLAGS_RESET = (1<<0)
|
|
AMDGPU_CTX_QUERY2_FLAGS_VRAMLOST = (1<<1)
|
|
AMDGPU_CTX_QUERY2_FLAGS_GUILTY = (1<<2)
|
|
AMDGPU_CTX_QUERY2_FLAGS_RAS_CE = (1<<3)
|
|
AMDGPU_CTX_QUERY2_FLAGS_RAS_UE = (1<<4)
|
|
AMDGPU_CTX_QUERY2_FLAGS_RESET_IN_PROGRESS = (1<<5)
|
|
AMDGPU_CTX_PRIORITY_UNSET = -2048
|
|
AMDGPU_CTX_PRIORITY_VERY_LOW = -1023
|
|
AMDGPU_CTX_PRIORITY_LOW = -512
|
|
AMDGPU_CTX_PRIORITY_NORMAL = 0
|
|
AMDGPU_CTX_PRIORITY_HIGH = 512
|
|
AMDGPU_CTX_PRIORITY_VERY_HIGH = 1023
|
|
AMDGPU_CTX_STABLE_PSTATE_FLAGS_MASK = 0xf
|
|
AMDGPU_CTX_STABLE_PSTATE_NONE = 0
|
|
AMDGPU_CTX_STABLE_PSTATE_STANDARD = 1
|
|
AMDGPU_CTX_STABLE_PSTATE_MIN_SCLK = 2
|
|
AMDGPU_CTX_STABLE_PSTATE_MIN_MCLK = 3
|
|
AMDGPU_CTX_STABLE_PSTATE_PEAK = 4
|
|
AMDGPU_USERQ_OP_CREATE = 1
|
|
AMDGPU_USERQ_OP_FREE = 2
|
|
AMDGPU_USERQ_CREATE_FLAGS_QUEUE_PRIORITY_MASK = 0x3
|
|
AMDGPU_USERQ_CREATE_FLAGS_QUEUE_PRIORITY_SHIFT = 0
|
|
AMDGPU_USERQ_CREATE_FLAGS_QUEUE_PRIORITY_NORMAL_LOW = 0
|
|
AMDGPU_USERQ_CREATE_FLAGS_QUEUE_PRIORITY_LOW = 1
|
|
AMDGPU_USERQ_CREATE_FLAGS_QUEUE_PRIORITY_NORMAL_HIGH = 2
|
|
AMDGPU_USERQ_CREATE_FLAGS_QUEUE_PRIORITY_HIGH = 3
|
|
AMDGPU_USERQ_CREATE_FLAGS_QUEUE_SECURE = (1 << 2)
|
|
AMDGPU_SEM_OP_CREATE_SEM = 1
|
|
AMDGPU_SEM_OP_WAIT_SEM = 2
|
|
AMDGPU_SEM_OP_SIGNAL_SEM = 3
|
|
AMDGPU_SEM_OP_DESTROY_SEM = 4
|
|
AMDGPU_SEM_OP_IMPORT_SEM = 5
|
|
AMDGPU_SEM_OP_EXPORT_SEM = 6
|
|
AMDGPU_VM_OP_RESERVE_VMID = 1
|
|
AMDGPU_VM_OP_UNRESERVE_VMID = 2
|
|
AMDGPU_SCHED_OP_PROCESS_PRIORITY_OVERRIDE = 1
|
|
AMDGPU_SCHED_OP_CONTEXT_PRIORITY_OVERRIDE = 2
|
|
AMDGPU_GEM_USERPTR_READONLY = (1 << 0)
|
|
AMDGPU_GEM_USERPTR_ANONONLY = (1 << 1)
|
|
AMDGPU_GEM_USERPTR_VALIDATE = (1 << 2)
|
|
AMDGPU_GEM_USERPTR_REGISTER = (1 << 3)
|
|
AMDGPU_GEM_DGMA_IMPORT = 0
|
|
AMDGPU_GEM_DGMA_QUERY_PHYS_ADDR = 1
|
|
AMDGPU_TILING_ARRAY_MODE_SHIFT = 0
|
|
AMDGPU_TILING_ARRAY_MODE_MASK = 0xf
|
|
AMDGPU_TILING_PIPE_CONFIG_SHIFT = 4
|
|
AMDGPU_TILING_PIPE_CONFIG_MASK = 0x1f
|
|
AMDGPU_TILING_TILE_SPLIT_SHIFT = 9
|
|
AMDGPU_TILING_TILE_SPLIT_MASK = 0x7
|
|
AMDGPU_TILING_MICRO_TILE_MODE_SHIFT = 12
|
|
AMDGPU_TILING_MICRO_TILE_MODE_MASK = 0x7
|
|
AMDGPU_TILING_BANK_WIDTH_SHIFT = 15
|
|
AMDGPU_TILING_BANK_WIDTH_MASK = 0x3
|
|
AMDGPU_TILING_BANK_HEIGHT_SHIFT = 17
|
|
AMDGPU_TILING_BANK_HEIGHT_MASK = 0x3
|
|
AMDGPU_TILING_MACRO_TILE_ASPECT_SHIFT = 19
|
|
AMDGPU_TILING_MACRO_TILE_ASPECT_MASK = 0x3
|
|
AMDGPU_TILING_NUM_BANKS_SHIFT = 21
|
|
AMDGPU_TILING_NUM_BANKS_MASK = 0x3
|
|
AMDGPU_TILING_SWIZZLE_MODE_SHIFT = 0
|
|
AMDGPU_TILING_SWIZZLE_MODE_MASK = 0x1f
|
|
AMDGPU_TILING_DCC_OFFSET_256B_SHIFT = 5
|
|
AMDGPU_TILING_DCC_OFFSET_256B_MASK = 0xFFFFFF
|
|
AMDGPU_TILING_DCC_PITCH_MAX_SHIFT = 29
|
|
AMDGPU_TILING_DCC_PITCH_MAX_MASK = 0x3FFF
|
|
AMDGPU_TILING_DCC_INDEPENDENT_64B_SHIFT = 43
|
|
AMDGPU_TILING_DCC_INDEPENDENT_64B_MASK = 0x1
|
|
AMDGPU_TILING_DCC_INDEPENDENT_128B_SHIFT = 44
|
|
AMDGPU_TILING_DCC_INDEPENDENT_128B_MASK = 0x1
|
|
AMDGPU_TILING_SCANOUT_SHIFT = 63
|
|
AMDGPU_TILING_SCANOUT_MASK = 0x1
|
|
AMDGPU_TILING_GFX12_SWIZZLE_MODE_SHIFT = 0
|
|
AMDGPU_TILING_GFX12_SWIZZLE_MODE_MASK = 0x7
|
|
AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_SHIFT = 3
|
|
AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_MASK = 0x3
|
|
AMDGPU_TILING_GFX12_DCC_NUMBER_TYPE_SHIFT = 5
|
|
AMDGPU_TILING_GFX12_DCC_NUMBER_TYPE_MASK = 0x7
|
|
AMDGPU_TILING_GFX12_DCC_DATA_FORMAT_SHIFT = 8
|
|
AMDGPU_TILING_GFX12_DCC_DATA_FORMAT_MASK = 0x3f
|
|
AMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE_SHIFT = 14
|
|
AMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE_MASK = 0x1
|
|
AMDGPU_TILING_GFX12_SCANOUT_SHIFT = 63
|
|
AMDGPU_TILING_GFX12_SCANOUT_MASK = 0x1
|
|
AMDGPU_GEM_METADATA_OP_SET_METADATA = 1
|
|
AMDGPU_GEM_METADATA_OP_GET_METADATA = 2
|
|
AMDGPU_GEM_OP_GET_GEM_CREATE_INFO = 0
|
|
AMDGPU_GEM_OP_SET_PLACEMENT = 1
|
|
AMDGPU_VA_OP_MAP = 1
|
|
AMDGPU_VA_OP_UNMAP = 2
|
|
AMDGPU_VA_OP_CLEAR = 3
|
|
AMDGPU_VA_OP_REPLACE = 4
|
|
AMDGPU_VM_DELAY_UPDATE = (1 << 0)
|
|
AMDGPU_VM_PAGE_READABLE = (1 << 1)
|
|
AMDGPU_VM_PAGE_WRITEABLE = (1 << 2)
|
|
AMDGPU_VM_PAGE_EXECUTABLE = (1 << 3)
|
|
AMDGPU_VM_PAGE_PRT = (1 << 4)
|
|
AMDGPU_VM_MTYPE_MASK = (0xf << 5)
|
|
AMDGPU_VM_MTYPE_DEFAULT = (0 << 5)
|
|
AMDGPU_VM_MTYPE_NC = (1 << 5)
|
|
AMDGPU_VM_MTYPE_WC = (2 << 5)
|
|
AMDGPU_VM_MTYPE_CC = (3 << 5)
|
|
AMDGPU_VM_MTYPE_UC = (4 << 5)
|
|
AMDGPU_VM_MTYPE_RW = (5 << 5)
|
|
AMDGPU_VM_PAGE_NOALLOC = (1 << 9)
|
|
AMDGPU_HW_IP_GFX = 0
|
|
AMDGPU_HW_IP_COMPUTE = 1
|
|
AMDGPU_HW_IP_DMA = 2
|
|
AMDGPU_HW_IP_UVD = 3
|
|
AMDGPU_HW_IP_VCE = 4
|
|
AMDGPU_HW_IP_UVD_ENC = 5
|
|
AMDGPU_HW_IP_VCN_DEC = 6
|
|
AMDGPU_HW_IP_VCN_ENC = 7
|
|
AMDGPU_HW_IP_VCN_JPEG = 8
|
|
AMDGPU_HW_IP_VPE = 9
|
|
AMDGPU_HW_IP_NUM = 10
|
|
AMDGPU_HW_IP_INSTANCE_MAX_COUNT = 1
|
|
AMDGPU_CHUNK_ID_IB = 0x01
|
|
AMDGPU_CHUNK_ID_FENCE = 0x02
|
|
AMDGPU_CHUNK_ID_DEPENDENCIES = 0x03
|
|
AMDGPU_CHUNK_ID_SYNCOBJ_IN = 0x04
|
|
AMDGPU_CHUNK_ID_SYNCOBJ_OUT = 0x05
|
|
AMDGPU_CHUNK_ID_BO_HANDLES = 0x06
|
|
AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES = 0x07
|
|
AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT = 0x08
|
|
AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL = 0x09
|
|
AMDGPU_CHUNK_ID_CP_GFX_SHADOW = 0x0a
|
|
AMDGPU_IB_FLAG_CE = (1<<0)
|
|
AMDGPU_IB_FLAG_PREAMBLE = (1<<1)
|
|
AMDGPU_IB_FLAG_PREEMPT = (1<<2)
|
|
AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE = (1 << 3)
|
|
AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID = (1 << 4)
|
|
AMDGPU_IB_FLAGS_SECURE = (1 << 5)
|
|
AMDGPU_IB_FLAG_EMIT_MEM_SYNC = (1 << 6)
|
|
AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ = 0
|
|
AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ_FD = 1
|
|
AMDGPU_FENCE_TO_HANDLE_GET_SYNC_FILE_FD = 2
|
|
AMDGPU_CS_CHUNK_CP_GFX_SHADOW_FLAGS_INIT_SHADOW = 0x1
|
|
AMDGPU_IDS_FLAGS_FUSION = 0x1
|
|
AMDGPU_IDS_FLAGS_PREEMPTION = 0x2
|
|
AMDGPU_IDS_FLAGS_TMZ = 0x4
|
|
AMDGPU_IDS_FLAGS_CONFORMANT_TRUNC_COORD = 0x8
|
|
AMDGPU_IDS_FLAGS_MODE_MASK = 0x300
|
|
AMDGPU_IDS_FLAGS_MODE_SHIFT = 0x8
|
|
AMDGPU_IDS_FLAGS_MODE_PF = 0x0
|
|
AMDGPU_IDS_FLAGS_MODE_VF = 0x1
|
|
AMDGPU_IDS_FLAGS_MODE_PT = 0x2
|
|
AMDGPU_INFO_ACCEL_WORKING = 0x00
|
|
AMDGPU_INFO_CRTC_FROM_ID = 0x01
|
|
AMDGPU_INFO_HW_IP_INFO = 0x02
|
|
AMDGPU_INFO_HW_IP_COUNT = 0x03
|
|
AMDGPU_INFO_TIMESTAMP = 0x05
|
|
AMDGPU_INFO_FW_VERSION = 0x0e
|
|
AMDGPU_INFO_FW_VCE = 0x1
|
|
AMDGPU_INFO_FW_UVD = 0x2
|
|
AMDGPU_INFO_FW_GMC = 0x03
|
|
AMDGPU_INFO_FW_GFX_ME = 0x04
|
|
AMDGPU_INFO_FW_GFX_PFP = 0x05
|
|
AMDGPU_INFO_FW_GFX_CE = 0x06
|
|
AMDGPU_INFO_FW_GFX_RLC = 0x07
|
|
AMDGPU_INFO_FW_GFX_MEC = 0x08
|
|
AMDGPU_INFO_FW_SMC = 0x0a
|
|
AMDGPU_INFO_FW_SDMA = 0x0b
|
|
AMDGPU_INFO_FW_SOS = 0x0c
|
|
AMDGPU_INFO_FW_ASD = 0x0d
|
|
AMDGPU_INFO_FW_VCN = 0x0e
|
|
AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_CNTL = 0x0f
|
|
AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_GPM_MEM = 0x10
|
|
AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_SRM_MEM = 0x11
|
|
AMDGPU_INFO_FW_DMCU = 0x12
|
|
AMDGPU_INFO_FW_TA = 0x13
|
|
AMDGPU_INFO_FW_DMCUB = 0x14
|
|
AMDGPU_INFO_FW_TOC = 0x15
|
|
AMDGPU_INFO_FW_CAP = 0x16
|
|
AMDGPU_INFO_FW_GFX_RLCP = 0x17
|
|
AMDGPU_INFO_FW_GFX_RLCV = 0x18
|
|
AMDGPU_INFO_FW_MES_KIQ = 0x19
|
|
AMDGPU_INFO_FW_MES = 0x1a
|
|
AMDGPU_INFO_FW_IMU = 0x1b
|
|
AMDGPU_INFO_FW_VPE = 0x1c
|
|
AMDGPU_INFO_NUM_BYTES_MOVED = 0x0f
|
|
AMDGPU_INFO_VRAM_USAGE = 0x10
|
|
AMDGPU_INFO_GTT_USAGE = 0x11
|
|
AMDGPU_INFO_GDS_CONFIG = 0x13
|
|
AMDGPU_INFO_VRAM_GTT = 0x14
|
|
AMDGPU_INFO_READ_MMR_REG = 0x15
|
|
AMDGPU_INFO_DEV_INFO = 0x16
|
|
AMDGPU_INFO_VIS_VRAM_USAGE = 0x17
|
|
AMDGPU_INFO_NUM_EVICTIONS = 0x18
|
|
AMDGPU_INFO_MEMORY = 0x19
|
|
AMDGPU_INFO_VCE_CLOCK_TABLE = 0x1A
|
|
AMDGPU_INFO_VBIOS = 0x1B
|
|
AMDGPU_INFO_VBIOS_SIZE = 0x1
|
|
AMDGPU_INFO_VBIOS_IMAGE = 0x2
|
|
AMDGPU_INFO_VBIOS_INFO = 0x3
|
|
AMDGPU_INFO_NUM_HANDLES = 0x1C
|
|
AMDGPU_INFO_SENSOR = 0x1D
|
|
AMDGPU_INFO_SENSOR_GFX_SCLK = 0x1
|
|
AMDGPU_INFO_SENSOR_GFX_MCLK = 0x2
|
|
AMDGPU_INFO_SENSOR_GPU_TEMP = 0x3
|
|
AMDGPU_INFO_SENSOR_GPU_LOAD = 0x4
|
|
AMDGPU_INFO_SENSOR_GPU_AVG_POWER = 0x5
|
|
AMDGPU_INFO_SENSOR_VDDNB = 0x6
|
|
AMDGPU_INFO_SENSOR_VDDGFX = 0x7
|
|
AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_SCLK = 0x8
|
|
AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_MCLK = 0x9
|
|
AMDGPU_INFO_SENSOR_PEAK_PSTATE_GFX_SCLK = 0xa
|
|
AMDGPU_INFO_SENSOR_PEAK_PSTATE_GFX_MCLK = 0xb
|
|
AMDGPU_INFO_SENSOR_GPU_INPUT_POWER = 0xc
|
|
AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS = 0x1E
|
|
AMDGPU_INFO_VRAM_LOST_COUNTER = 0x1F
|
|
AMDGPU_INFO_RAS_ENABLED_FEATURES = 0x20
|
|
AMDGPU_INFO_RAS_ENABLED_UMC = (1 << 0)
|
|
AMDGPU_INFO_RAS_ENABLED_SDMA = (1 << 1)
|
|
AMDGPU_INFO_RAS_ENABLED_GFX = (1 << 2)
|
|
AMDGPU_INFO_RAS_ENABLED_MMHUB = (1 << 3)
|
|
AMDGPU_INFO_RAS_ENABLED_ATHUB = (1 << 4)
|
|
AMDGPU_INFO_RAS_ENABLED_PCIE = (1 << 5)
|
|
AMDGPU_INFO_RAS_ENABLED_HDP = (1 << 6)
|
|
AMDGPU_INFO_RAS_ENABLED_XGMI = (1 << 7)
|
|
AMDGPU_INFO_RAS_ENABLED_DF = (1 << 8)
|
|
AMDGPU_INFO_RAS_ENABLED_SMN = (1 << 9)
|
|
AMDGPU_INFO_RAS_ENABLED_SEM = (1 << 10)
|
|
AMDGPU_INFO_RAS_ENABLED_MP0 = (1 << 11)
|
|
AMDGPU_INFO_RAS_ENABLED_MP1 = (1 << 12)
|
|
AMDGPU_INFO_RAS_ENABLED_FUSE = (1 << 13)
|
|
AMDGPU_INFO_VIDEO_CAPS = 0x21
|
|
AMDGPU_INFO_VIDEO_CAPS_DECODE = 0
|
|
AMDGPU_INFO_VIDEO_CAPS_ENCODE = 1
|
|
AMDGPU_INFO_MAX_IBS = 0x22
|
|
AMDGPU_INFO_GPUVM_FAULT = 0x23
|
|
AMDGPU_INFO_UQ_FW_AREAS = 0x24
|
|
AMDGPU_INFO_CAPABILITY = 0x50
|
|
AMDGPU_INFO_VIRTUAL_RANGE = 0x51
|
|
AMDGPU_CAPABILITY_PIN_MEM_FLAG = (1 << 0)
|
|
AMDGPU_CAPABILITY_DIRECT_GMA_FLAG = (1 << 1)
|
|
AMDGPU_INFO_MMR_SE_INDEX_SHIFT = 0
|
|
AMDGPU_INFO_MMR_SE_INDEX_MASK = 0xff
|
|
AMDGPU_INFO_MMR_SH_INDEX_SHIFT = 8
|
|
AMDGPU_INFO_MMR_SH_INDEX_MASK = 0xff
|
|
AMDGPU_VRAM_TYPE_UNKNOWN = 0
|
|
AMDGPU_VRAM_TYPE_GDDR1 = 1
|
|
AMDGPU_VRAM_TYPE_DDR2 = 2
|
|
AMDGPU_VRAM_TYPE_GDDR3 = 3
|
|
AMDGPU_VRAM_TYPE_GDDR4 = 4
|
|
AMDGPU_VRAM_TYPE_GDDR5 = 5
|
|
AMDGPU_VRAM_TYPE_HBM = 6
|
|
AMDGPU_VRAM_TYPE_DDR3 = 7
|
|
AMDGPU_VRAM_TYPE_DDR4 = 8
|
|
AMDGPU_VRAM_TYPE_GDDR6 = 9
|
|
AMDGPU_VRAM_TYPE_DDR5 = 10
|
|
AMDGPU_VRAM_TYPE_LPDDR4 = 11
|
|
AMDGPU_VRAM_TYPE_LPDDR5 = 12
|
|
AMDGPU_VRAM_TYPE_HBM3E = 13
|
|
AMDGPU_VRAM_TYPE_HBM_WIDTH = 4096
|
|
AMDGPU_VCE_CLOCK_TABLE_ENTRIES = 6
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 = 0
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 = 1
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 = 2
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC = 3
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC = 4
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG = 5
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 = 6
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 = 7
|
|
AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT = 8
|
|
AMDGPU_VMHUB_TYPE_MASK = 0xff
|
|
AMDGPU_VMHUB_TYPE_SHIFT = 0
|
|
AMDGPU_VMHUB_TYPE_GFX = 0
|
|
AMDGPU_VMHUB_TYPE_MM0 = 1
|
|
AMDGPU_VMHUB_TYPE_MM1 = 2
|
|
AMDGPU_VMHUB_IDX_MASK = 0xff00
|
|
AMDGPU_VMHUB_IDX_SHIFT = 8
|
|
AMDGPU_FAMILY_UNKNOWN = 0
|
|
AMDGPU_FAMILY_SI = 110
|
|
AMDGPU_FAMILY_CI = 120
|
|
AMDGPU_FAMILY_KV = 125
|
|
AMDGPU_FAMILY_VI = 130
|
|
AMDGPU_FAMILY_CZ = 135
|
|
AMDGPU_FAMILY_AI = 141
|
|
AMDGPU_FAMILY_RV = 142
|
|
AMDGPU_FAMILY_NV = 143
|
|
AMDGPU_FAMILY_VGH = 144
|
|
AMDGPU_FAMILY_GC_11_0_0 = 145
|
|
AMDGPU_FAMILY_YC = 146
|
|
AMDGPU_FAMILY_GC_11_0_1 = 148
|
|
AMDGPU_FAMILY_GC_10_3_6 = 149
|
|
AMDGPU_FAMILY_GC_10_3_7 = 151
|
|
AMDGPU_FAMILY_GC_11_5_0 = 150
|
|
AMDGPU_FAMILY_GC_12_0_0 = 152
|
|
AMDGPU_SUA_APERTURE_PRIVATE = 1
|
|
AMDGPU_SUA_APERTURE_SHARED = 2
|
|
AMDGPU_FREESYNC_FULLSCREEN_ENTER = 1
|
|
AMDGPU_FREESYNC_FULLSCREEN_EXIT = 2 |