xref: /csrg-svn/sys/vax/uba/tmscpreg.h (revision 26136)
1*26136Skarels /* @(#)tmscpreg.h	5.1 (Berkeley) 02/11/86 */
226128Skarels 
326128Skarels /*	@(#)tmscpreg.h	1.1	11/2/84	84/09/25	*/
426128Skarels 
526128Skarels /************************************************************************
626128Skarels  *									*
726128Skarels  *			Copyright (c) 1985 by				*
826128Skarels  *		Digital Equipment Corporation, Maynard, MA		*
926128Skarels  *									*
1026128Skarels  *	Permission to use, copy, modify, and distribute this software	*
1126128Skarels  *	and its documentation is hereby granted to licensees of the	*
1226128Skarels  *	Regents of the University of California pursuant to their	*
1326128Skarels  *	license agreement for the "Fourth Berkeley Software		*
1426128Skarels  *	Distribution".							*
1526128Skarels  *									*
1626128Skarels  *	The information in this software is subject to change without	*
1726128Skarels  *	notice and should not be construed as a commitment by Digital	*
1826128Skarels  *	Equipment Corporation.  Digital makes no representations	*
1926128Skarels  *	about suitability of this software for any purpose. It is	*
2026128Skarels  *	supplied "as is" without express or implied warranty.		*
2126128Skarels  *									*
2226128Skarels  *	This software is not subject to any license of the American	*
2326128Skarels  *	Telephone and Telegraph Company.				*
2426128Skarels  *									*
2526128Skarels  ************************************************************************/
2626128Skarels /*
2726128Skarels  * TMSCP registers and structures
2826128Skarels  */
2926128Skarels 
3026128Skarels struct tmscpdevice {
3126128Skarels 	short	tmscpip;	/* initialization and polling */
3226128Skarels 	short	tmscpsa;	/* status and address */
3326128Skarels };
3426128Skarels 
3526128Skarels #define	TMSCP_ERR		0100000	/* error bit */
3626128Skarels #define	TMSCP_STEP4	0040000	/* step 4 has started */
3726128Skarels #define	TMSCP_STEP3	0020000	/* step 3 has started */
3826128Skarels #define	TMSCP_STEP2	0010000	/* step 2 has started */
3926128Skarels #define	TMSCP_STEP1	0004000	/* step 1 has started */
4026128Skarels #define	TMSCP_NV		0002000	/* no host settable interrupt vector */
4126128Skarels #define	TMSCP_QB		0001000	/* controller supports Q22 bus */
4226128Skarels #define	TMSCP_DI		0000400	/* controller implements diagnostics */
43*26136Skarels #define	TMSCP_OD		0000200	/* port allows odd host addr's in the buffer descriptor */
4426128Skarels #define	TMSCP_IE		0000200	/* interrupt enable */
4526128Skarels #define	TMSCP_MP		0000100	/* port supports address mapping */
46*26136Skarels #define	TMSCP_LF		0000002	/* host requests last fail response packet */
47*26136Skarels #define	TMSCP_PI		0000001	/* host requests adapter purge interrupts */
4826128Skarels #define	TMSCP_GO		0000001	/* start operation, after init */
4926128Skarels 
5026128Skarels 
5126128Skarels /*
5226128Skarels  * TMSCP Communications Area
5326128Skarels  */
5426128Skarels 
5526128Skarels struct tmscpca {
5626128Skarels 	short	ca_xxx1;	/* unused */
5726128Skarels 	char	ca_xxx2;	/* unused */
5826128Skarels 	char	ca_bdp;		/* BDP to purge */
5926128Skarels 	short	ca_cmdint;	/* command queue transition interrupt flag */
6026128Skarels 	short	ca_rspint;	/* response queue transition interrupt flag */
6126128Skarels 	long	ca_rspdsc[NRSP];/* response descriptors */
6226128Skarels 	long	ca_cmddsc[NCMD];/* command descriptors */
6326128Skarels };
6426128Skarels 
6526128Skarels #define	ca_ringbase	ca_rspdsc[0]
6626128Skarels 
6726128Skarels #define	TMSCP_OWN	0x80000000	/* port owns this descriptor (else host
6826128Skarels  owns it) */
69*26136Skarels #define	TMSCP_INT	0x40000000	/* allow interrupt on ring transition */
7026128Skarels 
71*26136Skarels #define	TMSCP_MAP	0x80000000	/* modifier for mapped buffer descriptors */
7226128Skarels 
7326128Skarels /*
7426128Skarels  * TMSCP packet info (same as MSCP)
7526128Skarels  */
7626128Skarels struct mscp_header {
7726128Skarels 	short	tmscp_msglen;	/* length of MSCP packet */
7826128Skarels 	char	tmscp_credits;	/* low 4 bits: credits, high 4 bits: msgtype */
7926128Skarels 	char	tmscp_vcid;	/* virtual circuit id (connection id) */
8026128Skarels };
81