include/uapi/drm/asahi_drm.h
Source file repositories/reference/linux-study-clean/include/uapi/drm/asahi_drm.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/drm/asahi_drm.h- Extension
.h- Size
- 35836 bytes
- Lines
- 1195
- 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 drm_asahi_params_globalstruct drm_asahi_get_paramsstruct drm_asahi_vm_createstruct drm_asahi_vm_destroystruct drm_asahi_gem_createstruct drm_asahi_gem_mmap_offsetstruct drm_asahi_gem_bind_opstruct drm_asahi_vm_bindstruct drm_asahi_gem_bind_objectstruct drm_asahi_queue_createstruct drm_asahi_queue_destroystruct drm_asahi_syncstruct drm_asahi_cmd_headerstruct drm_asahi_submitstruct drm_asahi_attachmentstruct drm_asahi_zls_bufferstruct drm_asahi_timestampstruct drm_asahi_timestampsstruct drm_asahi_helper_programstruct drm_asahi_bg_eotstruct drm_asahi_cmd_renderstruct drm_asahi_cmd_computestruct drm_asahi_get_timeenum drm_asahi_ioctl_idenum drm_asahi_featureenum drm_asahi_gem_flagsenum drm_asahi_bind_flagsenum drm_asahi_bind_object_openum drm_asahi_bind_object_flagsenum drm_asahi_cmd_typeenum drm_asahi_priorityenum drm_asahi_sync_typeenum drm_asahi_render_flags
Annotated Snippet
struct drm_asahi_params_global {
/** @features: Feature bits from drm_asahi_feature */
__u64 features;
/** @gpu_generation: GPU generation, e.g. 13 for G13G */
__u32 gpu_generation;
/** @gpu_variant: GPU variant as a character, e.g. 'C' for G13C */
__u32 gpu_variant;
/**
* @gpu_revision: GPU revision in BCD, e.g. 0x00 for 'A0' or
* 0x21 for 'C1'
*/
__u32 gpu_revision;
/** @chip_id: Chip ID in BCD, e.g. 0x8103 for T8103 */
__u32 chip_id;
/** @num_dies: Number of dies in the SoC */
__u32 num_dies;
/** @num_clusters_total: Number of GPU clusters (across all dies) */
__u32 num_clusters_total;
/**
* @num_cores_per_cluster: Number of logical cores per cluster
* (including inactive/nonexistent)
*/
__u32 num_cores_per_cluster;
/** @max_frequency_khz: Maximum GPU core clock frequency */
__u32 max_frequency_khz;
/** @core_masks: Bitmask of present/enabled cores per cluster */
__u64 core_masks[DRM_ASAHI_MAX_CLUSTERS];
/**
* @vm_start: VM range start VMA. Together with @vm_end, this defines
* the window of valid GPU VAs. Userspace is expected to subdivide VAs
* out of this window.
*
* This window contains all virtual addresses that userspace needs to
* know about. There may be kernel-internal GPU VAs outside this range,
* but that detail is not relevant here.
*/
__u64 vm_start;
/** @vm_end: VM range end VMA */
__u64 vm_end;
/**
* @vm_kernel_min_size: Minimum kernel VMA window size.
*
* When creating a VM, userspace is required to carve out a section of
* virtual addresses (within the range given by @vm_start and
* @vm_end). The kernel will allocate various internal structures
* within the specified VA range.
*
* Allowing userspace to choose the VA range for the kernel, rather than
* the kernel reserving VAs and requiring userspace to cope, can assist
* in implementing SVM.
*/
__u64 vm_kernel_min_size;
/**
* @max_commands_per_submission: Maximum number of supported commands
* per submission. This mirrors firmware limits. Userspace must split up
* larger command buffers, which may require inserting additional
* synchronization.
*/
__u32 max_commands_per_submission;
/**
* @max_attachments: Maximum number of drm_asahi_attachment's per
* command
*/
__u32 max_attachments;
/**
* @command_timestamp_frequency_hz: Timebase frequency for timestamps
* written during command execution, specified via drm_asahi_timestamp
* structures. As this rate is controlled by the firmware, it is a
* queryable parameter.
*
* Userspace must divide by this frequency to convert timestamps to
* seconds, rather than hardcoding a particular firmware's rate.
*/
__u64 command_timestamp_frequency_hz;
};
Annotation
- Immediate include surface: `drm.h`.
- Detected declarations: `struct drm_asahi_params_global`, `struct drm_asahi_get_params`, `struct drm_asahi_vm_create`, `struct drm_asahi_vm_destroy`, `struct drm_asahi_gem_create`, `struct drm_asahi_gem_mmap_offset`, `struct drm_asahi_gem_bind_op`, `struct drm_asahi_vm_bind`, `struct drm_asahi_gem_bind_object`, `struct drm_asahi_queue_create`.
- 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.