#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/interrupt.h>
#include <linux/ptrace.h>
#include <linux/poll.h>
#include <linux/slab.h>
#include <linux/tty.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/signal.h>
#include <linux/ioctl.h>
#include <linux/skbuff.h>
#include <asm/unaligned.h>
#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>
#include "hci_uart.h"
struct h4_struct { … };
static int h4_open(struct hci_uart *hu)
{ … }
static int h4_flush(struct hci_uart *hu)
{ … }
static int h4_close(struct hci_uart *hu)
{ … }
static int h4_enqueue(struct hci_uart *hu, struct sk_buff *skb)
{ … }
static const struct h4_recv_pkt h4_recv_pkts[] = …;
static int h4_recv(struct hci_uart *hu, const void *data, int count)
{ … }
static struct sk_buff *h4_dequeue(struct hci_uart *hu)
{ … }
static const struct hci_uart_proto h4p = …;
int __init h4_init(void)
{ … }
int __exit h4_deinit(void)
{ … }
struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb,
const unsigned char *buffer, int count,
const struct h4_recv_pkt *pkts, int pkts_count)
{ … }
EXPORT_SYMBOL_GPL(…);