STRUCT DRM_XE_USER_EXTENSION(9)
π struct drm_xe_user_extension(9) β the Kernel API Manual, bestie edition β¨
okay so this is a page straight out of the Kernel API Manual, section 9, and it's literally the blueprint for chaining extensions together. Think of it as the friendship-bracelet clasp of the Xe uAPI: it's the base class that lets one extension point at the next one, and the next one, and so on π
πΈ NAME πΈ
struct drm_xe_user_extension β the base class for defining a chain of extensions π¦
β¨ SYNOPSIS β¨
struct drm_xe_user_extension {
__u64 next_extension;
__u32 name;
__u32 pad;
};
that's the whole thing. four fields. iconic, minimal, no notes π
π Members π
next_extensionβ a pointer to the nextstruct drm_xe_user_extension, or zero if that's the end of the line, bestie. zero means "no more, we're done here" π«Άnameβ the name of the extension. and likeβ¦ note that thenamehere is just some integer. not a string, not a label, just an integer, fr fr.
also real talk: the name space for this is not global for the whole driver. its scope/meaning is limited to the specific piece of uAPI which has embedded the struct drm_xe_user_extension. so don't go assuming an integer means the same thing everywhere, iykyk π
padβ MBZ. that's "must be zero". all undefined bits must be zero, no cap. not "probably zero", not "zero-ish" β zero π
π₯ SEE ALSO π₯
everything below is(9) and it's a whole lot, so buckle up babes:
- Kernel file
./include/uapi/drm/xe_drm.h - Xe Device Block Diagram(9)
- Xe uAPI Overview(9)
- Xe IOCTL Extensions(9)
- struct
drm_xe_ext_set_property(9) - struct
drm_xe_engine_class_instance(9) - struct
drm_xe_engine(9) - struct
drm_xe_query_engines(9) - enum
drm_xe_memory_class(9) - struct
drm_xe_mem_region(9) - struct
drm_xe_query_mem_regions(9) - struct
drm_xe_query_config(9) - struct
drm_xe_gt(9) - struct
drm_xe_query_gt_list(9) - struct
drm_xe_query_topology_mask(9) - struct
drm_xe_query_engine_cycles(9) - struct
drm_xe_query_uc_fw_version(9) - struct
drm_xe_query_pxp_status(9) - struct
drm_xe_device_query(9) - struct
drm_xe_gem_create(9) - struct
drm_xe_gem_mmap_offset(9) - struct
drm_xe_vm_create(9) - struct
drm_xe_vm_destroy(9) - struct
drm_xe_vm_bind_op(9) - struct
drm_xe_vm_bind(9) - struct
drm_xe_vm_get_property(9) - struct
drm_xe_exec_queue_create(9) - struct
drm_xe_exec_queue_destroy(9) - struct
drm_xe_exec_queue_get_property(9) - struct
drm_xe_sync(9) - struct
drm_xe_exec(9) - struct
drm_xe_wait_user_fence(9) - enum
drm_xe_observation_type(9) - enum
drm_xe_observation_op(9) - struct
drm_xe_observation_param(9) - enum
drm_xe_observation_ioctls(9) - enum
drm_xe_oa_unit_type(9) - struct
drm_xe_oa_unit(9) - struct
drm_xe_query_oa_units(9) - enum
drm_xe_oa_format_type(9) - enum
drm_xe_oa_property_id(9) - struct
drm_xe_oa_config(9) - struct
drm_xe_oa_stream_status(9) - struct
drm_xe_oa_stream_info(9) - enum
drm_xe_pxp_session_type(9) - enum
drm_xe_eu_stall_property_id(9) - struct
drm_xe_query_eu_stall(9) - struct
drm_xe_madvise(9) - struct
drm_xe_mem_range_attr(9) - struct
drm_xe_vm_query_mem_range_attr(9) - struct
drm_xe_exec_queue_set_property(9) - Xe DRM RAS(9)
- enum
drm_xe_ras_error_severity(9) - enum
drm_xe_ras_error_component(9)
okay that's the whole page, you ate it π this lil guy lives in ./include/uapi/drm, and the date on the tin is October 2026 β so mark your calendar, screenshot it, send it to the group chat, and go chain those extensions responsibly, bestie ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms