xref: /csrg-svn/sys/vax/uba/tmscpreg.h (revision 26128)
1*26128Skarels 
2*26128Skarels /*	@(#)tmscpreg.h	1.1	11/2/84	84/09/25	*/
3*26128Skarels 
4*26128Skarels /************************************************************************
5*26128Skarels  *									*
6*26128Skarels  *			Copyright (c) 1985 by				*
7*26128Skarels  *		Digital Equipment Corporation, Maynard, MA		*
8*26128Skarels  *									*
9*26128Skarels  *	Permission to use, copy, modify, and distribute this software	*
10*26128Skarels  *	and its documentation is hereby granted to licensees of the	*
11*26128Skarels  *	Regents of the University of California pursuant to their	*
12*26128Skarels  *	license agreement for the "Fourth Berkeley Software		*
13*26128Skarels  *	Distribution".							*
14*26128Skarels  *									*
15*26128Skarels  *	The information in this software is subject to change without	*
16*26128Skarels  *	notice and should not be construed as a commitment by Digital	*
17*26128Skarels  *	Equipment Corporation.  Digital makes no representations	*
18*26128Skarels  *	about suitability of this software for any purpose. It is	*
19*26128Skarels  *	supplied "as is" without express or implied warranty.		*
20*26128Skarels  *									*
21*26128Skarels  *	This software is not subject to any license of the American	*
22*26128Skarels  *	Telephone and Telegraph Company.				*
23*26128Skarels  *									*
24*26128Skarels  ************************************************************************/
25*26128Skarels /*
26*26128Skarels  * TMSCP registers and structures
27*26128Skarels  */
28*26128Skarels 
29*26128Skarels struct tmscpdevice {
30*26128Skarels 	short	tmscpip;	/* initialization and polling */
31*26128Skarels 	short	tmscpsa;	/* status and address */
32*26128Skarels };
33*26128Skarels 
34*26128Skarels #define	TMSCP_ERR		0100000	/* error bit */
35*26128Skarels #define	TMSCP_STEP4	0040000	/* step 4 has started */
36*26128Skarels #define	TMSCP_STEP3	0020000	/* step 3 has started */
37*26128Skarels #define	TMSCP_STEP2	0010000	/* step 2 has started */
38*26128Skarels #define	TMSCP_STEP1	0004000	/* step 1 has started */
39*26128Skarels #define	TMSCP_NV		0002000	/* no host settable interrupt vector */
40*26128Skarels #define	TMSCP_QB		0001000	/* controller supports Q22 bus */
41*26128Skarels #define	TMSCP_DI		0000400	/* controller implements diagnostics */
42*26128Skarels #define	TMSCP_OD		0000200	/* port allows odd host addr's in the b
43*26128Skarels uffer descriptor */
44*26128Skarels #define	TMSCP_IE		0000200	/* interrupt enable */
45*26128Skarels #define	TMSCP_MP		0000100	/* port supports address mapping */
46*26128Skarels #define	TMSCP_LF		0000002	/* host requests last fail response pac
47*26128Skarels ket */
48*26128Skarels #define	TMSCP_PI		0000001	/* host requests adapter purge interrup
49*26128Skarels ts */
50*26128Skarels #define	TMSCP_GO		0000001	/* start operation, after init */
51*26128Skarels 
52*26128Skarels 
53*26128Skarels /*
54*26128Skarels  * TMSCP Communications Area
55*26128Skarels  */
56*26128Skarels 
57*26128Skarels struct tmscpca {
58*26128Skarels 	short	ca_xxx1;	/* unused */
59*26128Skarels 	char	ca_xxx2;	/* unused */
60*26128Skarels 	char	ca_bdp;		/* BDP to purge */
61*26128Skarels 	short	ca_cmdint;	/* command queue transition interrupt flag */
62*26128Skarels 	short	ca_rspint;	/* response queue transition interrupt flag */
63*26128Skarels 	long	ca_rspdsc[NRSP];/* response descriptors */
64*26128Skarels 	long	ca_cmddsc[NCMD];/* command descriptors */
65*26128Skarels };
66*26128Skarels 
67*26128Skarels #define	ca_ringbase	ca_rspdsc[0]
68*26128Skarels 
69*26128Skarels #define	TMSCP_OWN	0x80000000	/* port owns this descriptor (else host
70*26128Skarels  owns it) */
71*26128Skarels #define	TMSCP_INT	0x40000000	/* allow interrupt on ring transition *
72*26128Skarels /
73*26128Skarels 
74*26128Skarels #define	TMSCP_MAP	0x80000000	/* modifier for mapped buffer descripto
75*26128Skarels rs */
76*26128Skarels 
77*26128Skarels /*
78*26128Skarels  * TMSCP packet info (same as MSCP)
79*26128Skarels  */
80*26128Skarels struct mscp_header {
81*26128Skarels 	short	tmscp_msglen;	/* length of MSCP packet */
82*26128Skarels 	char	tmscp_credits;	/* low 4 bits: credits, high 4 bits: msgtype */
83*26128Skarels 	char	tmscp_vcid;	/* virtual circuit id (connection id) */
84*26128Skarels };
85*26128Skarels 
86