include/uapi/drm/i915_drm.h
Source file repositories/reference/linux-study-clean/include/uapi/drm/i915_drm.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/drm/i915_drm.h- Extension
.h- Size
- 131782 bytes
- Lines
- 3917
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
drm.h
Detected Declarations
struct i915_user_extensionstruct i915_engine_class_instancestruct drm_i915_getparamstruct drm_i915_gem_initstruct drm_i915_gem_createstruct drm_i915_gem_preadstruct drm_i915_gem_pwritestruct drm_i915_gem_mmapstruct drm_i915_gem_mmap_gttstruct drm_i915_gem_mmap_offsetstruct drm_i915_gem_set_domainstruct drm_i915_gem_sw_finishstruct drm_i915_gem_relocation_entrystruct drm_i915_gem_exec_objectstruct drm_i915_gem_execbufferstruct drm_i915_gem_exec_object2struct drm_i915_gem_exec_fencestruct drm_i915_gem_execbuffer_ext_timeline_fencesstruct drm_i915_gem_execbuffer2struct drm_i915_gem_pinstruct drm_i915_gem_unpinstruct drm_i915_gem_busystruct drm_i915_gem_cachingstruct drm_i915_gem_set_tilingstruct drm_i915_gem_get_tilingstruct drm_i915_gem_get_aperturestruct drm_i915_get_pipe_from_crtc_idstruct drm_i915_gem_madvisestruct drm_intel_overlay_put_imagestruct drm_intel_overlay_attrsstruct drm_intel_sprite_colorkeystruct drm_i915_gem_waitstruct drm_i915_gem_context_createstruct drm_i915_gem_context_create_extstruct drm_i915_gem_context_paramstruct drm_i915_gem_context_param_sseustruct i915_context_engines_load_balancestruct i915_context_engines_bondstruct i915_context_engines_parallel_submitstruct i915_context_param_enginesstruct i915_gem_context_param_context_imagestruct drm_i915_gem_context_create_ext_setparamstruct drm_i915_gem_context_destroystruct drm_i915_gem_vm_controlstruct drm_i915_reg_readstruct drm_i915_reset_statsstruct drm_i915_gem_userptrstruct drm_i915_perf_open_param
Annotated Snippet
struct i915_user_extension {
/**
* @next_extension:
*
* Pointer to the next struct i915_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 i915_user_extension.
*/
__u32 name;
/**
* @flags: MBZ
*
* All undefined bits must be zero.
*/
__u32 flags;
/**
* @rsvd: MBZ
*
* Reserved for future use; must be zero.
*/
__u32 rsvd[4];
};
/*
* MOCS indexes used for GPU surfaces, defining the cacheability of the
* surface data and the coherency for this data wrt. CPU vs. GPU accesses.
*/
enum i915_mocs_table_index {
/*
* Not cached anywhere, coherency between CPU and GPU accesses is
* guaranteed.
*/
I915_MOCS_UNCACHED,
/*
* Cacheability and coherency controlled by the kernel automatically
* based on the DRM_I915_GEM_SET_CACHING IOCTL setting and the current
* usage of the surface (used for display scanout or not).
*/
I915_MOCS_PTE,
/*
* Cached in all GPU caches available on the platform.
* Coherency between CPU and GPU accesses to the surface is not
* guaranteed without extra synchronization.
*/
I915_MOCS_CACHED,
};
/**
* enum drm_i915_gem_engine_class - uapi engine type enumeration
*
* Different engines serve different roles, and there may be more than one
* engine serving each role. This enum provides a classification of the role
* of the engine, which may be used when requesting operations to be performed
* on a certain subset of engines, or for providing information about that
* group.
*/
enum drm_i915_gem_engine_class {
/**
* @I915_ENGINE_CLASS_RENDER:
*
* Render engines support instructions used for 3D, Compute (GPGPU),
* and programmable media workloads. These instructions fetch data and
* dispatch individual work items to threads that operate in parallel.
* The threads run small programs (called "kernels" or "shaders") on
* the GPU's execution units (EUs).
*/
I915_ENGINE_CLASS_RENDER = 0,
/**
* @I915_ENGINE_CLASS_COPY:
*
* Copy engines (also referred to as "blitters") support instructions
* that move blocks of data from one location in memory to another,
* or that fill a specified location of memory with fixed data.
* Copy engines can perform pre-defined logical or bitwise operations
* on the source, destination, or pattern data.
*/
I915_ENGINE_CLASS_COPY = 1,
/**
* @I915_ENGINE_CLASS_VIDEO:
*
Annotation
- Immediate include surface: `drm.h`.
- Detected declarations: `struct i915_user_extension`, `struct i915_engine_class_instance`, `struct drm_i915_getparam`, `struct drm_i915_gem_init`, `struct drm_i915_gem_create`, `struct drm_i915_gem_pread`, `struct drm_i915_gem_pwrite`, `struct drm_i915_gem_mmap`, `struct drm_i915_gem_mmap_gtt`, `struct drm_i915_gem_mmap_offset`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
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.