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