include/uapi/drm/xe_drm.h
Source file repositories/reference/linux-study-clean/include/uapi/drm/xe_drm.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/drm/xe_drm.h- Extension
.h- Size
- 92973 bytes
- Lines
- 2617
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Touches user memory; correctness depends on fault-safe copying and privilege boundary handling.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
drm.h
Detected Declarations
struct drm_xe_user_extensionstruct drm_xe_ext_set_propertystruct drm_xe_engine_class_instancestruct drm_xe_enginestruct drm_xe_query_enginesstruct drm_xe_mem_regionstruct drm_xe_query_mem_regionsstruct drm_xe_query_configstruct drm_xe_gtstruct drm_xe_query_gt_liststruct drm_xe_query_topology_maskstruct drm_xe_query_engine_cyclesstruct drm_xe_query_uc_fw_versionstruct drm_xe_query_pxp_statusstruct drm_xe_device_querystruct drm_xe_gem_createstruct drm_xe_gem_mmap_offsetstruct drm_xe_vm_createstruct drm_xe_vm_destroystruct drm_xe_vm_bind_opstruct drm_xe_vm_bindstruct xe_vm_faultstruct drm_xe_vm_get_propertystruct drm_xe_exec_queue_createstruct drm_xe_exec_queue_destroystruct drm_xe_exec_queue_get_propertystruct drm_xe_syncstruct drm_xe_execstruct drm_xe_wait_user_fencestruct drm_xe_observation_paramstruct drm_xe_oa_unitstruct drm_xe_query_oa_unitsstruct drm_xe_oa_configstruct drm_xe_oa_stream_statusstruct drm_xe_oa_stream_infostruct drm_xe_query_eu_stallstruct drm_xe_madvisestruct drm_xe_mem_range_attrstruct drm_xe_vm_query_mem_range_attrstruct drm_xe_exec_queue_set_propertyenum drm_xe_memory_classenum drm_xe_observation_typeenum drm_xe_observation_openum drm_xe_observation_ioctlsenum drm_xe_oa_unit_typeenum drm_xe_oa_format_typeenum drm_xe_oa_property_idenum drm_xe_pxp_session_type
Annotated Snippet
struct drm_xe_user_extension {
/**
* @next_extension:
*
* Pointer to the next struct drm_xe_user_extension, or zero if the end.
*/
__u64 next_extension;
/**
* @name: Name of the extension.
*
* Note that the name here is just some integer.
*
* Also note that the name space for this is not global for the whole
* driver, but rather its scope/meaning is limited to the specific piece
* of uAPI which has embedded the struct drm_xe_user_extension.
*/
__u32 name;
/**
* @pad: MBZ
*
* All undefined bits must be zero.
*/
__u32 pad;
};
/**
* struct drm_xe_ext_set_property - Generic set property extension
*
* A generic struct that allows any of the Xe's IOCTL to be extended
* with a set_property operation.
*/
struct drm_xe_ext_set_property {
/** @base: base user extension */
struct drm_xe_user_extension base;
/** @property: property to set */
__u32 property;
/** @pad: MBZ */
__u32 pad;
union {
/** @value: property value */
__u64 value;
/** @ptr: pointer to user value */
__u64 ptr;
};
/** @reserved: Reserved */
__u64 reserved[2];
};
/**
* struct drm_xe_engine_class_instance - instance of an engine class
*
* It is returned as part of the &struct drm_xe_engine, but it also is used as
* the input of engine selection for both &struct drm_xe_exec_queue_create and
* &struct drm_xe_query_engine_cycles
*
* The @engine_class can be:
* - %DRM_XE_ENGINE_CLASS_RENDER
* - %DRM_XE_ENGINE_CLASS_COPY
* - %DRM_XE_ENGINE_CLASS_VIDEO_DECODE
* - %DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE
* - %DRM_XE_ENGINE_CLASS_COMPUTE
* - %DRM_XE_ENGINE_CLASS_VM_BIND - Kernel only classes (not actual
* hardware engine class). Used for creating ordered queues of VM
* bind operations.
*/
struct drm_xe_engine_class_instance {
#define DRM_XE_ENGINE_CLASS_RENDER 0
#define DRM_XE_ENGINE_CLASS_COPY 1
#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE 2
#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE 3
#define DRM_XE_ENGINE_CLASS_COMPUTE 4
#define DRM_XE_ENGINE_CLASS_VM_BIND 5
/** @engine_class: engine class id */
__u16 engine_class;
/** @engine_instance: engine instance id */
__u16 engine_instance;
/** @gt_id: Unique ID of this GT within the PCI Device */
__u16 gt_id;
/** @pad: MBZ */
__u16 pad;
};
/**
* struct drm_xe_engine - describe hardware engine
Annotation
- Immediate include surface: `drm.h`.
- Detected declarations: `struct drm_xe_user_extension`, `struct drm_xe_ext_set_property`, `struct drm_xe_engine_class_instance`, `struct drm_xe_engine`, `struct drm_xe_query_engines`, `struct drm_xe_mem_region`, `struct drm_xe_query_mem_regions`, `struct drm_xe_query_config`, `struct drm_xe_gt`, `struct drm_xe_query_gt_list`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
- This snippet crosses the user/kernel memory boundary; validate fault handling and access checks before translating the pattern.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.