Go to the source code of this file.
|
struct drm_ioctl_desc - DRM driver ioctl entry @cmd: ioctl command number, without flags @flags: a bitmask of &enum drm_ioctl_flags @func: handler for this ioctl
For convenience it's easier to create these using the DRM_IOCTL_DEF_DRV() macro.
|
| #define | DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) |
| |
| #define | drm_compat_ioctl NULL |
| |
| long | drm_ioctl (struct file *filp, unsigned int cmd, uintptr_t arg) |
| |
| long | drm_ioctl_kernel (struct file *, drm_ioctl_t, void *, u32) |
| |
| bool | drm_ioctl_flags (unsigned int nr, unsigned int *flags) |
| |
| int | drm_noop (struct drm_device *dev, void *data, struct drm_file *file_priv) |
| |
| int | drm_invalid_op (struct drm_device *dev, void *data, struct drm_file *file_priv) |
| |
◆ drm_compat_ioctl
| #define drm_compat_ioctl NULL |
◆ DRM_IOCTL_DEF_DRV
| #define DRM_IOCTL_DEF_DRV |
( |
|
ioctl, |
|
|
|
_func, |
|
|
|
_flags |
|
) |
| |
Value:
.cmd = DRM_IOCTL_##
ioctl, \
.func = _func, \
.flags = _flags, \
}
XEFileIOControl ioctl
Definition dirty.cpp:38
#define DRM_COMMAND_BASE
Definition drm.h:1363
#define DRM_IOCTL_NR(n)
Definition drm_ioctl.h:70
DRM_IOCTL_DEF_DRV() - helper macro to fill out a &struct drm_ioctl_desc @ioctl: ioctl command suffix @_func: handler for the ioctl @_flags: a bitmask of &enum drm_ioctl_flags
Small helper macro to create a &struct drm_ioctl_desc entry. The ioctl command number is constructed by prepending DRM_IOCTL\_ and passing that to DRM_IOCTL_NR().
◆ DRM_IOCTL_NR
| #define DRM_IOCTL_NR |
( |
|
n | ) |
_IOC_NR(n) |
◆ DRM_IOCTL_TYPE
◆ DRM_MAJOR
◆ drm_ioctl_compat_t
| typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd, unsigned long arg) |
drm_ioctl_compat_t - compatibility DRM ioctl function type. @filp: file pointer @cmd: ioctl command code
- : DRM file this ioctl was made on
Just a typedef to make declaring an array of compatibility handlers easier. New drivers shouldn't screw up the structure layout for their ioctl structures and hence never need this.
◆ drm_ioctl_t
drm_ioctl_t - DRM ioctl function type. @dev: DRM device inode @data: private pointer of the ioctl call @file_priv: DRM file this ioctl was made on
This is the DRM ioctl typedef. Note that drm_ioctl() has alrady copied @data into kernel-space, and will also copy it back, depending upon the read/write settings in the ioctl command code.
◆ drm_ioctl_flags
enum drm_ioctl_flags - DRM ioctl flags
Various flags that can be set in &drm_ioctl_desc.flags to control how userspace can use a given ioctl.
| Enumerator |
|---|
| DRM_AUTH | @DRM_AUTH:
This is for ioctl which are used for rendering, and require that the file descriptor is either for a render node, or if it's a legacy/primary node, then it must be authenticated.
|
| DRM_MASTER | @DRM_MASTER:
This must be set for any ioctl which can change the modeset or display state. Userspace must call the ioctl through a primary node, while it is the active master.
Note that read-only modeset ioctl can also be called by unauthenticated clients, or when a master is not the currently active one.
|
| DRM_ROOT_ONLY | @DRM_ROOT_ONLY:
Anything that could potentially wreak a master file descriptor needs to have this flag set. Current that's only for the SETMASTER and DROPMASTER ioctl, which e.g. logind can call to force a non-behaving master (display compositor) into compliance.
This is equivalent to callers with the SYSADMIN capability.
|
| DRM_RENDER_ALLOW | @DRM_RENDER_ALLOW:
This is used for all ioctl needed for rendering only, for drivers which support render nodes. This should be all new render drivers, and hence it should be always set for any ioctl with DRM_AUTH set. Note though that read-only query ioctl might have this set, but have not set DRM_AUTH because they do not require authentication.
|
◆ drm_invalid_op()
◆ drm_ioctl()
| long drm_ioctl |
( |
struct file * |
filp, |
|
|
unsigned int |
cmd, |
|
|
uintptr_t |
arg |
|
) |
| |
◆ drm_ioctl_flags()
◆ drm_ioctl_kernel()
◆ drm_noop()