|
|
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.