#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/errno.h>
#include <linux/skbuff.h>
#include <linux/usb.h>
#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>
#include "h4_recv.h"
#define VERSION …
static const struct usb_device_id bpa10x_table[] = …;
MODULE_DEVICE_TABLE(usb, bpa10x_table);
struct bpa10x_data { … };
static void bpa10x_tx_complete(struct urb *urb)
{ … }
#define HCI_VENDOR_HDR_SIZE …
#define HCI_RECV_VENDOR …
static const struct h4_recv_pkt bpa10x_recv_pkts[] = …;
static void bpa10x_rx_complete(struct urb *urb)
{ … }
static inline int bpa10x_submit_intr_urb(struct hci_dev *hdev)
{ … }
static inline int bpa10x_submit_bulk_urb(struct hci_dev *hdev)
{ … }
static int bpa10x_open(struct hci_dev *hdev)
{ … }
static int bpa10x_close(struct hci_dev *hdev)
{ … }
static int bpa10x_flush(struct hci_dev *hdev)
{ … }
static int bpa10x_setup(struct hci_dev *hdev)
{ … }
static int bpa10x_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
{ … }
static int bpa10x_set_diag(struct hci_dev *hdev, bool enable)
{ … }
static int bpa10x_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void bpa10x_disconnect(struct usb_interface *intf)
{ … }
static struct usb_driver bpa10x_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_VERSION(…);
MODULE_LICENSE(…) …;