Staging: comedi: Remove comedi_subdevice typedef
[pandora-kernel.git] / drivers / staging / comedi / comedidev.h
index 3735355..4fba9e7 100644 (file)
@@ -26,7 +26,6 @@
 
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/kdev_t.h>
 #include <linux/slab.h>
 #include <linux/errno.h>
@@ -36,7 +35,6 @@
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/vmalloc.h>
-#include <linux/mm.h>
 #include "interrupt.h"
 #include <linux/dma-mapping.h>
 #include <linux/uaccess.h>
@@ -55,9 +53,9 @@
 
 #define COMEDI_INITCLEANUP_NOMODULE(x)                                 \
        static int __init x ## _init_module(void)                       \
-               {return comedi_driver_register(&(x));                 \
+               {return comedi_driver_register(&(x)); }                 \
        static void __exit x ## _cleanup_module(void)                   \
-               {comedi_driver_unregister(&(x));                      \
+               {comedi_driver_unregister(&(x)); }                      \
        module_init(x ## _init_module);                                 \
        module_exit(x ## _cleanup_module);                                      \
 
 #define PCI_VENDOR_ID_MEILHAUS         0x1402
 
 #define COMEDI_NUM_MINORS 0x100
-#define COMEDI_NUM_LEGACY_MINORS 0x10
 #define COMEDI_NUM_BOARD_MINORS 0x30
 #define COMEDI_FIRST_SUBDEVICE_MINOR COMEDI_NUM_BOARD_MINORS
 
-typedef struct comedi_device_struct comedi_device;
-typedef struct comedi_subdevice_struct comedi_subdevice;
 typedef struct comedi_async_struct comedi_async;
 typedef struct comedi_driver_struct comedi_driver;
 typedef struct comedi_lrange_struct comedi_lrange;
@@ -135,8 +130,8 @@ typedef struct device device_create_result_type;
 #define COMEDI_DEVICE_CREATE(cs, parent, devt, drvdata, device, fmt...) \
        device_create(cs, ((parent) ? (parent) : (device)), devt, drvdata, fmt)
 
-struct comedi_subdevice_struct {
-       comedi_device *device;
+struct comedi_subdevice {
+       struct comedi_device *device;
        int type;
        int n_chan;
        volatile int subdev_flags;
@@ -153,8 +148,8 @@ struct comedi_subdevice_struct {
 
        int io_bits;
 
-       lsampl_t maxdata;       /* if maxdata==0, use list */
-       const lsampl_t *maxdata_list;   /* list is channel specific */
+       unsigned int maxdata;   /* if maxdata==0, use list */
+       const unsigned int *maxdata_list;       /* list is channel specific */
 
        unsigned int flags;
        const unsigned int *flaglist;
@@ -166,27 +161,27 @@ struct comedi_subdevice_struct {
 
        unsigned int *chanlist; /* driver-owned chanlist (not used) */
 
-       int (*insn_read) (comedi_device *, comedi_subdevice *, comedi_insn *,
-               lsampl_t *);
-       int (*insn_write) (comedi_device *, comedi_subdevice *, comedi_insn *,
-               lsampl_t *);
-       int (*insn_bits) (comedi_device *, comedi_subdevice *, comedi_insn *,
-               lsampl_t *);
-       int (*insn_config) (comedi_device *, comedi_subdevice *, comedi_insn *,
-               lsampl_t *);
-
-       int (*do_cmd) (comedi_device *, comedi_subdevice *);
-       int (*do_cmdtest) (comedi_device *, comedi_subdevice *, comedi_cmd *);
-       int (*poll) (comedi_device *, comedi_subdevice *);
-       int (*cancel) (comedi_device *, comedi_subdevice *);
-       /* int (*do_lock)(comedi_device *,comedi_subdevice *); */
-       /* int (*do_unlock)(comedi_device *,comedi_subdevice *); */
+       int (*insn_read) (struct comedi_device *, struct comedi_subdevice *, comedi_insn *,
+               unsigned int *);
+       int (*insn_write) (struct comedi_device *, struct comedi_subdevice *, comedi_insn *,
+               unsigned int *);
+       int (*insn_bits) (struct comedi_device *, struct comedi_subdevice *, comedi_insn *,
+               unsigned int *);
+       int (*insn_config) (struct comedi_device *, struct comedi_subdevice *, comedi_insn *,
+               unsigned int *);
+
+       int (*do_cmd) (struct comedi_device *, struct comedi_subdevice *);
+       int (*do_cmdtest) (struct comedi_device *, struct comedi_subdevice *, comedi_cmd *);
+       int (*poll) (struct comedi_device *, struct comedi_subdevice *);
+       int (*cancel) (struct comedi_device *, struct comedi_subdevice *);
+       /* int (*do_lock)(struct comedi_device *,struct comedi_subdevice *); */
+       /* int (*do_unlock)(struct comedi_device *,struct comedi_subdevice *); */
 
        /* called when the buffer changes */
-       int (*buf_change) (comedi_device *dev, comedi_subdevice *s,
+       int (*buf_change) (struct comedi_device *dev, struct comedi_subdevice *s,
                unsigned long new_size);
 
-       void (*munge) (comedi_device *dev, comedi_subdevice *s, void *data,
+       void (*munge) (struct comedi_device *dev, struct comedi_subdevice *s, void *data,
                unsigned int num_bytes, unsigned int start_chan_index);
        enum dma_data_direction async_dma_dir;
 
@@ -202,7 +197,7 @@ struct comedi_buf_page {
 };
 
 struct comedi_async_struct {
-       comedi_subdevice *subdevice;
+       struct comedi_subdevice *subdevice;
 
        void *prealloc_buf;     /* pre-allocated buffer */
        unsigned int prealloc_bufsz;    /* buffer size, in bytes */
@@ -241,7 +236,7 @@ struct comedi_async_struct {
        int (*cb_func) (unsigned int flags, void *);
        void *cb_arg;
 
-       int (*inttrig) (comedi_device *dev, comedi_subdevice *s,
+       int (*inttrig) (struct comedi_device *dev, struct comedi_subdevice *s,
                        unsigned int x);
 };
 
@@ -250,8 +245,8 @@ struct comedi_driver_struct {
 
        const char *driver_name;
        struct module *module;
-       int (*attach) (comedi_device *, comedi_devconfig *);
-       int (*detach) (comedi_device *);
+       int (*attach) (struct comedi_device *, comedi_devconfig *);
+       int (*detach) (struct comedi_device *);
 
        /* number of elements in board_name and board_id arrays */
        unsigned int num_names;
@@ -260,7 +255,7 @@ struct comedi_driver_struct {
        int offset;
 };
 
-struct comedi_device_struct {
+struct comedi_device {
        int use_count;
        comedi_driver *driver;
        void *private;
@@ -281,25 +276,25 @@ struct comedi_device_struct {
        int in_request_module;
 
        int n_subdevices;
-       comedi_subdevice *subdevices;
+       struct comedi_subdevice *subdevices;
 
        /* dumb */
        unsigned long iobase;
        unsigned int irq;
 
-       comedi_subdevice *read_subdev;
-       comedi_subdevice *write_subdev;
+       struct comedi_subdevice *read_subdev;
+       struct comedi_subdevice *write_subdev;
 
        struct fasync_struct *async_queue;
 
-       void (*open) (comedi_device *dev);
-       void (*close) (comedi_device *dev);
+       void (*open) (struct comedi_device *dev);
+       void (*close) (struct comedi_device *dev);
 };
 
 struct comedi_device_file_info {
-       comedi_device *device;
-       comedi_subdevice *read_subdevice;
-       comedi_subdevice *write_subdevice;
+       struct comedi_device *device;
+       struct comedi_subdevice *read_subdevice;
+       struct comedi_subdevice *write_subdevice;
 };
 
 #ifdef CONFIG_COMEDI_DEBUG
@@ -312,8 +307,8 @@ static const int comedi_debug;
  * function prototypes
  */
 
-void comedi_event(comedi_device *dev, comedi_subdevice *s);
-void comedi_error(const comedi_device *dev, const char *s);
+void comedi_event(struct comedi_device *dev, struct comedi_subdevice *s);
+void comedi_error(const struct comedi_device *dev, const char *s);
 
 /* we can expand the number of bits used to encode devices/subdevices into
  the minor number soon, after more distros support > 8 bit minor numbers
@@ -327,7 +322,7 @@ static const unsigned COMEDI_SUBDEVICE_MINOR_OFFSET = 1;
 
 struct comedi_device_file_info *comedi_get_device_file_info(unsigned minor);
 
-static inline comedi_subdevice *comedi_get_read_subdevice(
+static inline struct comedi_subdevice *comedi_get_read_subdevice(
                                const struct comedi_device_file_info *info)
 {
        if (info->read_subdevice)
@@ -337,7 +332,7 @@ static inline comedi_subdevice *comedi_get_read_subdevice(
        return info->device->read_subdev;
 }
 
-static inline comedi_subdevice *comedi_get_write_subdevice(
+static inline struct comedi_subdevice *comedi_get_write_subdevice(
                                const struct comedi_device_file_info *info)
 {
        if (info->write_subdevice)
@@ -347,17 +342,17 @@ static inline comedi_subdevice *comedi_get_write_subdevice(
        return info->device->write_subdev;
 }
 
-void comedi_device_detach(comedi_device *dev);
-int comedi_device_attach(comedi_device *dev, comedi_devconfig *it);
+void comedi_device_detach(struct comedi_device *dev);
+int comedi_device_attach(struct comedi_device *dev, comedi_devconfig *it);
 int comedi_driver_register(comedi_driver *);
 int comedi_driver_unregister(comedi_driver *);
 
 void init_polling(void);
 void cleanup_polling(void);
-void start_polling(comedi_device *);
-void stop_polling(comedi_device *);
+void start_polling(struct comedi_device *);
+void stop_polling(struct comedi_device *);
 
-int comedi_buf_alloc(comedi_device *dev, comedi_subdevice *s, unsigned long
+int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s, unsigned long
        new_size);
 
 #ifdef CONFIG_PROC_FS
@@ -386,13 +381,13 @@ enum subdevice_runflags {
    various internal comedi functions
  */
 
-int do_rangeinfo_ioctl(comedi_device *dev, comedi_rangeinfo *arg);
-int check_chanlist(comedi_subdevice *s, int n, unsigned int *chanlist);
-void comedi_set_subdevice_runflags(comedi_subdevice *s, unsigned mask,
+int do_rangeinfo_ioctl(struct comedi_device *dev, comedi_rangeinfo *arg);
+int check_chanlist(struct comedi_subdevice *s, int n, unsigned int *chanlist);
+void comedi_set_subdevice_runflags(struct comedi_subdevice *s, unsigned mask,
        unsigned bits);
-unsigned comedi_get_subdevice_runflags(comedi_subdevice *s);
-int insn_inval(comedi_device *dev, comedi_subdevice *s,
-       comedi_insn *insn, lsampl_t *data);
+unsigned comedi_get_subdevice_runflags(struct comedi_subdevice *s);
+int insn_inval(struct comedi_device *dev, struct comedi_subdevice *s,
+       comedi_insn *insn, unsigned int *data);
 
 /* range stuff */
 
@@ -425,14 +420,14 @@ struct comedi_lrange_struct {
 
 /* some silly little inline functions */
 
-static inline int alloc_subdevices(comedi_device *dev,
+static inline int alloc_subdevices(struct comedi_device *dev,
                                   unsigned int num_subdevices)
 {
        unsigned i;
 
        dev->n_subdevices = num_subdevices;
        dev->subdevices =
-               kcalloc(num_subdevices, sizeof(comedi_subdevice), GFP_KERNEL);
+               kcalloc(num_subdevices, sizeof(struct comedi_subdevice), GFP_KERNEL);
        if (!dev->subdevices)
                return -ENOMEM;
        for (i = 0; i < num_subdevices; ++i) {
@@ -444,7 +439,7 @@ static inline int alloc_subdevices(comedi_device *dev,
        return 0;
 }
 
-static inline int alloc_private(comedi_device *dev, int size)
+static inline int alloc_private(struct comedi_device *dev, int size)
 {
        dev->private = kzalloc(size, GFP_KERNEL);
        if (!dev->private)
@@ -452,17 +447,17 @@ static inline int alloc_private(comedi_device *dev, int size)
        return 0;
 }
 
-static inline unsigned int bytes_per_sample(const comedi_subdevice *subd)
+static inline unsigned int bytes_per_sample(const struct comedi_subdevice *subd)
 {
        if (subd->subdev_flags & SDF_LSAMPL)
-               return sizeof(lsampl_t);
+               return sizeof(unsigned int);
        else
-               return sizeof(sampl_t);
+               return sizeof(short);
 }
 
 /* must be used in attach to set dev->hw_dev if you wish to dma directly
 into comedi's buffer */
-static inline void comedi_set_hw_dev(comedi_device *dev, struct device *hw_dev)
+static inline void comedi_set_hw_dev(struct comedi_device *dev, struct device *hw_dev)
 {
        if (dev->hw_dev)
                put_device(dev->hw_dev);
@@ -474,8 +469,8 @@ static inline void comedi_set_hw_dev(comedi_device *dev, struct device *hw_dev)
        }
 }
 
-int comedi_buf_put(comedi_async *async, sampl_t x);
-int comedi_buf_get(comedi_async *async, sampl_t *x);
+int comedi_buf_put(comedi_async *async, short x);
+int comedi_buf_get(comedi_async *async, short *x);
 
 unsigned int comedi_buf_write_n_available(comedi_async *async);
 unsigned int comedi_buf_write_alloc(comedi_async *async, unsigned int nbytes);
@@ -527,10 +522,13 @@ static inline void *comedi_aux_data(int options[], int n)
 
 int comedi_alloc_board_minor(struct device *hardware_device);
 void comedi_free_board_minor(unsigned minor);
-int comedi_alloc_subdevice_minor(comedi_device *dev, comedi_subdevice *s);
-void comedi_free_subdevice_minor(comedi_subdevice *s);
+int comedi_alloc_subdevice_minor(struct comedi_device *dev, struct comedi_subdevice *s);
+void comedi_free_subdevice_minor(struct comedi_subdevice *s);
 int comedi_pci_auto_config(struct pci_dev *pcidev, const char *board_name);
 void comedi_pci_auto_unconfig(struct pci_dev *pcidev);
+struct usb_device;     /* forward declaration */
+int comedi_usb_auto_config(struct usb_device *usbdev, const char *board_name);
+void comedi_usb_auto_unconfig(struct usb_device *usbdev);
 
 #include "comedi_rt.h"