#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 PCXE_EVENT_HANGUP   1
#define PCXX_MAGIC	0x5c6df104L

struct channel {
							/* --------- Board/channel information ---------- */
	long						magic;
	unchar						boardnum;
	unchar						channelnum;
	uint						dev;
	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;
	unsigned long						event;
	wait_queue_head_t			open_wait;
	wait_queue_head_t			close_wait;
	struct work_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 digi_struct			digiext;
	ulong						dummy[8];
};
