linux/drivers/staging/comedi/comedi_usb.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/* comedi_usb.h
   3 * header file for USB Comedi drivers
   4 *
   5 * COMEDI - Linux Control and Measurement Device Interface
   6 * Copyright (C) 1997-2000 David A. Schleef <ds@schleef.org>
   7 */
   8
   9#ifndef _COMEDI_USB_H
  10#define _COMEDI_USB_H
  11
  12#include <linux/usb.h>
  13
  14#include "comedidev.h"
  15
  16struct usb_interface *comedi_to_usb_interface(struct comedi_device *dev);
  17struct usb_device *comedi_to_usb_dev(struct comedi_device *dev);
  18
  19int comedi_usb_auto_config(struct usb_interface *intf,
  20                           struct comedi_driver *driver, unsigned long context);
  21void comedi_usb_auto_unconfig(struct usb_interface *intf);
  22
  23int comedi_usb_driver_register(struct comedi_driver *comedi_driver,
  24                               struct usb_driver *usb_driver);
  25void comedi_usb_driver_unregister(struct comedi_driver *comedi_driver,
  26                                  struct usb_driver *usb_driver);
  27
  28/**
  29 * module_comedi_usb_driver() - Helper macro for registering a comedi USB driver
  30 * @__comedi_driver: comedi_driver struct
  31 * @__usb_driver: usb_driver struct
  32 *
  33 * Helper macro for comedi USB drivers which do not do anything special
  34 * in module init/exit. This eliminates a lot of boilerplate. Each
  35 * module may only use this macro once, and calling it replaces
  36 * module_init() and module_exit()
  37 */
  38#define module_comedi_usb_driver(__comedi_driver, __usb_driver) \
  39        module_driver(__comedi_driver, comedi_usb_driver_register, \
  40                        comedi_usb_driver_unregister, &(__usb_driver))
  41
  42#endif /* _COMEDI_USB_H */
  43