staging: comedi: refactor comedi_fops to remove most of the forward declarations
authorH Hartley Sweeten <hartleys@visionengravers.com>
Fri, 8 Jun 2012 00:05:27 +0000 (17:05 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 11 Jun 2012 23:57:22 +0000 (16:57 -0700)
Move the comedi_unlocked_ioctl function in order to remove most of
the forward declarations in this file.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Mori Hess <fmhess@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/comedi_fops.c

index b3b86d48c771b21d6272894caf84baa00c585f1a..ad86347341943dfd0739a363aa10f26ea83565dc 100644 (file)
@@ -92,36 +92,6 @@ static DEFINE_SPINLOCK(comedi_file_info_table_lock);
 static struct comedi_device_file_info
 *comedi_file_info_table[COMEDI_NUM_MINORS];
 
-static int do_devconfig_ioctl(struct comedi_device *dev,
-                             struct comedi_devconfig __user *arg);
-static int do_bufconfig_ioctl(struct comedi_device *dev,
-                             struct comedi_bufconfig __user *arg);
-static int do_devinfo_ioctl(struct comedi_device *dev,
-                           struct comedi_devinfo __user *arg,
-                           struct file *file);
-static int do_subdinfo_ioctl(struct comedi_device *dev,
-                            struct comedi_subdinfo __user *arg, void *file);
-static int do_chaninfo_ioctl(struct comedi_device *dev,
-                            struct comedi_chaninfo __user *arg);
-static int do_bufinfo_ioctl(struct comedi_device *dev,
-                           struct comedi_bufinfo __user *arg, void *file);
-static int do_cmd_ioctl(struct comedi_device *dev,
-                       struct comedi_cmd __user *arg, void *file);
-static int do_lock_ioctl(struct comedi_device *dev, unsigned int arg,
-                        void *file);
-static int do_unlock_ioctl(struct comedi_device *dev, unsigned int arg,
-                          void *file);
-static int do_cancel_ioctl(struct comedi_device *dev, unsigned int arg,
-                          void *file);
-static int do_cmdtest_ioctl(struct comedi_device *dev,
-                           struct comedi_cmd __user *arg, void *file);
-static int do_insnlist_ioctl(struct comedi_device *dev,
-                            struct comedi_insnlist __user *arg, void *file);
-static int do_insn_ioctl(struct comedi_device *dev,
-                        struct comedi_insn __user *arg, void *file);
-static int do_poll_ioctl(struct comedi_device *dev, unsigned int subd,
-                        void *file);
-
 static void do_become_nonbusy(struct comedi_device *dev,
                              struct comedi_subdevice *s);
 static int do_cancel(struct comedi_device *dev, struct comedi_subdevice *s);
@@ -349,98 +319,6 @@ static struct device_attribute comedi_dev_attrs[] = {
        __ATTR_NULL
 };
 
-static long comedi_unlocked_ioctl(struct file *file, unsigned int cmd,
-                                 unsigned long arg)
-{
-       const unsigned minor = iminor(file->f_dentry->d_inode);
-       struct comedi_device_file_info *dev_file_info =
-           comedi_get_device_file_info(minor);
-       struct comedi_device *dev;
-       int rc;
-
-       if (dev_file_info == NULL || dev_file_info->device == NULL)
-               return -ENODEV;
-       dev = dev_file_info->device;
-
-       mutex_lock(&dev->mutex);
-
-       /* Device config is special, because it must work on
-        * an unconfigured device. */
-       if (cmd == COMEDI_DEVCONFIG) {
-               rc = do_devconfig_ioctl(dev,
-                                       (struct comedi_devconfig __user *)arg);
-               goto done;
-       }
-
-       if (!dev->attached) {
-               DPRINTK("no driver configured on /dev/comedi%i\n", dev->minor);
-               rc = -ENODEV;
-               goto done;
-       }
-
-       switch (cmd) {
-       case COMEDI_BUFCONFIG:
-               rc = do_bufconfig_ioctl(dev,
-                                       (struct comedi_bufconfig __user *)arg);
-               break;
-       case COMEDI_DEVINFO:
-               rc = do_devinfo_ioctl(dev, (struct comedi_devinfo __user *)arg,
-                                     file);
-               break;
-       case COMEDI_SUBDINFO:
-               rc = do_subdinfo_ioctl(dev,
-                                      (struct comedi_subdinfo __user *)arg,
-                                      file);
-               break;
-       case COMEDI_CHANINFO:
-               rc = do_chaninfo_ioctl(dev, (void __user *)arg);
-               break;
-       case COMEDI_RANGEINFO:
-               rc = do_rangeinfo_ioctl(dev, (void __user *)arg);
-               break;
-       case COMEDI_BUFINFO:
-               rc = do_bufinfo_ioctl(dev,
-                                     (struct comedi_bufinfo __user *)arg,
-                                     file);
-               break;
-       case COMEDI_LOCK:
-               rc = do_lock_ioctl(dev, arg, file);
-               break;
-       case COMEDI_UNLOCK:
-               rc = do_unlock_ioctl(dev, arg, file);
-               break;
-       case COMEDI_CANCEL:
-               rc = do_cancel_ioctl(dev, arg, file);
-               break;
-       case COMEDI_CMD:
-               rc = do_cmd_ioctl(dev, (struct comedi_cmd __user *)arg, file);
-               break;
-       case COMEDI_CMDTEST:
-               rc = do_cmdtest_ioctl(dev, (struct comedi_cmd __user *)arg,
-                                     file);
-               break;
-       case COMEDI_INSNLIST:
-               rc = do_insnlist_ioctl(dev,
-                                      (struct comedi_insnlist __user *)arg,
-                                      file);
-               break;
-       case COMEDI_INSN:
-               rc = do_insn_ioctl(dev, (struct comedi_insn __user *)arg,
-                                  file);
-               break;
-       case COMEDI_POLL:
-               rc = do_poll_ioctl(dev, arg, file);
-               break;
-       default:
-               rc = -ENOTTY;
-               break;
-       }
-
-done:
-       mutex_unlock(&dev->mutex);
-       return rc;
-}
-
 /*
        COMEDI_DEVCONFIG
        device config ioctl
@@ -1651,6 +1529,98 @@ static int do_poll_ioctl(struct comedi_device *dev, unsigned int arg,
        return -EINVAL;
 }
 
+static long comedi_unlocked_ioctl(struct file *file, unsigned int cmd,
+                                 unsigned long arg)
+{
+       const unsigned minor = iminor(file->f_dentry->d_inode);
+       struct comedi_device_file_info *dev_file_info =
+           comedi_get_device_file_info(minor);
+       struct comedi_device *dev;
+       int rc;
+
+       if (dev_file_info == NULL || dev_file_info->device == NULL)
+               return -ENODEV;
+       dev = dev_file_info->device;
+
+       mutex_lock(&dev->mutex);
+
+       /* Device config is special, because it must work on
+        * an unconfigured device. */
+       if (cmd == COMEDI_DEVCONFIG) {
+               rc = do_devconfig_ioctl(dev,
+                                       (struct comedi_devconfig __user *)arg);
+               goto done;
+       }
+
+       if (!dev->attached) {
+               DPRINTK("no driver configured on /dev/comedi%i\n", dev->minor);
+               rc = -ENODEV;
+               goto done;
+       }
+
+       switch (cmd) {
+       case COMEDI_BUFCONFIG:
+               rc = do_bufconfig_ioctl(dev,
+                                       (struct comedi_bufconfig __user *)arg);
+               break;
+       case COMEDI_DEVINFO:
+               rc = do_devinfo_ioctl(dev, (struct comedi_devinfo __user *)arg,
+                                     file);
+               break;
+       case COMEDI_SUBDINFO:
+               rc = do_subdinfo_ioctl(dev,
+                                      (struct comedi_subdinfo __user *)arg,
+                                      file);
+               break;
+       case COMEDI_CHANINFO:
+               rc = do_chaninfo_ioctl(dev, (void __user *)arg);
+               break;
+       case COMEDI_RANGEINFO:
+               rc = do_rangeinfo_ioctl(dev, (void __user *)arg);
+               break;
+       case COMEDI_BUFINFO:
+               rc = do_bufinfo_ioctl(dev,
+                                     (struct comedi_bufinfo __user *)arg,
+                                     file);
+               break;
+       case COMEDI_LOCK:
+               rc = do_lock_ioctl(dev, arg, file);
+               break;
+       case COMEDI_UNLOCK:
+               rc = do_unlock_ioctl(dev, arg, file);
+               break;
+       case COMEDI_CANCEL:
+               rc = do_cancel_ioctl(dev, arg, file);
+               break;
+       case COMEDI_CMD:
+               rc = do_cmd_ioctl(dev, (struct comedi_cmd __user *)arg, file);
+               break;
+       case COMEDI_CMDTEST:
+               rc = do_cmdtest_ioctl(dev, (struct comedi_cmd __user *)arg,
+                                     file);
+               break;
+       case COMEDI_INSNLIST:
+               rc = do_insnlist_ioctl(dev,
+                                      (struct comedi_insnlist __user *)arg,
+                                      file);
+               break;
+       case COMEDI_INSN:
+               rc = do_insn_ioctl(dev, (struct comedi_insn __user *)arg,
+                                  file);
+               break;
+       case COMEDI_POLL:
+               rc = do_poll_ioctl(dev, arg, file);
+               break;
+       default:
+               rc = -ENOTTY;
+               break;
+       }
+
+done:
+       mutex_unlock(&dev->mutex);
+       return rc;
+}
+
 static int do_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        int ret = 0;