include/uapi/drm/panfrost_drm.h
Source file repositories/reference/linux-study-clean/include/uapi/drm/panfrost_drm.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/drm/panfrost_drm.h- Extension
.h- Size
- 13062 bytes
- Lines
- 477
- 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_panfrost_submitstruct drm_panfrost_wait_bostruct drm_panfrost_create_bostruct drm_panfrost_mmap_bostruct drm_panfrost_get_paramstruct drm_panfrost_get_bo_offsetstruct drm_panfrost_perfcnt_enablestruct drm_panfrost_perfcnt_dumpstruct drm_panfrost_madvisestruct drm_panfrost_set_label_bostruct drm_panfrost_bo_sync_opstruct drm_panfrost_sync_bostruct drm_panfrost_query_bo_infostruct panfrost_dump_object_headerstruct panfrost_dump_registersstruct drm_panfrost_jm_ctx_createstruct drm_panfrost_jm_ctx_destroyenum drm_panfrost_paramenum drm_panfrost_gpu_coherencyenum drm_panfrost_jm_ctx_priority
Annotated Snippet
struct drm_panfrost_submit {
/**
* @jc: Address to GPU mapping of job descriptor
*/
__u64 jc;
/**
* @in_syncs: An optional array of sync objects to wait on
* before starting this job.
*/
__u64 in_syncs;
/**
* @in_sync_count: Number of sync objects to wait on before
* starting this job.
*/
__u32 in_sync_count;
/**
* @out_sync: An optional sync object to place the completion fence in.
*/
__u32 out_sync;
/**
* @bo_handles: Pointer to a u32 array of the BOs that are
* referenced by the job.
*/
__u64 bo_handles;
/**
* @bo_handle_count: Number of BO handles passed in (size is
* that times 4).
*/
__u32 bo_handle_count;
/**
* @requirements: A combination of PANFROST_JD_REQ_*
*/
__u32 requirements;
/**
* @jm_ctx_handle: JM context handle. Zero if you want to use the
* default context.
*/
__u32 jm_ctx_handle;
/**
* @pad: Padding field. Must be zero.
*/
__u32 pad;
};
/**
* struct drm_panfrost_wait_bo - ioctl argument for waiting for
* completion of the last DRM_PANFROST_SUBMIT on a BO.
*
* This is useful for cases where multiple processes might be
* rendering to a BO and you want to wait for all rendering to be
* completed.
*/
struct drm_panfrost_wait_bo {
/**
* @handle: Handle for the object to wait for.
*/
__u32 handle;
/**
* @pad: Padding, must be zero-filled.
*/
__u32 pad;
/**
* @timeout_ns: absolute number of nanoseconds to wait.
*/
__s64 timeout_ns;
};
/* Valid flags to pass to drm_panfrost_create_bo.
* PANFROST_BO_WB_MMAP can't be set if PANFROST_BO_HEAP is.
*/
#define PANFROST_BO_NOEXEC 1
#define PANFROST_BO_HEAP 2
#define PANFROST_BO_WB_MMAP 4
/**
* struct drm_panfrost_create_bo - ioctl argument for creating Panfrost BOs.
*
* The flags argument is a bit mask of PANFROST_BO_* flags.
*/
struct drm_panfrost_create_bo {
/**
* @size: size of shmem/BO area to create (bytes)
*/
__u32 size;
/**
* @flags: see PANFROST_BO_* flags
*/
__u32 flags;
/**
* @handle: Returned GEM handle for the BO.
Annotation
- Immediate include surface: `drm.h`.
- Detected declarations: `struct drm_panfrost_submit`, `struct drm_panfrost_wait_bo`, `struct drm_panfrost_create_bo`, `struct drm_panfrost_mmap_bo`, `struct drm_panfrost_get_param`, `struct drm_panfrost_get_bo_offset`, `struct drm_panfrost_perfcnt_enable`, `struct drm_panfrost_perfcnt_dump`, `struct drm_panfrost_madvise`, `struct drm_panfrost_set_label_bo`.
- 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.