xref: /csrg-svn/sys/tahoe/include/cpu.h (revision 52626)
130263Skarels /*
235733Sbostic  * Copyright (c) 1986, 1988 The Regents of the University of California.
335733Sbostic  * All rights reserved.
430263Skarels  *
535733Sbostic  * This code is derived from software contributed to Berkeley by
635733Sbostic  * Computer Consoles Inc.
735733Sbostic  *
844526Sbostic  * %sccs.include.redist.c%
935733Sbostic  *
10*52626Ssklower  *	@(#)cpu.h	7.4 (Berkeley) 02/20/92
1130263Skarels  */
1230263Skarels 
1330263Skarels /*
1430263Skarels  * Assorted definitions unique to TAHOE CPU support.
1530263Skarels  */
1630263Skarels 
1730263Skarels #define	uncache(v)	mtpr(PDCS, (caddr_t)(v))
1830263Skarels #define	movow(a,w)	_movow((u_short *)(a), (u_short)(w))
1930263Skarels #define	movob(a,b)	_movob((u_char *)(a), (u_char)(b))
2030263Skarels 
2130263Skarels #define	resettodr()	/* no todr to set */
2230263Skarels 
2330626Skarels #define	MAXCKEY	255		/* maximal allowed code key */
2430626Skarels #define	MAXDKEY	255		/* maximal allowed data key */
2530626Skarels #define	NCKEY	(MAXCKEY+1)	/* # code keys, including 0 (reserved) */
2630626Skarels #define	NDKEY	(MAXDKEY+1)	/* # data keys, including 0 (reserved) */
2730626Skarels 
2830263Skarels #ifndef LOCORE
2930263Skarels #ifdef KERNEL
3030263Skarels char	ckey_cache[NCKEY];	/* 1 =>'s key i may be in code cache */
3130263Skarels short	ckey_cnt[NCKEY];	/* code key reference count */
3230263Skarels char	dkey_cache[NDKEY];	/* 1 =>'s key i may be in data cache */
3330263Skarels short	dkey_cnt[NDKEY];	/* data key reference count */
3430263Skarels #endif
3530263Skarels 
3630263Skarels /*
3730263Skarels  * Statistics maintained for code and
3830263Skarels  * data cache key allocations algorithms.
3930263Skarels  */
4030263Skarels struct	keystats {
4130626Skarels 	long	ks_avail;	/* number of keys currently unallocated */
4230626Skarels 	long	ks_dirty;	/* number of keys currently waiting for purge */
4330263Skarels 	long	ks_allocs;	/* number of keys allocated */
4430626Skarels 	long	ks_allocfree;	/* key allocated from free slot */
4530263Skarels 	long	ks_norefs;	/* key marked in use, but refcnt 0 */
4630263Skarels 	long	ks_taken;	/* key taken from single process */
4730263Skarels 	long	ks_shared;	/* key taken from multiple processes */
4830626Skarels 	long	ks_inval;	/* number of times keys exchanged */
4930263Skarels };
5030263Skarels #endif
5130263Skarels 
5230263Skarels long	*user_psl;		/* user mode psl for ast's */
5330263Skarels int	intenable;		/* interrupts enable startup flag */
5430263Skarels int	clk_enable;		/* clock enable startup flag */
5530263Skarels 
5630263Skarels /*
5730263Skarels  * Enable realtime clock.
5830263Skarels  */
5930263Skarels #define	enablertclock()	(clk_enable = 1)
60*52626Ssklower 
61*52626Ssklower #ifndef _MTPR_H_
62*52626Ssklower #include "mtpr.h"
63*52626Ssklower #endif /* !_MTPR_H_ */
64