#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 <net/nfc/nci.h>
#include <net/nfc/nci_core.h>
#define NCI_UART_SENDING …
#define NCI_UART_TX_WAKEUP …
static struct nci_uart *nci_uart_drivers[NCI_UART_DRIVER_MAX];
static inline struct sk_buff *nci_uart_dequeue(struct nci_uart *nu)
{ … }
static inline int nci_uart_queue_empty(struct nci_uart *nu)
{ … }
static int nci_uart_tx_wakeup(struct nci_uart *nu)
{ … }
static void nci_uart_write_work(struct work_struct *work)
{ … }
static int nci_uart_set_driver(struct tty_struct *tty, unsigned int driver)
{ … }
static int nci_uart_tty_open(struct tty_struct *tty)
{ … }
static void nci_uart_tty_close(struct tty_struct *tty)
{ … }
static void nci_uart_tty_wakeup(struct tty_struct *tty)
{ … }
static int nci_uart_default_recv_buf(struct nci_uart *nu, const u8 *data,
int count)
{ … }
static void nci_uart_tty_receive(struct tty_struct *tty, const u8 *data,
const u8 *flags, size_t count)
{ … }
static int nci_uart_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
unsigned long arg)
{ … }
static ssize_t nci_uart_tty_read(struct tty_struct *tty, struct file *file,
u8 *buf, size_t nr, void **cookie,
unsigned long offset)
{ … }
static ssize_t nci_uart_tty_write(struct tty_struct *tty, struct file *file,
const u8 *data, size_t count)
{ … }
static int nci_uart_send(struct nci_uart *nu, struct sk_buff *skb)
{ … }
int nci_uart_register(struct nci_uart *nu)
{ … }
EXPORT_SYMBOL_GPL(…);
void nci_uart_unregister(struct nci_uart *nu)
{ … }
EXPORT_SYMBOL_GPL(…);
void nci_uart_set_config(struct nci_uart *nu, int baudrate, int flow_ctrl)
{ … }
EXPORT_SYMBOL_GPL(…);
static struct tty_ldisc_ops nci_uart_ldisc = …;
static int __init nci_uart_init(void)
{ … }
static void __exit nci_uart_exit(void)
{ … }
module_init(…) …;
module_exit(nci_uart_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS_LDISC(…);