| #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]; |
| }; |