vserver 1.9.3
[linux-2.6.git] / drivers / char / drm / ffb_context.c
index d45cf9c..f518120 100644 (file)
@@ -354,11 +354,11 @@ static void FFBWait(ffb_fbcPtr ffb)
        } while (--limit);
 }
 
-int DRM(context_switch)(drm_device_t *dev, int old, int new)
+int ffb_driver_context_switch(drm_device_t *dev, int old, int new)
 {
        ffb_dev_priv_t *fpriv = (ffb_dev_priv_t *) dev->dev_private;
 
-#if DRM_DMA_HISTOGRAM
+#ifdef DRM_DMA_HISTOGRAM
         dev->ctx_start = get_cycles();
 #endif
         
@@ -380,7 +380,7 @@ int DRM(context_switch)(drm_device_t *dev, int old, int new)
         return 0;
 }
 
-int DRM(resctx)(struct inode *inode, struct file *filp, unsigned int cmd,
+int ffb_driver_resctx(struct inode *inode, struct file *filp, unsigned int cmd,
                unsigned long arg)
 {
        drm_ctx_res_t   res;
@@ -388,7 +388,7 @@ int DRM(resctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        int             i;
 
        DRM_DEBUG("%d\n", DRM_RESERVED_CONTEXTS);
-       if (copy_from_user(&res, (drm_ctx_res_t *)arg, sizeof(res)))
+       if (copy_from_user(&res, (drm_ctx_res_t __user *)arg, sizeof(res)))
                return -EFAULT;
        if (res.count >= DRM_RESERVED_CONTEXTS) {
                memset(&ctx, 0, sizeof(ctx));
@@ -401,13 +401,13 @@ int DRM(resctx)(struct inode *inode, struct file *filp, unsigned int cmd,
                }
        }
        res.count = DRM_RESERVED_CONTEXTS;
-       if (copy_to_user((drm_ctx_res_t *)arg, &res, sizeof(res)))
+       if (copy_to_user((drm_ctx_res_t __user *)arg, &res, sizeof(res)))
                return -EFAULT;
        return 0;
 }
 
 
-int DRM(addctx)(struct inode *inode, struct file *filp, unsigned int cmd,
+int ffb_driver_addctx(struct inode *inode, struct file *filp, unsigned int cmd,
                unsigned long arg)
 {
        drm_file_t      *priv   = filp->private_data;
@@ -415,7 +415,7 @@ int DRM(addctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        drm_ctx_t       ctx;
        int idx;
 
-       if (copy_from_user(&ctx, (drm_ctx_t *)arg, sizeof(ctx)))
+       if (copy_from_user(&ctx, (drm_ctx_t __user *)arg, sizeof(ctx)))
                return -EFAULT;
        idx = DRM(alloc_queue)(dev, (ctx.flags & _DRM_CONTEXT_2DONLY));
        if (idx < 0)
@@ -423,12 +423,12 @@ int DRM(addctx)(struct inode *inode, struct file *filp, unsigned int cmd,
 
        DRM_DEBUG("%d\n", ctx.handle);
        ctx.handle = idx;
-       if (copy_to_user((drm_ctx_t *)arg, &ctx, sizeof(ctx)))
+       if (copy_to_user((drm_ctx_t __user *)arg, &ctx, sizeof(ctx)))
                return -EFAULT;
        return 0;
 }
 
-int DRM(modctx)(struct inode *inode, struct file *filp, unsigned int cmd,
+int ffb_driver_modctx(struct inode *inode, struct file *filp, unsigned int cmd,
                unsigned long arg)
 {
        drm_file_t      *priv   = filp->private_data;
@@ -438,7 +438,7 @@ int DRM(modctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        drm_ctx_t ctx;
        int idx;
 
-       if (copy_from_user(&ctx, (drm_ctx_t*)arg, sizeof(ctx)))
+       if (copy_from_user(&ctx, (drm_ctx_t __user *)arg, sizeof(ctx)))
                return -EFAULT;
 
        idx = ctx.handle;
@@ -457,7 +457,7 @@ int DRM(modctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        return 0;
 }
 
-int DRM(getctx)(struct inode *inode, struct file *filp, unsigned int cmd,
+int ffb_driver_getctx(struct inode *inode, struct file *filp, unsigned int cmd,
                unsigned long arg)
 {
        drm_file_t      *priv   = filp->private_data;
@@ -467,7 +467,7 @@ int DRM(getctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        drm_ctx_t ctx;
        int idx;
 
-       if (copy_from_user(&ctx, (drm_ctx_t*)arg, sizeof(ctx)))
+       if (copy_from_user(&ctx, (drm_ctx_t __user *)arg, sizeof(ctx)))
                return -EFAULT;
 
        idx = ctx.handle;
@@ -483,38 +483,38 @@ int DRM(getctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        else
                ctx.flags = 0;
 
-       if (copy_to_user((drm_ctx_t*)arg, &ctx, sizeof(ctx)))
+       if (copy_to_user((drm_ctx_t __user *)arg, &ctx, sizeof(ctx)))
                return -EFAULT;
 
        return 0;
 }
 
-int DRM(switchctx)(struct inode *inode, struct file *filp, unsigned int cmd,
+int ffb_driver_switchctx(struct inode *inode, struct file *filp, unsigned int cmd,
                   unsigned long arg)
 {
        drm_file_t      *priv   = filp->private_data;
        drm_device_t    *dev    = priv->dev;
        drm_ctx_t       ctx;
 
-       if (copy_from_user(&ctx, (drm_ctx_t *)arg, sizeof(ctx)))
+       if (copy_from_user(&ctx, (drm_ctx_t  __user *)arg, sizeof(ctx)))
                return -EFAULT;
        DRM_DEBUG("%d\n", ctx.handle);
-       return DRM(context_switch)(dev, dev->last_context, ctx.handle);
+       return ffb_driver_context_switch(dev, dev->last_context, ctx.handle);
 }
 
-int DRM(newctx)(struct inode *inode, struct file *filp, unsigned int cmd,
+int ffb_driver_newctx(struct inode *inode, struct file *filp, unsigned int cmd,
                unsigned long arg)
 {
        drm_ctx_t       ctx;
 
-       if (copy_from_user(&ctx, (drm_ctx_t *)arg, sizeof(ctx)))
+       if (copy_from_user(&ctx, (drm_ctx_t  __user *)arg, sizeof(ctx)))
                return -EFAULT;
        DRM_DEBUG("%d\n", ctx.handle);
 
        return 0;
 }
 
-int DRM(rmctx)(struct inode *inode, struct file *filp, unsigned int cmd,
+int ffb_driver_rmctx(struct inode *inode, struct file *filp, unsigned int cmd,
               unsigned long arg)
 {
        drm_ctx_t       ctx;
@@ -523,7 +523,7 @@ int DRM(rmctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        ffb_dev_priv_t  *fpriv  = (ffb_dev_priv_t *) dev->dev_private;
        int idx;
 
-       if (copy_from_user(&ctx, (drm_ctx_t *)arg, sizeof(ctx)))
+       if (copy_from_user(&ctx, (drm_ctx_t __user *)arg, sizeof(ctx)))
                return -EFAULT;
        DRM_DEBUG("%d\n", ctx.handle);
 
@@ -537,3 +537,15 @@ int DRM(rmctx)(struct inode *inode, struct file *filp, unsigned int cmd,
        }
        return 0;
 }
+
+void ffb_set_context_ioctls(void)
+{
+       DRM(ioctls)[DRM_IOCTL_NR(DRM_IOCTL_ADD_CTX)].func = ffb_driver_addctx;
+       DRM(ioctls)[DRM_IOCTL_NR(DRM_IOCTL_RM_CTX)].func = ffb_driver_rmctx;
+       DRM(ioctls)[DRM_IOCTL_NR(DRM_IOCTL_MOD_CTX)].func = ffb_driver_modctx;
+       DRM(ioctls)[DRM_IOCTL_NR(DRM_IOCTL_GET_CTX)].func = ffb_driver_getctx;
+       DRM(ioctls)[DRM_IOCTL_NR(DRM_IOCTL_SWITCH_CTX)].func = ffb_driver_switchctx;
+       DRM(ioctls)[DRM_IOCTL_NR(DRM_IOCTL_NEW_CTX)].func = ffb_driver_newctx;
+       DRM(ioctls)[DRM_IOCTL_NR(DRM_IOCTL_RES_CTX)].func = ffb_driver_resctx;
+
+}