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