xref: /csrg-svn/sys/tahoe/tahoe/scb.h (revision 25854)
1*25854Ssam /*	scb.h	1.2	86/01/12	*/
225683Ssam 
325683Ssam /*
425683Ssam  * System control block.
525683Ssam  */
625683Ssam struct	scb {
725683Ssam 	int	(*scb_vec0)();		/* 000: reserved */
8*25854Ssam 	int	(*scb_powfail)();	/* 001: power failure */
9*25854Ssam 	int	(*scb_doadump)();	/* 002: power restore */
10*25854Ssam 	int	(*scb_vec3)();		/* 003: reserved */
11*25854Ssam 	int	(*scb_vec4)();		/* 004: reserved */
12*25854Ssam 	int	(*scb_vec5)();		/* 005: reserved */
13*25854Ssam 	int	(*scb_vec6)();		/* 006: reserved */
14*25854Ssam 	int	(*scb_hardclock)();	/* 007: interval timer (clock) */
15*25854Ssam 	int	(*scb_vec8)();		/* 008: reserved */
16*25854Ssam 	int	(*scb_vec9)();		/* 009: reserved */
17*25854Ssam 	int	(*scb_cnrint)();	/* 00a: console receive */
18*25854Ssam 	int	(*scb_cnxint)();	/* 00b: console transmit */
19*25854Ssam 	int	(*scb_rmtrint)();	/* 00c: remote line receive */
20*25854Ssam 	int	(*scb_rmtxint)();	/* 00d: remote line transmit */
21*25854Ssam 	int	(*scb_vec14)();		/* 00e: reserved */
22*25854Ssam 	int	(*scb_vec15)();		/* 00f: reserved */
23*25854Ssam 	int	(*scb_softint[15])();	/* 010: software ints (ipl 1f-1) */
24*25854Ssam 	int	(*scb_vec31)();		/* 01f: reserved */
25*25854Ssam 	int	(*scb_buserr)();	/* 020: bus error */
26*25854Ssam 	int	(*scb_vec33)();		/* 021: reserved */
27*25854Ssam 	int	(*scb_vec34)();		/* 022: reserved */
28*25854Ssam 	int	(*scb_vec35)();		/* 023: reserved */
29*25854Ssam 	int	(*scb_vec36)();		/* 024: reserved */
30*25854Ssam 	int	(*scb_vec37)();		/* 025: reserved */
31*25854Ssam 	int	(*scb_vec38)();		/* 026: reserved */
32*25854Ssam 	int	(*scb_vec39)();		/* 027: reserved */
33*25854Ssam 	int	(*scb_vec40)();		/* 028: reserved */
34*25854Ssam 	int	(*scb_vec41)();		/* 029: reserved */
35*25854Ssam 	int	(*scb_vec42)();		/* 02a: reserved */
36*25854Ssam 	int	(*scb_syscall)();	/* 02b: system call (kcall) */
37*25854Ssam 	int	(*scb_privinflt)();	/* 02c: privileged/reserved inst */
38*25854Ssam 	int	(*scb_respoflt)();	/* 02d: reserved operand */
39*25854Ssam 	int	(*scb_resadflt)();	/* 02e: reserved addressing mode */
40*25854Ssam 	int	(*scb_protflt)();	/* 02f: access control violation */
41*25854Ssam 	int	(*scb_transflt)();	/* 030: translation not valid */
42*25854Ssam 	int	(*scb_kspnotval)();	/* 031: kernel stack invalid */
43*25854Ssam 	int	(*scb_tracep)();	/* 032: trace trap */
44*25854Ssam 	int	(*scb_bptflt)();	/* 033: breakpoint */
45*25854Ssam 	int	(*scb_arithtrap)();	/* 034: arithmetic exception */
46*25854Ssam 	int	(*scb_alignflt)();	/* 035: alignment fault */
47*25854Ssam 	int	(*scb_sfexcep)();	/* 036: system forced exception */
48*25854Ssam 	int	(*scb_fpm)();		/* 037: floating point emulation */
49*25854Ssam 	int	(*scb_vec56)();		/* 038: reserved */
50*25854Ssam 	int	(*scb_vec57)();		/* 039: reserved */
51*25854Ssam 	int	(*scb_vec58)();		/* 03a: reserved */
52*25854Ssam 	int	(*scb_vec59)();		/* 03b: reserved */
53*25854Ssam 	int	(*scb_vec60)();		/* 03c: reserved */
54*25854Ssam 	int	(*scb_vec61)();		/* 03d: reserved */
55*25854Ssam 	int	(*scb_vec62)();		/* 03e: reserved */
56*25854Ssam 	int	(*scb_vec63)();		/* 03f: reserved */
57*25854Ssam 	int	(*scb_devint[191])();	/* 040: device vectors */
5825683Ssam };
59*25854Ssam 
60*25854Ssam #define	SCB_LASTIV	(sizeof (((struct scb *)0)->scb_devint) / \
61*25854Ssam     sizeof (((struct scb *)0)->scb_devint[0]))
62*25854Ssam 
63*25854Ssam #ifdef KERNEL
64*25854Ssam extern	struct scb scb;
65*25854Ssam #endif
66