#include <linux/errno.h>
#include <linux/gnss.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/usb.h>
#define GNSS_USB_READ_BUF_LEN …
#define GNSS_USB_WRITE_TIMEOUT …
static const struct usb_device_id gnss_usb_id_table[] = …;
MODULE_DEVICE_TABLE(usb, gnss_usb_id_table);
struct gnss_usb { … };
static void gnss_usb_rx_complete(struct urb *urb)
{ … }
static int gnss_usb_open(struct gnss_device *gdev)
{ … }
static void gnss_usb_close(struct gnss_device *gdev)
{ … }
static int gnss_usb_write_raw(struct gnss_device *gdev,
const unsigned char *buf, size_t count)
{ … }
static const struct gnss_operations gnss_usb_gnss_ops = …;
static int gnss_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
{ … }
static void gnss_usb_disconnect(struct usb_interface *intf)
{ … }
static struct usb_driver gnss_usb_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;