include/drm/drm_auth.h
Source file repositories/reference/linux-study-clean/include/drm/drm_auth.h
File Facts
- System
- Linux kernel
- Corpus path
include/drm/drm_auth.h- Extension
.h- Size
- 4280 bytes
- Lines
- 140
- 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
linux/idr.hlinux/kref.hlinux/wait.h
Detected Declarations
struct drm_filestruct drm_master
Annotated Snippet
struct drm_master {
struct kref refcount;
struct drm_device *dev;
/**
* @unique: Unique identifier: e.g. busid. Protected by
* &drm_device.master_mutex.
*/
char *unique;
/**
* @unique_len: Length of unique field. Protected by
* &drm_device.master_mutex.
*/
int unique_len;
/**
* @magic_map: Map of used authentication tokens. Protected by
* &drm_device.master_mutex.
*/
struct idr magic_map;
void *driver_priv;
/**
* @lessor:
*
* Lease grantor, only set if this &struct drm_master represents a
* lessee holding a lease of objects from @lessor. Full owners of the
* device have this set to NULL.
*
* The lessor does not change once it's set in drm_lease_create(), and
* each lessee holds a reference to its lessor that it releases upon
* being destroyed in drm_lease_destroy().
*
* See also the :ref:`section on display resource leasing
* <drm_leasing>`.
*/
struct drm_master *lessor;
/**
* @lessee_id:
*
* ID for lessees. Owners (i.e. @lessor is NULL) always have ID 0.
* Protected by &drm_device.mode_config's &drm_mode_config.idr_mutex.
*/
int lessee_id;
/**
* @lessee_list:
*
* List entry of lessees of @lessor, where they are linked to @lessees.
* Not used for owners. Protected by &drm_device.mode_config's
* &drm_mode_config.idr_mutex.
*/
struct list_head lessee_list;
/**
* @lessees:
*
* List of drm_masters leasing from this one. Protected by
* &drm_device.mode_config's &drm_mode_config.idr_mutex.
*
* This list is empty if no leases have been granted, or if all lessees
* have been destroyed. Since lessors are referenced by all their
* lessees, this master cannot be destroyed unless the list is empty.
*/
struct list_head lessees;
/**
* @leases:
*
* Objects leased to this drm_master. Protected by
* &drm_device.mode_config's &drm_mode_config.idr_mutex.
*
* Objects are leased all together in drm_lease_create(), and are
* removed all together when the lease is revoked.
*/
struct idr leases;
/**
* @lessee_idr:
*
* All lessees under this owner (only used where @lessor is NULL).
* Protected by &drm_device.mode_config's &drm_mode_config.idr_mutex.
*/
struct idr lessee_idr;
};
struct drm_master *drm_master_get(struct drm_master *master);
struct drm_master *drm_file_get_master(struct drm_file *file_priv);
void drm_master_put(struct drm_master **master);
bool drm_is_current_master(struct drm_file *fpriv);
Annotation
- Immediate include surface: `linux/idr.h`, `linux/kref.h`, `linux/wait.h`.
- Detected declarations: `struct drm_file`, `struct drm_master`.
- 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.