XenevaOS
Loading...
Searching...
No Matches
xe_drm.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2023 Intel Corporation
4 */
5
6#ifndef _UAPI_XE_DRM_H_
7#define _UAPI_XE_DRM_H_
8
9#include "drm.h"
10
11#if defined(__cplusplus)
12extern "C" {
13#endif
14
15/*
16 * Please note that modifications to all structs defined here are
17 * subject to backwards-compatibility constraints.
18 * Sections in this file are organized as follows:
19 * 1. IOCTL definition
20 * 2. Extension definition and helper structs
21 * 3. IOCTL's Query structs in the order of the Query's entries.
22 * 4. The rest of IOCTL structs in the order of IOCTL declaration.
23 */
24
90/*
91 * xe specific ioctls.
92 *
93 * The device specific ioctl range is [DRM_COMMAND_BASE, DRM_COMMAND_END) ie
94 * [0x40, 0xa0) (a0 is excluded). The numbers below are defined as offset
95 * against DRM_COMMAND_BASE and should be between [0x0, 0x60).
96 */
97#define DRM_XE_DEVICE_QUERY 0x00
98#define DRM_XE_GEM_CREATE 0x01
99#define DRM_XE_GEM_MMAP_OFFSET 0x02
100#define DRM_XE_VM_CREATE 0x03
101#define DRM_XE_VM_DESTROY 0x04
102#define DRM_XE_VM_BIND 0x05
103#define DRM_XE_EXEC_QUEUE_CREATE 0x06
104#define DRM_XE_EXEC_QUEUE_DESTROY 0x07
105#define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x08
106#define DRM_XE_EXEC 0x09
107#define DRM_XE_WAIT_USER_FENCE 0x0a
108#define DRM_XE_OBSERVATION 0x0b
109#define DRM_XE_MADVISE 0x0c
110#define DRM_XE_VM_QUERY_MEM_RANGE_ATTRS 0x0d
111#define DRM_XE_EXEC_QUEUE_SET_PROPERTY 0x0e
112#define DRM_XE_VM_GET_PROPERTY 0x0f
113
114/* Must be kept compact -- no holes */
115
116#define DRM_IOCTL_XE_DEVICE_QUERY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_DEVICE_QUERY, struct drm_xe_device_query)
117#define DRM_IOCTL_XE_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_CREATE, struct drm_xe_gem_create)
118#define DRM_IOCTL_XE_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_MMAP_OFFSET, struct drm_xe_gem_mmap_offset)
119#define DRM_IOCTL_XE_VM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_CREATE, struct drm_xe_vm_create)
120#define DRM_IOCTL_XE_VM_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_DESTROY, struct drm_xe_vm_destroy)
121#define DRM_IOCTL_XE_VM_BIND DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_BIND, struct drm_xe_vm_bind)
122#define DRM_IOCTL_XE_EXEC_QUEUE_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_CREATE, struct drm_xe_exec_queue_create)
123#define DRM_IOCTL_XE_EXEC_QUEUE_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy)
124#define DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_GET_PROPERTY, struct drm_xe_exec_queue_get_property)
125#define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec)
126#define DRM_IOCTL_XE_WAIT_USER_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
127#define DRM_IOCTL_XE_OBSERVATION DRM_IOW(DRM_COMMAND_BASE + DRM_XE_OBSERVATION, struct drm_xe_observation_param)
128#define DRM_IOCTL_XE_MADVISE DRM_IOW(DRM_COMMAND_BASE + DRM_XE_MADVISE, struct drm_xe_madvise)
129#define DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_QUERY_MEM_RANGE_ATTRS, struct drm_xe_vm_query_mem_range_attr)
130#define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property)
131#define DRM_IOCTL_XE_VM_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_GET_PROPERTY, struct drm_xe_vm_get_property)
132
202
229
248#define DRM_XE_ENGINE_CLASS_RENDER 0
249#define DRM_XE_ENGINE_CLASS_COPY 1
250#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE 2
251#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE 3
252#define DRM_XE_ENGINE_CLASS_COMPUTE 4
253#define DRM_XE_ENGINE_CLASS_VM_BIND 5
262};
263
274
290
304
374
390
425
428
429#define DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID 0
430#define DRM_XE_QUERY_CONFIG_FLAGS 1
431 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_VRAM (1 << 0)
432 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_LOW_LATENCY (1 << 1)
433 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_CPU_ADDR_MIRROR (1 << 2)
434 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_NO_COMPRESSION_HINT (1 << 3)
435 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_DISABLE_STATE_CACHE_PERF_FIX (1 << 4)
436 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_PURGING_SUPPORT (1 << 5)
437#define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT 2
438#define DRM_XE_QUERY_CONFIG_VA_BITS 3
439#define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 4
442};
443
502
518
559
560#define DRM_XE_TOPO_DSS_GEOMETRY 1
561#define DRM_XE_TOPO_DSS_COMPUTE 2
562#define DRM_XE_TOPO_L3_BANK 3
563#define DRM_XE_TOPO_EU_PER_DSS 4
564#define DRM_XE_TOPO_SIMD16_EU_PER_DSS 5
567
570
573};
574
625
634#define XE_QUERY_UC_TYPE_GUC_SUBMISSION 0
635#define XE_QUERY_UC_TYPE_HUC 1
637
640
649
652
655};
656
689
755
756#define DRM_XE_DEVICE_QUERY_ENGINES 0
757#define DRM_XE_DEVICE_QUERY_MEM_REGIONS 1
758#define DRM_XE_DEVICE_QUERY_CONFIG 2
759#define DRM_XE_DEVICE_QUERY_GT_LIST 3
760#define DRM_XE_DEVICE_QUERY_HWCONFIG 4
761#define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY 5
762#define DRM_XE_DEVICE_QUERY_ENGINE_CYCLES 6
763#define DRM_XE_DEVICE_QUERY_UC_FW_VERSION 7
764#define DRM_XE_DEVICE_QUERY_OA_UNITS 8
765#define DRM_XE_DEVICE_QUERY_PXP_STATUS 9
766#define DRM_XE_DEVICE_QUERY_EU_STALL 10
769
772
775
778};
779
844#define DRM_XE_GEM_CREATE_EXTENSION_SET_PROPERTY 0
845#define DRM_XE_GEM_CREATE_SET_PROPERTY_PXP_TYPE 0
848
854
863
864#define DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING (1 << 0)
865#define DRM_XE_GEM_CREATE_FLAG_SCANOUT (1 << 1)
866#define DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM (1 << 2)
867#define DRM_XE_GEM_CREATE_FLAG_NO_COMPRESSION (1 << 3)
872
882
889
890#define DRM_XE_GEM_CPU_CACHING_WB 1
891#define DRM_XE_GEM_CPU_CACHING_WC 2
905
908};
909
942
945
946#define DRM_XE_MMAP_OFFSET_FLAG_PCI_BARRIER (1 << 0)
949
952
955};
956
992
993#define DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE (1 << 0)
994#define DRM_XE_VM_CREATE_FLAG_LR_MODE (1 << 1)
995#define DRM_XE_VM_CREATE_FLAG_FAULT_MODE (1 << 2)
996#define DRM_XE_VM_CREATE_FLAG_NO_VM_OVERCOMMIT (1 << 3)
999
1002
1005};
1006
1020
1083
1088
1138
1141
1142 union {
1148
1151
1159 };
1160
1165
1168
1169#define DRM_XE_VM_BIND_OP_MAP 0x0
1170#define DRM_XE_VM_BIND_OP_UNMAP 0x1
1171#define DRM_XE_VM_BIND_OP_MAP_USERPTR 0x2
1172#define DRM_XE_VM_BIND_OP_UNMAP_ALL 0x3
1173#define DRM_XE_VM_BIND_OP_PREFETCH 0x4
1176
1177#define DRM_XE_VM_BIND_FLAG_READONLY (1 << 0)
1178#define DRM_XE_VM_BIND_FLAG_IMMEDIATE (1 << 1)
1179#define DRM_XE_VM_BIND_FLAG_NULL (1 << 2)
1180#define DRM_XE_VM_BIND_FLAG_DUMPABLE (1 << 3)
1181#define DRM_XE_VM_BIND_FLAG_CHECK_PXP (1 << 4)
1182#define DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR (1 << 5)
1183#define DRM_XE_VM_BIND_FLAG_MADVISE_AUTORESET (1 << 6)
1184#define DRM_XE_VM_BIND_FLAG_DECOMPRESS (1 << 7)
1187
1188#define DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC -1
1195
1198
1201};
1202
1273
1281#define FAULT_ACCESS_TYPE_READ 0
1282#define FAULT_ACCESS_TYPE_WRITE 1
1283#define FAULT_ACCESS_TYPE_ATOMIC 2
1286#define FAULT_TYPE_NOT_PRESENT 0
1287#define FAULT_TYPE_WRITE_ACCESS 1
1288#define FAULT_TYPE_ATOMIC_ACCESS 2
1291#define FAULT_LEVEL_PTE 0
1292#define FAULT_LEVEL_PDE 1
1293#define FAULT_LEVEL_PDP 2
1294#define FAULT_LEVEL_PML4 3
1295#define FAULT_LEVEL_PML5 4
1301};
1302
1332
1335
1336#define DRM_XE_VM_GET_PROPERTY_FAULTS 0
1339
1342
1345
1346 union {
1351 };
1352
1355};
1356
1434#define DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY 0
1435#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY 0
1436#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE 1
1437#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PXP_TYPE 2
1438#define DRM_XE_EXEC_QUEUE_SET_HANG_REPLAY_STATE 3
1439#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_GROUP 4
1440#define DRM_XE_MULTI_GROUP_CREATE (1ull << 63)
1441#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY 5
1442#define DRM_XE_EXEC_QUEUE_SET_DISABLE_STATE_CACHE_PERF_FIX 6
1445
1448
1451
1454
1455#define DRM_XE_EXEC_QUEUE_LOW_LATENCY_HINT (1 << 0)
1458
1461
1470
1473};
1474
1488
1498
1501
1502#define DRM_XE_EXEC_QUEUE_GET_PROPERTY_BAN 0
1505
1508
1511};
1512
1551
1552#define DRM_XE_SYNC_TYPE_SYNCOBJ 0x0
1553#define DRM_XE_SYNC_TYPE_TIMELINE_SYNCOBJ 0x1
1554#define DRM_XE_SYNC_TYPE_USER_FENCE 0x2
1557
1558#define DRM_XE_SYNC_FLAG_SIGNAL (1 << 0)
1561
1562 union {
1565
1575 };
1576
1582
1585};
1586
1639
1670
1675
1676#define DRM_XE_UFENCE_WAIT_OP_EQ 0x0
1677#define DRM_XE_UFENCE_WAIT_OP_NEQ 0x1
1678#define DRM_XE_UFENCE_WAIT_OP_GT 0x2
1679#define DRM_XE_UFENCE_WAIT_OP_GTE 0x3
1680#define DRM_XE_UFENCE_WAIT_OP_LT 0x4
1681#define DRM_XE_UFENCE_WAIT_OP_LTE 0x5
1684
1685#define DRM_XE_UFENCE_WAIT_FLAG_ABSTIME (1 << 0)
1688
1691
1694
1697
1713
1716
1719
1722};
1723
1733
1747
1766
1789
1809
1816
1819
1822
1825#define DRM_XE_OA_CAPS_BASE (1 << 0)
1826#define DRM_XE_OA_CAPS_SYNCS (1 << 1)
1827#define DRM_XE_OA_CAPS_OA_BUFFER_SIZE (1 << 2)
1828#define DRM_XE_OA_CAPS_WAIT_NUM_REPORTS (1 << 3)
1829#define DRM_XE_OA_CAPS_OAM (1 << 4)
1830#define DRM_XE_OA_CAPS_OA_UNIT_GT_ID (1 << 5)
1831
1834
1837
1840
1843
1846
1849};
1850
1889
1908
1923#define DRM_XE_OA_EXTENSION_SET_PROPERTY 0
1930
1937
1943
1946 /*
1947 * OA_FORMAT's are specified the same way as in PRM/Bspec 52198/60942,
1948 * in terms of the following quantities: a. &enum drm_xe_oa_format_type
1949 * b. Counter select c. Counter size and d. BC report. Also refer to the
1950 * oa_formats array in drivers/gpu/drm/xe/xe_oa.c.
1951 */
1952#define DRM_XE_OA_FORMAT_MASK_FMT_TYPE (0xffu << 0)
1953#define DRM_XE_OA_FORMAT_MASK_COUNTER_SEL (0xffu << 8)
1954#define DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE (0xffu << 16)
1955#define DRM_XE_OA_FORMAT_MASK_BC_REPORT (0xffu << 24)
1956
1962
1968
1974
1980
1986
1992
2002
2010
2016};
2017
2041
2051
2054#define DRM_XE_OASTATUS_MMIO_TRG_Q_FULL (1 << 3)
2055#define DRM_XE_OASTATUS_COUNTER_OVERFLOW (1 << 2)
2056#define DRM_XE_OASTATUS_BUFFER_OVERFLOW (1 << 1)
2057#define DRM_XE_OASTATUS_REPORT_LOST (1 << 0)
2058
2061};
2062
2077
2094
2095/* ID of the protected content session managed by Xe when PXP is active */
2096#define DRM_XE_PXP_HWDRM_DEFAULT_SESSION 0xf
2097
2133
2168
2200
2203
2206
2209
2210#define DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC 0
2211#define DRM_XE_MEM_RANGE_ATTR_ATOMIC 1
2212#define DRM_XE_MEM_RANGE_ATTR_PAT 2
2213#define DRM_XE_VMA_ATTR_PURGEABLE_STATE 3
2216
2217 union {
2231 struct {
2232#define DRM_XE_PREFERRED_LOC_DEFAULT_DEVICE 0
2233#define DRM_XE_PREFERRED_LOC_DEFAULT_SYSTEM -1
2242
2243#define DRM_XE_MIGRATE_ALL_PAGES 0
2244#define DRM_XE_MIGRATE_ONLY_SYSTEM_PAGES 1
2247
2256
2260
2274 struct {
2275#define DRM_XE_ATOMIC_UNDEFINED 0
2276#define DRM_XE_ATOMIC_DEVICE 1
2277#define DRM_XE_ATOMIC_GLOBAL 2
2278#define DRM_XE_ATOMIC_CPU 3
2281
2284
2288
2294 struct {
2296 __u32 val;
2297
2299 __u32 pad;
2300
2304
2344 struct {
2345#define DRM_XE_VMA_PURGEABLE_STATE_WILLNEED 0
2346#define DRM_XE_VMA_PURGEABLE_STATE_DONTNEED 1
2348 __u32 val;
2349
2351 __u32 pad;
2370 };
2371
2373 __u64 reserved[2];
2374};
2375
2391
2394
2397
2399 struct {
2402
2406
2408 struct {
2411
2415
2417 struct {
2419 __u32 val;
2420
2424
2427};
2428
2508
2532
2583
2595
2596/*
2597 * Error severity to name mapping.
2598 */
2599#define DRM_XE_RAS_ERROR_SEVERITY_NAMES { \
2600 [DRM_XE_RAS_ERR_SEV_CORRECTABLE] = "correctable-errors", \
2601 [DRM_XE_RAS_ERR_SEV_UNCORRECTABLE] = "uncorrectable-errors", \
2602}
2603
2604/*
2605 * Error component to name mapping.
2606 */
2607#define DRM_XE_RAS_ERROR_COMPONENT_NAMES { \
2608 [DRM_XE_RAS_ERR_COMP_CORE_COMPUTE] = "core-compute", \
2609 [DRM_XE_RAS_ERR_COMP_SOC_INTERNAL] = "soc-internal" \
2610}
2611
2612#if defined(__cplusplus)
2613}
2614#endif
2615
2616#endif /* _UAPI_XE_DRM_H_ */
int32_t __s32
Definition drm.h:41
uint32_t __u32
Definition drm.h:42
int64_t __s64
Definition drm.h:43
uint8_t __u8
Definition drm.h:38
uint16_t __u16
Definition drm.h:40
uint64_t __u64
Definition drm.h:44
#define _IO(type, nr)
Definition ioctl.h:51
Definition xe_drm.h:752
__u64 extensions
Definition xe_drm.h:754
__u32 query
Definition xe_drm.h:768
__u32 size
Definition xe_drm.h:771
__u64 data
Definition xe_drm.h:774
__u64 reserved[2]
Definition xe_drm.h:777
Definition xe_drm.h:247
__u16 gt_id
Definition xe_drm.h:259
__u16 pad
Definition xe_drm.h:261
__u16 engine_instance
Definition xe_drm.h:257
__u16 engine_class
Definition xe_drm.h:255
Definition xe_drm.h:267
struct drm_xe_engine_class_instance instance
Definition xe_drm.h:269
__u64 reserved[3]
Definition xe_drm.h:272
Definition xe_drm.h:1433
__u64 reserved[2]
Definition xe_drm.h:1472
__u64 instances
Definition xe_drm.h:1469
__u32 vm_id
Definition xe_drm.h:1453
__u32 exec_queue_id
Definition xe_drm.h:1460
__u16 width
Definition xe_drm.h:1447
__u32 flags
Definition xe_drm.h:1457
__u16 num_placements
Definition xe_drm.h:1450
__u64 extensions
Definition xe_drm.h:1444
Definition xe_drm.h:1478
__u32 exec_queue_id
Definition xe_drm.h:1480
__u64 reserved[2]
Definition xe_drm.h:1486
__u32 pad
Definition xe_drm.h:1483
Definition xe_drm.h:1495
__u32 exec_queue_id
Definition xe_drm.h:1500
__u32 property
Definition xe_drm.h:1504
__u64 extensions
Definition xe_drm.h:1497
__u64 value
Definition xe_drm.h:1507
__u64 reserved[2]
Definition xe_drm.h:1510
Definition xe_drm.h:2516
__u64 reserved[2]
Definition xe_drm.h:2530
__u64 extensions
Definition xe_drm.h:2518
__u32 exec_queue_id
Definition xe_drm.h:2521
__u32 property
Definition xe_drm.h:2524
__u64 value
Definition xe_drm.h:2527
Definition xe_drm.h:1607
__u32 num_syncs
Definition xe_drm.h:1616
__u16 num_batch_buffer
Definition xe_drm.h:1631
__u32 exec_queue_id
Definition xe_drm.h:1612
__u64 reserved[2]
Definition xe_drm.h:1637
__u64 syncs
Definition xe_drm.h:1619
__u64 address
Definition xe_drm.h:1625
__u16 pad[3]
Definition xe_drm.h:1634
__u64 extensions
Definition xe_drm.h:1609
Definition xe_drm.h:209
__u64 reserved[2]
Definition xe_drm.h:227
__u32 property
Definition xe_drm.h:214
__u32 pad
Definition xe_drm.h:217
__u64 value
Definition xe_drm.h:221
__u64 ptr
Definition xe_drm.h:223
struct drm_xe_user_extension base
Definition xe_drm.h:211
Definition xe_drm.h:843
__u64 size
Definition xe_drm.h:853
__u32 vm_id
Definition xe_drm.h:881
__u16 cpu_caching
Definition xe_drm.h:902
__u16 pad[3]
Definition xe_drm.h:904
__u32 handle
Definition xe_drm.h:888
__u32 placement
Definition xe_drm.h:862
__u64 extensions
Definition xe_drm.h:847
__u64 reserved[2]
Definition xe_drm.h:907
__u32 flags
Definition xe_drm.h:871
Definition xe_drm.h:939
__u64 offset
Definition xe_drm.h:951
__u32 flags
Definition xe_drm.h:948
__u32 handle
Definition xe_drm.h:944
__u64 reserved[2]
Definition xe_drm.h:954
__u64 extensions
Definition xe_drm.h:941
Definition xe_drm.h:456
__u16 ip_ver_rev
Definition xe_drm.h:496
__u32 reference_clock
Definition xe_drm.h:468
__u16 ip_ver_major
Definition xe_drm.h:492
__u16 gt_id
Definition xe_drm.h:464
__u16 ip_ver_minor
Definition xe_drm.h:494
__u64 far_mem_regions
Definition xe_drm.h:490
__u16 pad[3]
Definition xe_drm.h:466
__u64 near_mem_regions
Definition xe_drm.h:478
__u16 pad2
Definition xe_drm.h:498
__u16 tile_id
Definition xe_drm.h:462
__u64 reserved[7]
Definition xe_drm.h:500
__u16 type
Definition xe_drm.h:460
Definition xe_drm.h:2197
__u32 vm_id
Definition xe_drm.h:2208
struct drm_xe_madvise::@254::@259 purge_state_val
__u64 start
Definition xe_drm.h:2202
struct drm_xe_madvise::@254::@258 pat_index
__u64 extensions
Definition xe_drm.h:2199
struct drm_xe_madvise::@254::@257 atomic
__u32 pad
Definition xe_drm.h:2283
__u16 migration_policy
Definition xe_drm.h:2246
__u32 devmem_fd
Definition xe_drm.h:2241
struct drm_xe_madvise::@254::@256 preferred_mem_loc
__u64 range
Definition xe_drm.h:2205
__u64 reserved
Definition xe_drm.h:2258
__u32 type
Definition xe_drm.h:2215
__u32 val
Definition xe_drm.h:2280
__u64 retained_ptr
Definition xe_drm.h:2368
__u16 region_instance
Definition xe_drm.h:2255
Definition xe_drm.h:2388
__u64 end
Definition xe_drm.h:2396
__u32 val
Definition xe_drm.h:2410
__u32 reserved
Definition xe_drm.h:2413
struct drm_xe_mem_range_attr::@260 preferred_mem_loc
struct drm_xe_mem_range_attr::@262 pat_index
__u64 start
Definition xe_drm.h:2393
__u64 extensions
Definition xe_drm.h:2390
struct drm_xe_mem_range_attr::@261 atomic
__u32 devmem_fd
Definition xe_drm.h:2401
__u32 migration_policy
Definition xe_drm.h:2404
Definition xe_drm.h:309
__u16 mem_class
Definition xe_drm.h:315
__u64 reserved[6]
Definition xe_drm.h:372
__u64 used
Definition xe_drm.h:343
__u64 cpu_visible_used
Definition xe_drm.h:370
__u32 min_page_size
Definition xe_drm.h:335
__u16 instance
Definition xe_drm.h:321
__u64 cpu_visible_size
Definition xe_drm.h:361
__u64 total_size
Definition xe_drm.h:339
Definition xe_drm.h:2025
__u64 extensions
Definition xe_drm.h:2027
char uuid[36]
Definition xe_drm.h:2030
__u32 n_regs
Definition xe_drm.h:2033
__u64 regs_ptr
Definition xe_drm.h:2039
Definition xe_drm.h:2067
__u64 reserved[3]
Definition xe_drm.h:2075
__u64 extensions
Definition xe_drm.h:2069
__u64 oa_buf_size
Definition xe_drm.h:2072
Definition xe_drm.h:2048
__u64 extensions
Definition xe_drm.h:2050
__u64 reserved[3]
Definition xe_drm.h:2060
__u64 oa_status
Definition xe_drm.h:2053
Definition xe_drm.h:1813
__u64 reserved[3]
Definition xe_drm.h:1842
__u16 reserved1[3]
Definition xe_drm.h:1839
__u32 oa_unit_type
Definition xe_drm.h:1821
__u64 extensions
Definition xe_drm.h:1815
__u64 num_engines
Definition xe_drm.h:1845
__u32 oa_unit_id
Definition xe_drm.h:1818
struct drm_xe_engine_class_instance eci[]
Definition xe_drm.h:1848
__u16 gt_id
Definition xe_drm.h:1836
__u64 capabilities
Definition xe_drm.h:1824
__u64 oa_timestamp_freq
Definition xe_drm.h:1833
Definition xe_drm.h:1756
__u64 extensions
Definition xe_drm.h:1758
__u64 param
Definition xe_drm.h:1764
__u64 observation_type
Definition xe_drm.h:1760
__u64 observation_op
Definition xe_drm.h:1762
Definition xe_drm.h:422
__u64 info[]
Definition xe_drm.h:441
__u32 num_params
Definition xe_drm.h:424
__u32 pad
Definition xe_drm.h:427
Definition xe_drm.h:588
__s32 clockid
Definition xe_drm.h:601
__u32 width
Definition xe_drm.h:604
__u64 engine_cycles
Definition xe_drm.h:610
__u64 cpu_timestamp
Definition xe_drm.h:617
__u64 cpu_delta
Definition xe_drm.h:623
struct drm_xe_engine_class_instance eci
Definition xe_drm.h:593
Definition xe_drm.h:282
struct drm_xe_engine engines[]
Definition xe_drm.h:288
__u32 num_engines
Definition xe_drm.h:284
__u32 pad
Definition xe_drm.h:286
Definition xe_drm.h:2141
__u64 per_xecore_buf_size
Definition xe_drm.h:2153
__u64 extensions
Definition xe_drm.h:2143
__u64 reserved[5]
Definition xe_drm.h:2156
__u64 capabilities
Definition xe_drm.h:2146
__u64 record_size
Definition xe_drm.h:2150
__u64 num_sampling_rates
Definition xe_drm.h:2159
__u64 sampling_rates[]
Definition xe_drm.h:2166
Definition xe_drm.h:510
__u32 num_gt
Definition xe_drm.h:512
struct drm_xe_gt gt_list[]
Definition xe_drm.h:516
__u32 pad
Definition xe_drm.h:514
Definition xe_drm.h:382
struct drm_xe_mem_region mem_regions[]
Definition xe_drm.h:388
__u32 num_mem_regions
Definition xe_drm.h:384
__u32 pad
Definition xe_drm.h:386
Definition xe_drm.h:1875
__u32 num_oa_units
Definition xe_drm.h:1879
__u32 pad
Definition xe_drm.h:1881
__u64 extensions
Definition xe_drm.h:1877
__u64 oa_units[]
Definition xe_drm.h:1887
Definition xe_drm.h:682
__u32 supported_session_types
Definition xe_drm.h:687
__u32 status
Definition xe_drm.h:684
Definition xe_drm.h:556
__u32 num_bytes
Definition xe_drm.h:569
__u8 mask[]
Definition xe_drm.h:572
__u16 gt_id
Definition xe_drm.h:558
__u16 type
Definition xe_drm.h:566
Definition xe_drm.h:632
__u32 branch_ver
Definition xe_drm.h:642
__u16 uc_type
Definition xe_drm.h:636
__u32 minor_ver
Definition xe_drm.h:646
__u32 major_ver
Definition xe_drm.h:644
__u32 patch_ver
Definition xe_drm.h:648
__u64 reserved
Definition xe_drm.h:654
__u32 pad2
Definition xe_drm.h:651
__u16 pad
Definition xe_drm.h:639
Definition xe_drm.h:1548
__u64 extensions
Definition xe_drm.h:1550
__u64 reserved[2]
Definition xe_drm.h:1584
__u32 handle
Definition xe_drm.h:1564
__u32 type
Definition xe_drm.h:1556
__u64 timeline_value
Definition xe_drm.h:1581
__u64 addr
Definition xe_drm.h:1574
__u32 flags
Definition xe_drm.h:1560
Definition xe_drm.h:176
__u64 next_extension
Definition xe_drm.h:182
__u32 pad
Definition xe_drm.h:200
__u32 name
Definition xe_drm.h:193
Definition xe_drm.h:1080
__u64 addr
Definition xe_drm.h:1167
__u32 pad2
Definition xe_drm.h:1197
__u64 reserved[3]
Definition xe_drm.h:1200
__u32 flags
Definition xe_drm.h:1186
__u64 range
Definition xe_drm.h:1164
__u32 obj
Definition xe_drm.h:1087
__u64 extensions
Definition xe_drm.h:1082
__u64 userptr
Definition xe_drm.h:1150
__s64 cpu_addr_mirror_offset
Definition xe_drm.h:1158
__u32 op
Definition xe_drm.h:1175
__u16 pad
Definition xe_drm.h:1140
__u16 pat_index
Definition xe_drm.h:1137
__u32 prefetch_mem_region_instance
Definition xe_drm.h:1194
__u64 obj_offset
Definition xe_drm.h:1147
Definition xe_drm.h:1230
__u32 num_syncs
Definition xe_drm.h:1265
__u32 pad
Definition xe_drm.h:1245
__u64 extensions
Definition xe_drm.h:1232
__u32 exec_queue_id
Definition xe_drm.h:1242
__u64 syncs
Definition xe_drm.h:1268
struct drm_xe_vm_bind_op bind
Definition xe_drm.h:1252
__u64 reserved[2]
Definition xe_drm.h:1271
__u32 num_binds
Definition xe_drm.h:1248
__u32 pad2
Definition xe_drm.h:1262
__u32 vm_id
Definition xe_drm.h:1235
__u64 vector_of_binds
Definition xe_drm.h:1258
Definition xe_drm.h:989
__u32 vm_id
Definition xe_drm.h:1001
__u32 flags
Definition xe_drm.h:998
__u64 reserved[2]
Definition xe_drm.h:1004
__u64 extensions
Definition xe_drm.h:991
Definition xe_drm.h:1010
__u64 reserved[2]
Definition xe_drm.h:1018
__u32 pad
Definition xe_drm.h:1015
__u32 vm_id
Definition xe_drm.h:1012
Definition xe_drm.h:1329
__u32 size
Definition xe_drm.h:1341
__u64 data
Definition xe_drm.h:1348
__u64 value
Definition xe_drm.h:1350
__u64 reserved[3]
Definition xe_drm.h:1354
__u32 property
Definition xe_drm.h:1338
__u64 extensions
Definition xe_drm.h:1331
__u32 vm_id
Definition xe_drm.h:1334
__u32 pad
Definition xe_drm.h:1344
Definition xe_drm.h:2482
__u64 sizeof_mem_range_attr
Definition xe_drm.h:2499
__u32 vm_id
Definition xe_drm.h:2487
__u64 start
Definition xe_drm.h:2493
__u64 vector_of_mem_attr
Definition xe_drm.h:2502
__u64 reserved[2]
Definition xe_drm.h:2505
__u32 num_mem_ranges
Definition xe_drm.h:2490
__u64 extensions
Definition xe_drm.h:2484
__u64 range
Definition xe_drm.h:2496
Definition xe_drm.h:1667
__u64 value
Definition xe_drm.h:1693
__u64 addr
Definition xe_drm.h:1674
__u32 pad2
Definition xe_drm.h:1718
__u16 flags
Definition xe_drm.h:1687
__u32 pad
Definition xe_drm.h:1690
__u16 op
Definition xe_drm.h:1683
__u64 mask
Definition xe_drm.h:1696
__u32 exec_queue_id
Definition xe_drm.h:1715
__s64 timeout
Definition xe_drm.h:1712
__u64 extensions
Definition xe_drm.h:1669
__u64 reserved[2]
Definition xe_drm.h:1721
Definition xe_drm.h:1275
__u8 access_type
Definition xe_drm.h:1284
__u8 pad
Definition xe_drm.h:1298
__u8 fault_type
Definition xe_drm.h:1289
__u8 fault_level
Definition xe_drm.h:1296
__u32 address_precision
Definition xe_drm.h:1279
__u64 address
Definition xe_drm.h:1277
__u64 reserved[4]
Definition xe_drm.h:1300
drm_xe_pxp_session_type
Definition xe_drm.h:2085
@ DRM_XE_PXP_TYPE_NONE
Definition xe_drm.h:2087
@ DRM_XE_PXP_TYPE_HWDRM
Definition xe_drm.h:2092
drm_xe_ras_error_severity
Definition xe_drm.h:2575
@ DRM_XE_RAS_ERR_SEV_CORRECTABLE
Definition xe_drm.h:2577
@ DRM_XE_RAS_ERR_SEV_MAX
Definition xe_drm.h:2581
@ DRM_XE_RAS_ERR_SEV_UNCORRECTABLE
Definition xe_drm.h:2579
drm_xe_memory_class
Definition xe_drm.h:294
@ DRM_XE_MEM_REGION_CLASS_VRAM
Definition xe_drm.h:302
@ DRM_XE_MEM_REGION_CLASS_SYSMEM
Definition xe_drm.h:296
drm_xe_observation_op
Definition xe_drm.h:1737
@ DRM_XE_OBSERVATION_OP_STREAM_OPEN
Definition xe_drm.h:1739
@ DRM_XE_OBSERVATION_OP_REMOVE_CONFIG
Definition xe_drm.h:1745
@ DRM_XE_OBSERVATION_OP_ADD_CONFIG
Definition xe_drm.h:1742
drm_xe_eu_stall_property_id
Definition xe_drm.h:2112
@ DRM_XE_EU_STALL_PROP_SAMPLE_RATE
Definition xe_drm.h:2124
@ DRM_XE_EU_STALL_PROP_WAIT_NUM_REPORTS
Definition xe_drm.h:2131
@ DRM_XE_EU_STALL_PROP_GT_ID
Definition xe_drm.h:2118
drm_xe_oa_property_id
Definition xe_drm.h:1922
@ DRM_XE_OA_PROPERTY_NO_PREEMPT
Definition xe_drm.h:1985
@ DRM_XE_OA_PROPERTY_WAIT_NUM_REPORTS
Definition xe_drm.h:2015
@ DRM_XE_OA_PROPERTY_OA_UNIT_ID
Definition xe_drm.h:1929
@ DRM_XE_OA_PROPERTY_OA_DISABLED
Definition xe_drm.h:1967
@ DRM_XE_OA_PROPERTY_NUM_SYNCS
Definition xe_drm.h:1991
@ DRM_XE_OA_PROPERTY_OA_METRIC_SET
Definition xe_drm.h:1942
@ DRM_XE_OA_PROPERTY_OA_BUFFER_SIZE
Definition xe_drm.h:2009
@ DRM_XE_OA_PROPERTY_SYNCS
Definition xe_drm.h:2001
@ DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID
Definition xe_drm.h:1973
@ DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE
Definition xe_drm.h:1979
@ DRM_XE_OA_PROPERTY_OA_FORMAT
Definition xe_drm.h:1945
@ DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT
Definition xe_drm.h:1961
@ DRM_XE_OA_PROPERTY_SAMPLE_OA
Definition xe_drm.h:1936
drm_xe_oa_format_type
Definition xe_drm.h:1894
@ DRM_XE_OA_FMT_TYPE_PEC
Definition xe_drm.h:1906
@ DRM_XE_OA_FMT_TYPE_OAM
Definition xe_drm.h:1900
@ DRM_XE_OA_FMT_TYPE_OAM_MPEC
Definition xe_drm.h:1904
@ DRM_XE_OA_FMT_TYPE_OAG
Definition xe_drm.h:1896
@ DRM_XE_OA_FMT_TYPE_OAR
Definition xe_drm.h:1898
@ DRM_XE_OA_FMT_TYPE_OAC
Definition xe_drm.h:1902
drm_xe_oa_unit_type
Definition xe_drm.h:1793
@ DRM_XE_OA_UNIT_TYPE_OAM_SAG
Definition xe_drm.h:1804
@ DRM_XE_OA_UNIT_TYPE_MERT
Definition xe_drm.h:1807
@ DRM_XE_OA_UNIT_TYPE_OAM
Definition xe_drm.h:1801
@ DRM_XE_OA_UNIT_TYPE_OAG
Definition xe_drm.h:1798
drm_xe_observation_ioctls
Definition xe_drm.h:1773
@ DRM_XE_OBSERVATION_IOCTL_DISABLE
Definition xe_drm.h:1778
@ DRM_XE_OBSERVATION_IOCTL_INFO
Definition xe_drm.h:1787
@ DRM_XE_OBSERVATION_IOCTL_CONFIG
Definition xe_drm.h:1781
@ DRM_XE_OBSERVATION_IOCTL_STATUS
Definition xe_drm.h:1784
@ DRM_XE_OBSERVATION_IOCTL_ENABLE
Definition xe_drm.h:1775
drm_xe_ras_error_component
Definition xe_drm.h:2587
@ DRM_XE_RAS_ERR_COMP_SOC_INTERNAL
Definition xe_drm.h:2591
@ DRM_XE_RAS_ERR_COMP_CORE_COMPUTE
Definition xe_drm.h:2589
@ DRM_XE_RAS_ERR_COMP_MAX
Definition xe_drm.h:2593
drm_xe_observation_type
Definition xe_drm.h:1727
@ DRM_XE_OBSERVATION_TYPE_EU_STALL
Definition xe_drm.h:1731
@ DRM_XE_OBSERVATION_TYPE_OA
Definition xe_drm.h:1729