blob: 237c7b7eea18fdec26b0d9f416e1a04550bbba28 [file] [log] [blame]
#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];
};