xref: /csrg-svn/sys/tahoe/tahoe/scb.h (revision 34408)
1*34408Skarels /*
2*34408Skarels  *	@(#)scb.h	7.1 (Berkeley) 05/21/88
3*34408Skarels  */
425683Ssam 
525683Ssam /*
625683Ssam  * System control block.
725683Ssam  */
825683Ssam struct	scb {
925683Ssam 	int	(*scb_vec0)();		/* 000: reserved */
1025854Ssam 	int	(*scb_powfail)();	/* 001: power failure */
1125854Ssam 	int	(*scb_doadump)();	/* 002: power restore */
1225854Ssam 	int	(*scb_vec3)();		/* 003: reserved */
1325854Ssam 	int	(*scb_vec4)();		/* 004: reserved */
1425854Ssam 	int	(*scb_vec5)();		/* 005: reserved */
1525854Ssam 	int	(*scb_vec6)();		/* 006: reserved */
1625854Ssam 	int	(*scb_hardclock)();	/* 007: interval timer (clock) */
1725854Ssam 	int	(*scb_vec8)();		/* 008: reserved */
1825854Ssam 	int	(*scb_vec9)();		/* 009: reserved */
1925854Ssam 	int	(*scb_cnrint)();	/* 00a: console receive */
2025854Ssam 	int	(*scb_cnxint)();	/* 00b: console transmit */
2125854Ssam 	int	(*scb_rmtrint)();	/* 00c: remote line receive */
2225854Ssam 	int	(*scb_rmtxint)();	/* 00d: remote line transmit */
2325854Ssam 	int	(*scb_vec14)();		/* 00e: reserved */
2425854Ssam 	int	(*scb_vec15)();		/* 00f: reserved */
2525854Ssam 	int	(*scb_softint[15])();	/* 010: software ints (ipl 1f-1) */
2625854Ssam 	int	(*scb_vec31)();		/* 01f: reserved */
2725854Ssam 	int	(*scb_buserr)();	/* 020: bus error */
2825854Ssam 	int	(*scb_vec33)();		/* 021: reserved */
2925854Ssam 	int	(*scb_vec34)();		/* 022: reserved */
3025854Ssam 	int	(*scb_vec35)();		/* 023: reserved */
3125854Ssam 	int	(*scb_vec36)();		/* 024: reserved */
3225854Ssam 	int	(*scb_vec37)();		/* 025: reserved */
3325854Ssam 	int	(*scb_vec38)();		/* 026: reserved */
3425854Ssam 	int	(*scb_vec39)();		/* 027: reserved */
3525854Ssam 	int	(*scb_vec40)();		/* 028: reserved */
3625854Ssam 	int	(*scb_vec41)();		/* 029: reserved */
3725854Ssam 	int	(*scb_vec42)();		/* 02a: reserved */
3825854Ssam 	int	(*scb_syscall)();	/* 02b: system call (kcall) */
3925854Ssam 	int	(*scb_privinflt)();	/* 02c: privileged/reserved inst */
4025854Ssam 	int	(*scb_respoflt)();	/* 02d: reserved operand */
4125854Ssam 	int	(*scb_resadflt)();	/* 02e: reserved addressing mode */
4225854Ssam 	int	(*scb_protflt)();	/* 02f: access control violation */
4325854Ssam 	int	(*scb_transflt)();	/* 030: translation not valid */
4425854Ssam 	int	(*scb_kspnotval)();	/* 031: kernel stack invalid */
4525854Ssam 	int	(*scb_tracep)();	/* 032: trace trap */
4625854Ssam 	int	(*scb_bptflt)();	/* 033: breakpoint */
4725854Ssam 	int	(*scb_arithtrap)();	/* 034: arithmetic exception */
4825854Ssam 	int	(*scb_alignflt)();	/* 035: alignment fault */
4925854Ssam 	int	(*scb_sfexcep)();	/* 036: system forced exception */
5025854Ssam 	int	(*scb_fpm)();		/* 037: floating point emulation */
5125854Ssam 	int	(*scb_vec56)();		/* 038: reserved */
5225854Ssam 	int	(*scb_vec57)();		/* 039: reserved */
5325854Ssam 	int	(*scb_vec58)();		/* 03a: reserved */
5425854Ssam 	int	(*scb_vec59)();		/* 03b: reserved */
5525854Ssam 	int	(*scb_vec60)();		/* 03c: reserved */
5625854Ssam 	int	(*scb_vec61)();		/* 03d: reserved */
5725854Ssam 	int	(*scb_vec62)();		/* 03e: reserved */
5825854Ssam 	int	(*scb_vec63)();		/* 03f: reserved */
5925854Ssam 	int	(*scb_devint[191])();	/* 040: device vectors */
6025683Ssam };
6125854Ssam 
6225854Ssam #define	SCB_LASTIV	(sizeof (((struct scb *)0)->scb_devint) / \
6325854Ssam     sizeof (((struct scb *)0)->scb_devint[0]))
6425854Ssam 
6525854Ssam #ifdef KERNEL
6625854Ssam extern	struct scb scb;
6725854Ssam #endif
68