include/drm/drm_client.h
Source file repositories/reference/linux-study-clean/include/drm/drm_client.h
File Facts
- System
- Linux kernel
- Corpus path
include/drm/drm_client.h- Extension
.h- Size
- 6363 bytes
- Lines
- 246
- 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/iosys-map.hlinux/lockdep.hlinux/mutex.hlinux/types.hdrm/drm_connector.hdrm/drm_crtc.h
Detected Declarations
struct drm_client_devstruct drm_devicestruct drm_filestruct drm_framebufferstruct drm_gem_objectstruct drm_minorstruct modulestruct drm_client_funcsstruct drm_client_devstruct drm_client_buffer
Annotated Snippet
struct drm_client_funcs {
/**
* @owner: The module owner
*/
struct module *owner;
/**
* @free:
*
* Called when the client gets unregistered. Implementations should
* release all client-specific data and free the memory.
*
* This callback is optional.
*/
void (*free)(struct drm_client_dev *client);
/**
* @unregister:
*
* Called when &drm_device is unregistered. The client should respond by
* releasing its resources using drm_client_release().
*
* This callback is optional.
*/
void (*unregister)(struct drm_client_dev *client);
/**
* @restore:
*
* Called on drm_lastclose(). The first client instance in the list that
* returns zero gets the privilege to restore and no more clients are
* called. This callback is not called after @unregister has been called.
*
* Note that the core does not guarantee exclusion against concurrent
* drm_open(). Clients need to ensure this themselves, for example by
* using drm_master_internal_acquire() and drm_master_internal_release().
*
* If the caller passes force, the client should ignore any present DRM
* master and restore the display anyway.
*
* This callback is optional.
*/
int (*restore)(struct drm_client_dev *client, bool force);
/**
* @hotplug:
*
* Called on drm_kms_helper_hotplug_event().
* This callback is not called after @unregister has been called.
*
* This callback is optional.
*/
int (*hotplug)(struct drm_client_dev *client);
/**
* @suspend:
*
* Called when suspending the device.
*
* This callback is optional.
*/
int (*suspend)(struct drm_client_dev *client);
/**
* @resume:
*
* Called when resuming the device from suspend.
*
* This callback is optional.
*/
int (*resume)(struct drm_client_dev *client);
};
/**
* struct drm_client_dev - DRM client instance
*/
struct drm_client_dev {
/**
* @dev: DRM device
*/
struct drm_device *dev;
/**
* @name: Name of the client.
*/
const char *name;
/**
* @list:
*
Annotation
- Immediate include surface: `linux/iosys-map.h`, `linux/lockdep.h`, `linux/mutex.h`, `linux/types.h`, `drm/drm_connector.h`, `drm/drm_crtc.h`.
- Detected declarations: `struct drm_client_dev`, `struct drm_device`, `struct drm_file`, `struct drm_framebuffer`, `struct drm_gem_object`, `struct drm_minor`, `struct module`, `struct drm_client_funcs`, `struct drm_client_dev`, `struct drm_client_buffer`.
- 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.