#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/workqueue.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include <pcmcia/ss.h>
#include <linux/io.h>
#include "i82092aa.h"
#include "i82365.h"
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static const struct pci_device_id i82092aa_pci_ids[] = …;
MODULE_DEVICE_TABLE(pci, i82092aa_pci_ids);
static struct pci_driver i82092aa_pci_driver = …;
static struct pccard_operations i82092aa_operations = …;
struct socket_info { … };
#define MAX_SOCKETS …
static struct socket_info sockets[MAX_SOCKETS];
static int socket_count;
static int i82092aa_pci_probe(struct pci_dev *dev,
const struct pci_device_id *id)
{ … }
static void i82092aa_pci_remove(struct pci_dev *dev)
{ … }
static DEFINE_SPINLOCK(port_lock);
static unsigned char indirect_read(int socket, unsigned short reg)
{ … }
static void indirect_write(int socket, unsigned short reg, unsigned char value)
{ … }
static void indirect_setbit(int socket, unsigned short reg, unsigned char mask)
{ … }
static void indirect_resetbit(int socket,
unsigned short reg, unsigned char mask)
{ … }
static void indirect_write16(int socket,
unsigned short reg, unsigned short value)
{ … }
static int cycle_time = …;
static int to_cycles(int ns)
{ … }
static irqreturn_t i82092aa_interrupt(int irq, void *dev)
{ … }
static int card_present(int socketno)
{ … }
static void set_bridge_state(int sock)
{ … }
static int i82092aa_init(struct pcmcia_socket *sock)
{ … }
static int i82092aa_get_status(struct pcmcia_socket *socket, u_int *value)
{ … }
static int i82092aa_set_socket(struct pcmcia_socket *socket,
socket_state_t *state)
{ … }
static int i82092aa_set_io_map(struct pcmcia_socket *socket,
struct pccard_io_map *io)
{ … }
static int i82092aa_set_mem_map(struct pcmcia_socket *socket,
struct pccard_mem_map *mem)
{ … }
static int __init i82092aa_module_init(void)
{ … }
static void __exit i82092aa_module_exit(void)
{ … }
module_init(…) …;
module_exit(i82092aa_module_exit);