xref: /original-bsd/sys/vax/vax/scb.h (revision c43e4352)
1 /*	scb.h	6.1	83/08/01	*/
2 
3 /*
4  * VAX System control block layout
5  */
6 
7 struct scb {
8 	int	(*scb_stray)();		/* reserved */
9 	int	(*scb_machchk)();	/* machine chack */
10 	int	(*scb_kspinval)();	/* KSP invalid */
11 	int	(*scb_powfail)();	/* power fail */
12 	int	(*scb_resinstr)();	/* reserved instruction */
13 	int	(*scb_custinst)();	/* XFC instr */
14 	int	(*scb_resopnd)();	/* reserved operand */
15 	int	(*scb_resaddr)();	/* reserved addr mode */
16 	int	(*scb_acv)();		/* access control violation */
17 	int	(*scb_tnv)();		/* translation not valid */
18 	int	(*scb_tracep)();	/* trace pending */
19 	int	(*scb_bpt)();		/* breakpoint instr */
20 	int	(*scb_compat)();	/* compatibility mode fault */
21 	int	(*scb_arith)();		/* arithmetic fault */
22 	int	(*scb_stray2)();
23 	int	(*scb_stray3)();
24 	int	(*scb_chmk)();		/* CHMK instr */
25 	int	(*scb_chme)();		/* CHME instr */
26 	int	(*scb_chms)();		/* CHMS instr */
27 	int	(*scb_chmu)();		/* CHMU instr */
28 	int	(*scb_sbisilo)();	/* SBI silo compare */
29 	int	(*scb_cmrd)();		/* corrected mem read data */
30 	int	(*scb_sbialert)();	/* SBI alert */
31 	int	(*scb_sbiflt)();	/* SBI fault */
32 	int	(*scb_wtime)();		/* memory write timeout */
33 	int	(*scb_stray4[8])();
34 	int	(*scb_soft[15])();	/* software interrupt */
35 	int	(*scb_timer)();		/* interval timer interrupt */
36 	int	(*scb_stray5[7])();
37 	int	(*scb_stray6[4])();
38 	int	(*scb_csdr)();		/* console storage receive */
39 	int	(*scb_csdx)();		/* console storage transmit */
40 	int	(*scb_ctr)();		/* console terminal receive */
41 	int	(*scb_ctx)();		/* console terminal transmit */
42 	int	(*scb_ipl14[16])();	/* device interrupts IPL 14 */
43 	int	(*scb_ipl15[16])();	/*   "		"    IPL 15 */
44 	int	(*scb_ipl16[16])();	/*   "		"    IPL 16 */
45 	int	(*scb_ipl17[16])();	/*   "		"    IPL 17 */
46 	int	(*scb_ubaint[128])();	/* Unibus device intr */
47 	int	(*scb_uba1int[128])();	/* Unibus 1 device intr */
48 };
49 
50 #ifdef KERNEL
51 extern	struct scb scb;
52 /* scb.scb_ubaint is the same as UNIvec */
53 #endif
54 
55 #define	scbentry(f, how)		((int (*)())(((int)f)+how))
56 
57 #define	SCB_KSTACK	0
58 #define	SCB_ISTACK	1
59 #define	SCB_WCS		2
60 #define	SCB_HALT	3
61