#include <linux/module.h>
#include <linux/parport.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/serio.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static unsigned int parkbd_pp_no;
module_param_named(port, parkbd_pp_no, int, 0);
MODULE_PARM_DESC(…) …;
static unsigned int parkbd_mode = …;
module_param_named(mode, parkbd_mode, uint, 0);
MODULE_PARM_DESC(…) …;
#define PARKBD_CLOCK …
#define PARKBD_DATA …
static int parkbd_buffer;
static int parkbd_counter;
static unsigned long parkbd_last;
static int parkbd_writing;
static unsigned long parkbd_start;
static struct pardevice *parkbd_dev;
static struct serio *parkbd_port;
static int parkbd_readlines(void)
{ … }
static void parkbd_writelines(int data)
{ … }
static int parkbd_write(struct serio *port, unsigned char c)
{ … }
static void parkbd_interrupt(void *dev_id)
{ … }
static int parkbd_getport(struct parport *pp)
{ … }
static struct serio *parkbd_allocate_serio(void)
{ … }
static void parkbd_attach(struct parport *pp)
{ … }
static void parkbd_detach(struct parport *port)
{ … }
static struct parport_driver parkbd_parport_driver = …;
module_parport_driver(…) …;