#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/termios.h>
#include <linux/fs.h>
#include <linux/tty_flip.h>
#include <linux/serial.h>
#include <linux/serial_core.h>
#include <linux/serial_reg.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <linux/vmalloc.h>
#include <linux/smp.h>
#include <linux/spinlock.h>
#include <linux/kref.h>
#include <linux/firmware.h>
#include <linux/bitops.h>
#include <linux/io.h>
#include <asm/irq.h>
#include <linux/uaccess.h>
#define ICOM_DRIVER_NAME …
#define NR_PORTS …
static const unsigned int icom_acfg_baud[] = …;
#define BAUD_TABLE_LIMIT …
struct icom_regs { … };
struct func_dram { … };
#define ICOM_CONTROL_START_A …
#define ICOM_CONTROL_STOP_A …
#define ICOM_CONTROL_START_B …
#define ICOM_CONTROL_STOP_B …
#define ICOM_CONTROL_START_C …
#define ICOM_CONTROL_STOP_C …
#define ICOM_CONTROL_START_D …
#define ICOM_CONTROL_STOP_D …
#define ICOM_IRAM_OFFSET …
#define ICOM_IRAM_SIZE …
#define ICOM_DCE_IRAM_OFFSET …
#define ICOM_CABLE_ID_VALID …
#define ICOM_CABLE_ID_MASK …
#define ICOM_DISABLE …
#define CMD_XMIT_RCV_ENABLE …
#define CMD_XMIT_ENABLE …
#define CMD_RCV_DISABLE …
#define CMD_RCV_ENABLE …
#define CMD_RESTART …
#define CMD_HOLD_XMIT …
#define CMD_SND_BREAK …
#define RS232_CABLE …
#define V24_CABLE …
#define V35_CABLE …
#define V36_CABLE …
#define NO_CABLE …
#define START_DOWNLOAD …
#define ICOM_INT_MASK_PRC_A …
#define ICOM_INT_MASK_PRC_B …
#define ICOM_INT_MASK_PRC_C …
#define ICOM_INT_MASK_PRC_D …
#define INT_RCV_COMPLETED …
#define INT_XMIT_COMPLETED …
#define INT_IDLE_DETECT …
#define INT_RCV_DISABLED …
#define INT_XMIT_DISABLED …
#define INT_RCV_XMIT_SHUTDOWN …
#define INT_FATAL_ERROR …
#define INT_CABLE_PULL …
#define INT_SIGNAL_CHANGE …
#define HDLC_PPP_PURE_ASYNC …
#define HDLC_FF_FILL …
#define HDLC_HDW_FLOW …
#define START_XMIT …
#define ICOM_ACFG_DRIVE1 …
#define ICOM_ACFG_NO_PARITY …
#define ICOM_ACFG_PARITY_ENAB …
#define ICOM_ACFG_PARITY_ODD …
#define ICOM_ACFG_8BPC …
#define ICOM_ACFG_7BPC …
#define ICOM_ACFG_6BPC …
#define ICOM_ACFG_5BPC …
#define ICOM_ACFG_1STOP_BIT …
#define ICOM_ACFG_2STOP_BIT …
#define ICOM_DTR …
#define ICOM_RTS …
#define ICOM_RI …
#define ICOM_DSR …
#define ICOM_DCD …
#define ICOM_CTS …
#define NUM_XBUFFS …
#define NUM_RBUFFS …
#define RCV_BUFF_SZ …
#define XMIT_BUFF_SZ …
struct statusArea { … };
struct icom_adapter;
#define ICOM_MAJOR …
#define ICOM_MINOR_START …
struct icom_port { … };
struct icom_adapter { … };
extern void iCom_sercons_init(void);
struct lookup_proc_table { … };
struct lookup_int_table { … };
static inline struct icom_port *to_icom_port(struct uart_port *port)
{ … }
static const struct pci_device_id icom_pci_table[] = …;
static struct lookup_proc_table start_proc[4] = …;
static struct lookup_proc_table stop_proc[4] = …;
static struct lookup_int_table int_mask_tbl[4] = …;
MODULE_DEVICE_TABLE(pci, icom_pci_table);
static LIST_HEAD(icom_adapter_head);
static DEFINE_SPINLOCK(icom_lock);
#ifdef ICOM_TRACE
static inline void trace(struct icom_port *icom_port, char *trace_pt,
unsigned long trace_data)
{
dev_info(&icom_port->adapter->pci_dev->dev, ":%d:%s - %lx\n",
icom_port->port, trace_pt, trace_data);
}
#else
static inline void trace(struct icom_port *icom_port, char *trace_pt, unsigned long trace_data) {};
#endif
static void icom_kref_release(struct kref *kref);
static void free_port_memory(struct icom_port *icom_port)
{ … }
static int get_port_memory(struct icom_port *icom_port)
{ … }
static void stop_processor(struct icom_port *icom_port)
{ … }
static void start_processor(struct icom_port *icom_port)
{ … }
static void load_code(struct icom_port *icom_port)
{ … }
static int startup(struct icom_port *icom_port)
{ … }
static void shutdown(struct icom_port *icom_port)
{ … }
static int icom_write(struct uart_port *port)
{ … }
static inline void check_modem_status(struct icom_port *icom_port)
{ … }
static void xmit_interrupt(u16 port_int_reg, struct icom_port *icom_port)
{ … }
static void recv_interrupt(u16 port_int_reg, struct icom_port *icom_port)
{ … }
static void process_interrupt(u16 port_int_reg,
struct icom_port *icom_port)
{ … }
static irqreturn_t icom_interrupt(int irq, void *dev_id)
{ … }
static unsigned int icom_tx_empty(struct uart_port *port)
{ … }
static void icom_set_mctrl(struct uart_port *port, unsigned int mctrl)
{ … }
static unsigned int icom_get_mctrl(struct uart_port *port)
{ … }
static void icom_stop_tx(struct uart_port *port)
{ … }
static void icom_start_tx(struct uart_port *port)
{ … }
static void icom_send_xchar(struct uart_port *port, char ch)
{ … }
static void icom_stop_rx(struct uart_port *port)
{ … }
static void icom_break(struct uart_port *port, int break_state)
{ … }
static int icom_open(struct uart_port *port)
{ … }
static void icom_close(struct uart_port *port)
{ … }
static void icom_set_termios(struct uart_port *port, struct ktermios *termios,
const struct ktermios *old_termios)
{ … }
static const char *icom_type(struct uart_port *port)
{ … }
static void icom_config_port(struct uart_port *port, int flags)
{ … }
static const struct uart_ops icom_ops = …;
#define ICOM_CONSOLE …
static struct uart_driver icom_uart_driver = …;
static int icom_init_ports(struct icom_adapter *icom_adapter)
{ … }
static void icom_port_active(struct icom_port *icom_port, struct icom_adapter *icom_adapter, int port_num)
{ … }
static int icom_load_ports(struct icom_adapter *icom_adapter)
{ … }
static int icom_alloc_adapter(struct icom_adapter
**icom_adapter_ref)
{ … }
static void icom_free_adapter(struct icom_adapter *icom_adapter)
{ … }
static void icom_kref_release(struct kref *kref)
{ … }
static int icom_probe(struct pci_dev *dev,
const struct pci_device_id *ent)
{ … }
static void icom_remove(struct pci_dev *dev)
{ … }
static struct pci_driver icom_pci_driver = …;
static int __init icom_init(void)
{ … }
static void __exit icom_exit(void)
{ … }
module_init(…) …;
module_exit(icom_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;