|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1986, 1988 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * This code is derived from software contributed to Berkeley by ! 6: * Computer Consoles Inc. ! 7: * ! 8: * Redistribution is only permitted until one year after the first shipment ! 9: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and ! 10: * binary forms are permitted provided that: (1) source distributions retain ! 11: * this entire copyright notice and comment, and (2) distributions including ! 12: * binaries display the following acknowledgement: This product includes ! 13: * software developed by the University of California, Berkeley and its ! 14: * contributors'' in the documentation or other materials provided with the ! 15: * distribution and in all advertising materials mentioning features or use ! 16: * of this software. Neither the name of the University nor the names of ! 17: * its contributors may be used to endorse or promote products derived from ! 18: * this software without specific prior written permission. ! 19: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 20: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 21: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 22: * ! 23: * @(#)cpu.h 7.3 (Berkeley) 6/28/90 ! 24: */ ! 25: ! 26: /* ! 27: * Assorted definitions unique to TAHOE CPU support. ! 28: */ ! 29: ! 30: #define uncache(v) mtpr(PDCS, (caddr_t)(v)) ! 31: #define movow(a,w) _movow((u_short *)(a), (u_short)(w)) ! 32: #define movob(a,b) _movob((u_char *)(a), (u_char)(b)) ! 33: ! 34: #define resettodr() /* no todr to set */ ! 35: ! 36: #define MAXCKEY 255 /* maximal allowed code key */ ! 37: #define MAXDKEY 255 /* maximal allowed data key */ ! 38: #define NCKEY (MAXCKEY+1) /* # code keys, including 0 (reserved) */ ! 39: #define NDKEY (MAXDKEY+1) /* # data keys, including 0 (reserved) */ ! 40: ! 41: #ifndef LOCORE ! 42: #ifdef KERNEL ! 43: char ckey_cache[NCKEY]; /* 1 =>'s key i may be in code cache */ ! 44: short ckey_cnt[NCKEY]; /* code key reference count */ ! 45: char dkey_cache[NDKEY]; /* 1 =>'s key i may be in data cache */ ! 46: short dkey_cnt[NDKEY]; /* data key reference count */ ! 47: #endif ! 48: ! 49: /* ! 50: * Statistics maintained for code and ! 51: * data cache key allocations algorithms. ! 52: */ ! 53: struct keystats { ! 54: long ks_avail; /* number of keys currently unallocated */ ! 55: long ks_dirty; /* number of keys currently waiting for purge */ ! 56: long ks_allocs; /* number of keys allocated */ ! 57: long ks_allocfree; /* key allocated from free slot */ ! 58: long ks_norefs; /* key marked in use, but refcnt 0 */ ! 59: long ks_taken; /* key taken from single process */ ! 60: long ks_shared; /* key taken from multiple processes */ ! 61: long ks_inval; /* number of times keys exchanged */ ! 62: }; ! 63: #endif ! 64: ! 65: long *user_psl; /* user mode psl for ast's */ ! 66: int intenable; /* interrupts enable startup flag */ ! 67: int clk_enable; /* clock enable startup flag */ ! 68: ! 69: /* ! 70: * Enable realtime clock. ! 71: */ ! 72: #define enablertclock() (clk_enable = 1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.