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