aboutsummaryrefslogtreecommitdiff
path: root/graphics/dri-devel/files/patch-linuxcompat
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/dri-devel/files/patch-linuxcompat')
-rw-r--r--graphics/dri-devel/files/patch-linuxcompat141
1 files changed, 0 insertions, 141 deletions
diff --git a/graphics/dri-devel/files/patch-linuxcompat b/graphics/dri-devel/files/patch-linuxcompat
deleted file mode 100644
index 3b6af5bf5179..000000000000
--- a/graphics/dri-devel/files/patch-linuxcompat
+++ /dev/null
@@ -1,141 +0,0 @@
-Index: drm_drv.h
-===================================================================
-RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_drv.h,v
-retrieving revision 1.3
-diff -u -r1.3 programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_drv.h
---- programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_drv.h 5 Jul 2002 08:31:07 -0000 1.3
-+++ programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_drv.h 21 Aug 2002 07:13:26 -0000
-@@ -1221,27 +1221,83 @@
- }
-
- #if DRM_LINUX
-+#define LINUX_IOCTL_DRM_MIN 0x6400
-+#define LINUX_IOCTL_DRM_MAX 0x64ff
-+
- static linux_ioctl_function_t DRM( linux_ioctl);
- static struct linux_ioctl_handler DRM( handler) = {DRM( linux_ioctl), LINUX_IOCTL_DRM_MIN, LINUX_IOCTL_DRM_MAX};
- SYSINIT (DRM( register), SI_SUB_KLD, SI_ORDER_MIDDLE, linux_ioctl_register_handler, &DRM( handler));
- SYSUNINIT(DRM( unregister), SI_SUB_KLD, SI_ORDER_MIDDLE, linux_ioctl_unregister_handler, &DRM( handler));
-
-+#define LINUX_IOC_VOID IOC_VOID
-+#define LINUX_IOC_IN IOC_OUT /* Linux has the values the other way around */
-+#define LINUX_IOC_OUT IOC_IN
-+
- /*
- * Linux emulation IOCTL
- */
- static int
- DRM(linux_ioctl)(DRM_STRUCTPROC *p, struct linux_ioctl_args* args)
- {
-+ u_long cmd = args->cmd;
-+#define STK_PARAMS 128
-+ union {
-+ char stkbuf[STK_PARAMS];
-+ long align;
-+ } ubuf;
-+ caddr_t data=NULL, memp=NULL;
-+ u_int size = IOCPARM_LEN(cmd);
-+ int error;
-+#if (__FreeBSD_version >= 500000)
-+ struct file *fp;
-+#else
-+ struct file *fp = p->p_fd->fd_ofiles[args->fd];
-+#endif
-+ if ( size > STK_PARAMS ) {
-+ if ( size > IOCPARM_MAX )
-+ return EINVAL;
-+ memp = malloc( (u_long)size, DRM(M_DRM), M_WAITOK );
-+ data = memp;
-+ } else {
-+ data = ubuf.stkbuf;
-+ }
-+
-+ if ( cmd & LINUX_IOC_IN ) {
-+ if ( size ) {
-+ error = copyin( (caddr_t)args->arg, data, (u_int)size );
-+ if (error) {
-+ if ( memp )
-+ free( data, DRM(M_DRM) );
-+ return error;
-+ }
-+ } else {
-+ data = (caddr_t)args->arg;
-+ }
-+ } else if ( (cmd & LINUX_IOC_OUT) && size ) {
-+ /*
-+ * Zero the buffer so the user always
-+ * gets back something deterministic.
-+ */
-+ bzero( data, size );
-+ } else if ( cmd & LINUX_IOC_VOID ) {
-+ *(caddr_t *)data = (caddr_t)args->arg;
-+ }
-+
- #if (__FreeBSD_version >= 500000)
-- struct file *fp = p->td_proc->p_fd->fd_ofiles[args->fd];
-+ if ( (error = fget( p, args->fd, &fp )) != 0 ) {
-+ if ( memp )
-+ free( memp, DRM(M_DRM) );
-+ return (error);
-+ }
-+ error = fo_ioctl( fp, cmd, data, p->td_ucred, p );
-+ fdrop( fp, p );
- #else
-- struct file *fp = p->p_fd->fd_ofiles[args->fd];
-+ error = fo_ioctl( fp, cmd, data, p );
- #endif
-- u_long cmd = args->cmd;
-- caddr_t data = (caddr_t) args->arg;
-- /*
-- * Pass the ioctl off to our standard handler.
-- */
-- return(fo_ioctl(fp, cmd, data, p));
-+ if ( error == 0 && (cmd & LINUX_IOC_OUT) && size )
-+ error = copyout( data, (caddr_t)args->arg, (u_int)size );
-+ if ( memp )
-+ free( memp, DRM(M_DRM) );
-+ return error;
- }
- #endif /* DRM_LINUX */
-Index: drm_os_freebsd.h
-===================================================================
-RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_os_freebsd.h,v
-retrieving revision 1.3
-diff -u -r1.3 programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_os_freebsd.h
---- programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_os_freebsd.h 5 Jul 2002 08:31:07 -0000 1.3
-+++ programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_os_freebsd.h 21 Aug 2002 07:13:27 -0000
-@@ -65,7 +65,6 @@
- #include <sys/proc.h>
- #include <machine/../linux/linux.h>
- #include <machine/../linux/linux_proto.h>
--#include "drm_linux.h"
- #endif
-
- #define DRM_TIME_SLICE (hz/20) /* Time slice for GLXContexts */
-@@ -140,14 +139,18 @@
- } \
- } while (0)
-
--#define DRM_COPY_TO_USER_IOCTL(arg1, arg2, arg3) \
-- *arg1 = arg2
--#define DRM_COPY_FROM_USER_IOCTL(arg1, arg2, arg3) \
-- arg1 = *arg2
--#define DRM_COPY_TO_USER(arg1, arg2, arg3) \
-- copyout(arg2, arg1, arg3)
--#define DRM_COPY_FROM_USER(arg1, arg2, arg3) \
-- copyin(arg2, arg1, arg3)
-+#define DRM_COPY_TO_USER_IOCTL(user, kern, size) \
-+ if ( IOCPARM_LEN(cmd) != size) \
-+ return EINVAL; \
-+ *user = kern;
-+#define DRM_COPY_FROM_USER_IOCTL(kern, user, size) \
-+ if ( IOCPARM_LEN(cmd) != size) \
-+ return EINVAL; \
-+ kern = *user;
-+#define DRM_COPY_TO_USER(user, kern, size) \
-+ copyout(kern, user, size)
-+#define DRM_COPY_FROM_USER(kern, user, size) \
-+ copyin(user, kern, size)
- /* Macros for userspace access with checking readability once */
- /* FIXME: can't find equivalent functionality for nocheck yet.
- * It's be slower than linux, but should be correct.