#define FEPCODESEG 0x0200L #define FEPCODE 0x2000L #define BIOSCODE 0xf800L #define MISCGLOBAL 0x0C00L #define NPORT 0x0C22L #define MBOX 0x0C40L #define PORTBASE 0x0C90L #define FEPCLR 0x00 #define FEPMEM 0x02 #define FEPRST 0x04 #define FEPINT 0x08 #define FEPMASK 0x0e #define FEPWIN 0x80 /* Maximum Number of Boards supported */ #define MAX_DIGI_BOARDS 4 #define PCXX_NUM_TYPES 4 #define PCXI 0 #define PCXE 1 #define PCXEVE 2 #define PCXEM 3 static char *board_desc[] = { "PC/Xi", "PC/Xe", "PC/Xeve", "PC/Xem", }; static char *board_mem[] = { "64k", "64k", "8k", "32k", }; #define STARTC 021 #define STOPC 023 #define IAIXON 0x2000 struct board_info { unchar status; unchar type; unchar altpin; ushort numports; ushort port; ulong membase; ulong memsize; ushort first_minor; void *region; }; #define TXSTOPPED 0x01 #define LOWWAIT 0x02 #define EMPTYWAIT 0x04 #define RXSTOPPED 0x08 #define TXBUSY 0x10 #define DISABLED 0 #define ENABLED 1 #define OFF 0 #define ON 1 #define FEPTIMEOUT 200000 #define SERIAL_TYPE_NORMAL 1 #define SERIAL_TYPE_CALLOUT 2 #define PCXE_EVENT_HANGUP 1 #define PCXX_MAGIC 0x5c6df104L struct channel { /* --------- Board/channel information ---------- */ long magic; unchar boardnum; unchar channelnum; uint dev; long session; long pgrp; struct tty_struct *tty; struct board_info *board; volatile struct board_chan *brdchan; volatile struct global_data *mailbox; int asyncflags; int count; int blocked_open; int close_delay; int event; wait_queue_head_t open_wait; wait_queue_head_t close_wait; struct tq_struct tqueue; /* ------------ Async control data ------------- */ unchar modemfake; /* Modem values to be forced */ unchar modem; /* Force values */ ulong statusflags; unchar omodem; /* FEP output modem status */ unchar imodem; /* FEP input modem status */ unchar hflow; unchar dsr; unchar dcd; unchar stopc; unchar startc; unchar stopca; unchar startca; unchar fepstopc; unchar fepstartc; unchar fepstopca; unchar fepstartca; ushort fepiflag; ushort fepcflag; ushort fepoflag; /* ---------- Transmit/receive system ---------- */ unchar txwin; unchar rxwin; ushort txbufsize; ushort rxbufsize; unchar *txptr; unchar *rxptr; unchar *tmp_buf; /* Temp buffer */ struct semaphore tmp_buf_sem; /* ---- Termios data ---- */ ulong c_iflag; ulong c_cflag; ulong c_lflag; ulong c_oflag; struct termios normal_termios; struct termios callout_termios; struct digi_struct digiext; ulong dummy[8]; };