#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/tty.h>
#include <linux/tty_driver.h>
#include <linux/tty_flip.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/spinlock.h>
#include <linux/uaccess.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include <linux/usb/cdc.h>
#include "visor.h"
#define DRIVER_AUTHOR …
#define DRIVER_DESC …
static int visor_open(struct tty_struct *tty, struct usb_serial_port *port);
static void visor_close(struct usb_serial_port *port);
static int visor_probe(struct usb_serial *serial,
const struct usb_device_id *id);
static int visor_calc_num_ports(struct usb_serial *serial,
struct usb_serial_endpoints *epds);
static int clie_5_calc_num_ports(struct usb_serial *serial,
struct usb_serial_endpoints *epds);
static void visor_read_int_callback(struct urb *urb);
static int clie_3_5_startup(struct usb_serial *serial);
static int palm_os_3_probe(struct usb_serial *serial,
const struct usb_device_id *id);
static int palm_os_4_probe(struct usb_serial *serial,
const struct usb_device_id *id);
static const struct usb_device_id id_table[] = …;
static const struct usb_device_id clie_id_5_table[] = …;
static const struct usb_device_id clie_id_3_5_table[] = …;
static const struct usb_device_id id_table_combined[] = …;
MODULE_DEVICE_TABLE(usb, id_table_combined);
static struct usb_serial_driver handspring_device = …;
static struct usb_serial_driver clie_5_device = …;
static struct usb_serial_driver clie_3_5_device = …;
static struct usb_serial_driver * const serial_drivers[] = …;
static int visor_open(struct tty_struct *tty, struct usb_serial_port *port)
{ … }
static void visor_close(struct usb_serial_port *port)
{ … }
static void visor_read_int_callback(struct urb *urb)
{ … }
static int palm_os_3_probe(struct usb_serial *serial,
const struct usb_device_id *id)
{ … }
static int palm_os_4_probe(struct usb_serial *serial,
const struct usb_device_id *id)
{ … }
static int visor_probe(struct usb_serial *serial,
const struct usb_device_id *id)
{ … }
static int visor_calc_num_ports(struct usb_serial *serial,
struct usb_serial_endpoints *epds)
{ … }
static int clie_5_calc_num_ports(struct usb_serial *serial,
struct usb_serial_endpoints *epds)
{ … }
static int clie_3_5_startup(struct usb_serial *serial)
{ … }
module_usb_serial_driver(…);
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;