mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
staging: comedi: refactor serial2002 driver to remove forward declarations
Move the module_init/module_exit routines and the associated struct comedi_driver and other variables to the end of the source. This is more typical of how other drivers are written and removes the need for the forward declarations. 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>
This commit is contained in:
parent
e9a4a7fb4c
commit
cb1648b46c
@ -43,20 +43,10 @@ Status: in development
|
|||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
#include <linux/poll.h>
|
#include <linux/poll.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* Board descriptions for two imaginary boards. Describing the
|
|
||||||
* boards in this way is optional, and completely driver-dependent.
|
|
||||||
* Some drivers use arrays such as this, other do not.
|
|
||||||
*/
|
|
||||||
struct serial2002_board {
|
struct serial2002_board {
|
||||||
const char *name;
|
const char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct serial2002_board serial2002_boards[] = {
|
|
||||||
{
|
|
||||||
.name = "serial2002"}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Useful for shorthand access to the particular board structure
|
* Useful for shorthand access to the particular board structure
|
||||||
*/
|
*/
|
||||||
@ -89,35 +79,6 @@ struct serial2002_private {
|
|||||||
*/
|
*/
|
||||||
#define devpriv ((struct serial2002_private *)dev->private)
|
#define devpriv ((struct serial2002_private *)dev->private)
|
||||||
|
|
||||||
static int serial2002_attach(struct comedi_device *dev,
|
|
||||||
struct comedi_devconfig *it);
|
|
||||||
static int serial2002_detach(struct comedi_device *dev);
|
|
||||||
struct comedi_driver driver_serial2002 = {
|
|
||||||
.driver_name = "serial2002",
|
|
||||||
.module = THIS_MODULE,
|
|
||||||
.attach = serial2002_attach,
|
|
||||||
.detach = serial2002_detach,
|
|
||||||
.board_name = &serial2002_boards[0].name,
|
|
||||||
.offset = sizeof(struct serial2002_board),
|
|
||||||
.num_names = ARRAY_SIZE(serial2002_boards),
|
|
||||||
};
|
|
||||||
|
|
||||||
static int serial2002_di_rinsn(struct comedi_device *dev,
|
|
||||||
struct comedi_subdevice *s,
|
|
||||||
struct comedi_insn *insn, unsigned int *data);
|
|
||||||
static int serial2002_do_winsn(struct comedi_device *dev,
|
|
||||||
struct comedi_subdevice *s,
|
|
||||||
struct comedi_insn *insn, unsigned int *data);
|
|
||||||
static int serial2002_ai_rinsn(struct comedi_device *dev,
|
|
||||||
struct comedi_subdevice *s,
|
|
||||||
struct comedi_insn *insn, unsigned int *data);
|
|
||||||
static int serial2002_ao_winsn(struct comedi_device *dev,
|
|
||||||
struct comedi_subdevice *s,
|
|
||||||
struct comedi_insn *insn, unsigned int *data);
|
|
||||||
static int serial2002_ao_rinsn(struct comedi_device *dev,
|
|
||||||
struct comedi_subdevice *s,
|
|
||||||
struct comedi_insn *insn, unsigned int *data);
|
|
||||||
|
|
||||||
struct serial_data {
|
struct serial_data {
|
||||||
enum { is_invalid, is_digital, is_channel } kind;
|
enum { is_invalid, is_digital, is_channel } kind;
|
||||||
int index;
|
int index;
|
||||||
@ -901,17 +862,32 @@ static int serial2002_detach(struct comedi_device *dev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct serial2002_board serial2002_boards[] = {
|
||||||
|
{
|
||||||
|
.name = "serial2002"
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
struct comedi_driver driver_serial2002 = {
|
||||||
|
.driver_name = "serial2002",
|
||||||
|
.module = THIS_MODULE,
|
||||||
|
.attach = serial2002_attach,
|
||||||
|
.detach = serial2002_detach,
|
||||||
|
.board_name = &serial2002_boards[0].name,
|
||||||
|
.offset = sizeof(struct serial2002_board),
|
||||||
|
.num_names = ARRAY_SIZE(serial2002_boards),
|
||||||
|
};
|
||||||
|
|
||||||
static int __init driver_serial2002_init_module(void)
|
static int __init driver_serial2002_init_module(void)
|
||||||
{
|
{
|
||||||
return comedi_driver_register(&driver_serial2002);
|
return comedi_driver_register(&driver_serial2002);
|
||||||
}
|
}
|
||||||
|
module_init(driver_serial2002_init_module);
|
||||||
|
|
||||||
static void __exit driver_serial2002_cleanup_module(void)
|
static void __exit driver_serial2002_cleanup_module(void)
|
||||||
{
|
{
|
||||||
comedi_driver_unregister(&driver_serial2002);
|
comedi_driver_unregister(&driver_serial2002);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(driver_serial2002_init_module);
|
|
||||||
module_exit(driver_serial2002_cleanup_module);
|
module_exit(driver_serial2002_cleanup_module);
|
||||||
|
|
||||||
MODULE_AUTHOR("Comedi http://www.comedi.org");
|
MODULE_AUTHOR("Comedi http://www.comedi.org");
|
||||||
|
Loading…
Reference in New Issue
Block a user