xref: /original-bsd/sys/vax/vax/scb.h (revision 7ee99b70)
1 /*
2  * Copyright (c) 1982, 1986 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)scb.h	7.2 (Berkeley) 05/07/88
7  */
8 
9 /*
10  * VAX System control block layout
11  */
12 
13 struct scb {
14 	int	(*scb_passiverel)();	/* BI passive release */
15 	int	(*scb_machchk)();	/* machine chack */
16 	int	(*scb_kspinval)();	/* KSP invalid */
17 	int	(*scb_powfail)();	/* power fail */
18 	int	(*scb_resinstr)();	/* reserved instruction */
19 	int	(*scb_custinst)();	/* XFC instr */
20 	int	(*scb_resopnd)();	/* reserved operand */
21 	int	(*scb_resaddr)();	/* reserved addr mode */
22 	int	(*scb_acv)();		/* access control violation */
23 	int	(*scb_tnv)();		/* translation not valid */
24 	int	(*scb_tracep)();	/* trace pending */
25 	int	(*scb_bpt)();		/* breakpoint instr */
26 	int	(*scb_compat)();	/* compatibility mode fault */
27 	int	(*scb_arith)();		/* arithmetic fault */
28 	int	(*scb_stray2)();
29 	int	(*scb_stray3)();
30 	int	(*scb_chmk)();		/* CHMK instr */
31 	int	(*scb_chme)();		/* CHME instr */
32 	int	(*scb_chms)();		/* CHMS instr */
33 	int	(*scb_chmu)();		/* CHMU instr */
34 	int	(*scb_sbisilo)();	/* SBI silo compare */
35 #define	scb_bierr scb_sbisilo		/*=BI error (8200) */
36 	int	(*scb_cmrd)();		/* corrected mem read data */
37 	int	(*scb_sbialert)();	/* SBI alert */
38 	int	(*scb_sbifault)();	/* SBI fault */
39 	int	(*scb_wtime)();		/* memory write timeout */
40 #define scb_sbierr scb_wtime		/*=SBI error (8600) */
41 	int	(*scb_sbifail)();	/* SBI fail (8600) */
42 	int	(*scb_stray4[7])();
43 	int	(*scb_soft[15])();	/* software interrupt */
44 	int	(*scb_timer)();		/* interval timer interrupt */
45 	int	(*scb_stray5)();
46 	int	(*scb_cn1rint)();	/* console terminal 1 rcv (8200) */
47 	int	(*scb_cn1xint)();	/* console terminal 1 xmt (8200) */
48 	int	(*scb_cn2rint)();	/* console 2 rcv (8200) */
49 	int	(*scb_cn2xint)();	/* console 2 xmt (8200) */
50 	int	(*scb_cn3rint)();	/* console 3 rcv (8200) */
51 	int	(*scb_cn3xint)();	/* console 3 xmt (8200) */
52 	int	(*scb_stray6[4])();
53 	int	(*scb_csdr)();		/* console storage receive */
54 	int	(*scb_csdx)();		/* console storage transmit */
55 	int	(*scb_ctr)();		/* console terminal receive */
56 	int	(*scb_ctx)();		/* console terminal transmit */
57 	int	(*scb_ipl14[16])();	/* device interrupts IPL 14 */
58 	int	(*scb_ipl15[16])();	/*   "		"    IPL 15 */
59 	int	(*scb_ipl16[16])();	/*   "		"    IPL 16 */
60 	int	(*scb_ipl17[16])();	/*   "		"    IPL 17 */
61 	/*
62 	 * On the 8600, this is followed by a second copy of the SCB.
63 	 * On the 750, this is followed by 128 uba0 device interrupts,
64 	 * then 128 uba1 device interrupts.
65 	 */
66 };
67 
68 #ifdef KERNEL
69 extern	struct scb scb[];
70 #endif
71 
72 #define	scbentry(f, how)		((int (*)())(((int)f)+how))
73 
74 #define	SCB_KSTACK	0
75 #define	SCB_ISTACK	1
76 #define	SCB_WCS		2
77 #define	SCB_HALT	3
78