Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * comedi_pcmcia.h
0004  * header file for Comedi PCMCIA drivers
0005  *
0006  * COMEDI - Linux Control and Measurement Device Interface
0007  * Copyright (C) 1997-2000 David A. Schleef <ds@schleef.org>
0008  */
0009 
0010 #ifndef _COMEDI_PCMCIA_H
0011 #define _COMEDI_PCMCIA_H
0012 
0013 #include <pcmcia/cistpl.h>
0014 #include <pcmcia/ds.h>
0015 #include <linux/comedi/comedidev.h>
0016 
0017 struct pcmcia_device *comedi_to_pcmcia_dev(struct comedi_device *dev);
0018 
0019 int comedi_pcmcia_enable(struct comedi_device *dev,
0020              int (*conf_check)(struct pcmcia_device *p_dev,
0021                        void *priv_data));
0022 void comedi_pcmcia_disable(struct comedi_device *dev);
0023 
0024 int comedi_pcmcia_auto_config(struct pcmcia_device *link,
0025                   struct comedi_driver *driver);
0026 void comedi_pcmcia_auto_unconfig(struct pcmcia_device *link);
0027 
0028 int comedi_pcmcia_driver_register(struct comedi_driver *comedi_driver,
0029                   struct pcmcia_driver *pcmcia_driver);
0030 void comedi_pcmcia_driver_unregister(struct comedi_driver *comedi_driver,
0031                      struct pcmcia_driver *pcmcia_driver);
0032 
0033 /**
0034  * module_comedi_pcmcia_driver() - Helper macro for registering a comedi
0035  * PCMCIA driver
0036  * @__comedi_driver: comedi_driver struct
0037  * @__pcmcia_driver: pcmcia_driver struct
0038  *
0039  * Helper macro for comedi PCMCIA drivers which do not do anything special
0040  * in module init/exit. This eliminates a lot of boilerplate. Each
0041  * module may only use this macro once, and calling it replaces
0042  * module_init() and module_exit()
0043  */
0044 #define module_comedi_pcmcia_driver(__comedi_driver, __pcmcia_driver) \
0045     module_driver(__comedi_driver, comedi_pcmcia_driver_register, \
0046             comedi_pcmcia_driver_unregister, &(__pcmcia_driver))
0047 
0048 #endif /* _COMEDI_PCMCIA_H */