File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / ioex / vioc.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:19 2019 UTC (6 years, 11 months ago) by root
Branches: bsd, MAIN
CVS tags: v12b, v121, HEAD
Power 6/32 Unix version 1.2b


#define	V_CMDI	0		/* send command */
#define V_CMDRI 1		/* let vioc process next cmd */
#define V_URESP 2		/* response to unsolicited command */
#define V_RESET 1		/* cause a vioc reset */
#define V_TRP	2		/* cause a vioc trap */
#define V_INTR	4		/* cause a vioc interrupt */
#define V_ERR	0x80		/* generic error flag */
#define V_BSY	0x80		/* generic busy flag */
#define V_UNBSY	0x80		/* not busy for unsolicited interrupt */

#define V_RDY	0xa		/* Vioc ready after reset */
#define V_ALLOK 0x0a55		/* VIOC passed internal diagnostic */
#define V_BAD   0x02		/* VIOC failed internal diagnostic */
#define V_P1BAD 0x03		/* Connector panel #1 is bad */
#define V_P2BAD 0x03		/* Connector panel #2 is bad */

#define VSPEED  7		/* standard speed is 300 baud */
#define	VCVECT	64 ;		/* base vioc vector */


#define NVXPORTS 8		/* Total nbr of viocx terminal ports */
#define VXLEN 05		/* essentially the nbr of pending "reads" */
#define	VIDENT 0x3FE		/* vioc ident displacement into vblok */
#define	VREADY 0x55		/* denotes no err in vioc self-initializaton */
#define	FAULT 0x400
#define FECPNBR 1
#define V_REVNBR 040

#define VRESPLEN 0100
#define VCMDLEN 16
#define VC_IQLEN 16			/* Interrupt circular queue length */

#define VIOCX	0xa		/* identifies viocx in v_ident */
#define SSPEED	13		/* standard speed 9600 bps */
#define MDMCTL	0x1004		/* auto modem control */

#define	V_MAN	0203	/* man + DTR + RTS */
#define	V_AUTO	0002	/* auto + DTR */
#define V_RTS	0001	/* assert RTS */
#define V_DISAB	0200	/* manual + isable DTR and RTS */

#define BRK_CHR	040
#define DCD_ON	020
#define DCD_OFF	010
#define	CTS_ON	004

#define SILOBAS 0x800+VIOCBAS
#define NVIOCXLIN 16		/* nbr lines per vioc-x */
#define	VSILTIM	10		/* silo timount value,10=100msec */
#define NVCXBUFS 12		/* number of command buffers */
#define LIDENT	0x0008		/* load ident, set int vectors */
#define LSILOA	0x0104		/* set silos */
#define XMITDTA	0x0200		/* transmit */
#define FDTATOX	0x8304		/* flush data */
#define EXMODEX	0x0404		/* xon xoff mode */
#define	DXMODEX 0x0504		/* disable xon,xoff */
#define	LPARAX	0x060a		/* load params */
#define RPARALX	0x0704		/* request params from viocx */
#define RPARADX	0x0804		/* request params dma */
#define AUTOLP	0x0900		/* auto loop back /local echo  */
#define PERROR	0x40
#define FERROR	0x80
#define RCVOVRN	0xc0

/*
 * Data Structures
 */

struct	vblok	{		/* Common buffer seen by HOST */
	char	v_vioc;		/*  type of interrupt + voic bsy flg */
	char	v_hdwre;	/*  trap, reset, or hard interrupt */

	char	v_vcbsy;	/*  command busy (set by host) */
	char	v_vcid;		/*  command id. */

	short   v_vcp0;		/*  command address, high byte (sent by HOST) */
	short   v_vcp1;		/*  command address, low byte (sent by HOST) */

	short	not_used;
	short   v_rsp;		/* Offset to VIOC_BASE (ffx000) */
				/* Respond buff. addr = (VIOC_BASE + v_rsp) */

	char	v_ustat;	/* Unsolicited status */
	char	v_uqual;	/* qualifies of unsolicited interrupt */

	char	v_usdata[0x42] ;  /* unsolicited interrupt data */

	short	v_ident ;	/* VIOC identifier */
				/* denotes fault or ready after reset */

	short	v_dcd ;		/* f2 bit mask for carr detect by port */
	short	v_cts ;		/* f4 bit mask for cts by port */
};

#define CMDMAXLEN	10
struct cmd_inp		/* Command input block */
{
	short opcode;	
	char byte[CMDMAXLEN];
};

#define RESMAXLEN	100
struct cmd_res		/* Command respond block */
{
	char stat;	/* Respond status */
	char id;	/* Identification code */
	struct cmd_inp;	/* Command input block */
	char byte[RESMAXLEN];
};

#define BUFLEN  100
#define NVIOC	1


struct vbuf  {
	long cnt;
	long nxt_c;
	long nxt_fill;
	char buf[BUFLEN];
};

struct vbuf vi_buf[NVIOC*16];

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.