aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linux/linux_ioctl.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2003-04-24 23:36:35 +0000
committerEric Anholt <anholt@FreeBSD.org>2003-04-24 23:36:35 +0000
commitcaa18809dfb5b8cc0cba2aa7582c125e474354c7 (patch)
tree26a9afb7dc02df11219c4c47974731c3a79ae42a /sys/compat/linux/linux_ioctl.c
parent9bc65d35f295f84595cb275aafeb492448d69e76 (diff)
downloadsrc-caa18809dfb5b8cc0cba2aa7582c125e474354c7.tar.gz
src-caa18809dfb5b8cc0cba2aa7582c125e474354c7.zip
Add an ioctl handler for the DRM. This removes the need for the DRM_LINUX
option, which has been a source of frustration for many users.
Notes
Notes: svn path=/head/; revision=113991
Diffstat (limited to 'sys/compat/linux/linux_ioctl.c')
-rw-r--r--sys/compat/linux/linux_ioctl.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c
index cda16ba1c750..9b69fdc004b3 100644
--- a/sys/compat/linux/linux_ioctl.c
+++ b/sys/compat/linux/linux_ioctl.c
@@ -69,6 +69,7 @@ static linux_ioctl_function_t linux_ioctl_socket;
static linux_ioctl_function_t linux_ioctl_sound;
static linux_ioctl_function_t linux_ioctl_termio;
static linux_ioctl_function_t linux_ioctl_private;
+static linux_ioctl_function_t linux_ioctl_drm;
static linux_ioctl_function_t linux_ioctl_special;
static struct linux_ioctl_handler cdrom_handler =
@@ -87,6 +88,8 @@ static struct linux_ioctl_handler termio_handler =
{ linux_ioctl_termio, LINUX_IOCTL_TERMIO_MIN, LINUX_IOCTL_TERMIO_MAX };
static struct linux_ioctl_handler private_handler =
{ linux_ioctl_private, LINUX_IOCTL_PRIVATE_MIN, LINUX_IOCTL_PRIVATE_MAX };
+static struct linux_ioctl_handler drm_handler =
+{ linux_ioctl_drm, LINUX_IOCTL_DRM_MIN, LINUX_IOCTL_DRM_MAX };
DATA_SET(linux_ioctl_handler_set, cdrom_handler);
DATA_SET(linux_ioctl_handler_set, vfat_handler);
@@ -96,6 +99,7 @@ DATA_SET(linux_ioctl_handler_set, socket_handler);
DATA_SET(linux_ioctl_handler_set, sound_handler);
DATA_SET(linux_ioctl_handler_set, termio_handler);
DATA_SET(linux_ioctl_handler_set, private_handler);
+DATA_SET(linux_ioctl_handler_set, drm_handler);
struct handler_element
{
@@ -2331,6 +2335,16 @@ linux_ioctl_private(struct thread *td, struct linux_ioctl_args *args)
}
/*
+ * DRM ioctl handler (sys/dev/drm)
+ */
+static int
+linux_ioctl_drm(struct thread *td, struct linux_ioctl_args *args)
+{
+ args->cmd = SETDIR(args->cmd);
+ return ioctl(td, (struct ioctl_args *)args);
+}
+
+/*
* Special ioctl handler
*/
static int