|
|
1.1 root 1: /*
2: * Some useful and miscellaneous things.
3: */
4: #ifndef COHERENT_H
5: #define COHERENT_H COHERENT_H
6:
7: #define KERNEL
8: #include <sys/types.h>
9: #include <sys/timeout.h>
10: #include <sys/param.h>
11: #include <sys/fun.h>
12: #include <sys/mmu.h>
13: #include <sys/uproc.h>
14: #ifdef _I386
15: #include <sys/reg.h>
16: #else
17: #include <sys/machine.h>
18: #define v_sleep(a1,a2,a3,a4,a5) sleep(a1,a2,a3,a4)
19: #endif
20:
21: #ifdef TRACER
22: #include <sys/mwc_coherent.h>
23: #else
24: #define SET_U_ERROR(errno, msg) { u.u_error = errno; }
25: #define T_HAL(f,c)
26: #define T_PIGGY(f,c)
27: #define T_VLAD(f,c)
28: #define T_CON(f,c)
29: #endif /* TRACER */
30:
31: #ifdef _I386
32: #define CHIRP(ch) chirp(ch)
33: #define _CHIRP(ch, locn) _chirp(ch, locn)
34: #else
35: #define CHIRP(ch)
36: #define _CHIRP(ch, locn)
37: #endif
38:
39: /*
40: * Null
41: */
42: #ifndef NULL /* machine.h doesn't have any ideas */
43: #define NULL 0
44: #endif
45:
46: /*
47: * Storage management functions.
48: */
49: extern char *alloc();
50: #define kalloc(n) alloc(allkp, n)
51: #define kfree(p) free(p)
52:
53: /*
54: * Functions for copying between kernel and segments.
55: */
56: #define kscopy(k, s, o, n) kpcopy(k, s->s_paddr+o, n)
57: #define skcopy(s, o, k, n) pkcopy(s->s_paddr+o, k, n)
58:
59: /*
60: * Time of day structure.
61: */
62: typedef struct TIME {
63: time_t t_time; /* Time and date */
64: int t_tick; /* Clock ticks into this second */
65: int t_zone; /* Time zone */
66: int t_dstf; /* Daylight saving time used */
67: } TIME;
68:
69: /*
70: * General global variables.
71: */
72: extern int debflag; /* General debug flag */
73: extern int batflag; /* Turn on clock flag */
74: extern int outflag; /* Device timeouts */
75: extern int ttyflag; /* Console is present */
76: extern int mactype; /* Machine type */
77: extern unsigned utimer; /* Unsigned timer */
78: extern long lbolt; /* Clock ticks since system startup */
79: extern TIM stimer; /* Swap timer */
80: extern unsigned msize; /* Memory size in K */
81: extern unsigned asize; /* Alloc size in bytes */
82: extern TIME timer; /* Current time */
83: extern char *icodep; /* Init code start */
84: extern int icodes; /* Init code size */
85: extern dev_t rootdev; /* Root device */
86: extern dev_t swapdev; /* Swap device */
87: extern dev_t pipedev; /* Pipe device */
88: extern paddr_t corebot; /* Bottom of core */
89: extern paddr_t coretop; /* Top of core */
90: extern paddr_t holebot; /* Bottom of I/O memory */
91: extern paddr_t holetop; /* Top of I/O memory */
92: extern daddr_t swapbot; /* Bottom of swap */
93: extern daddr_t swaptop; /* Top of swap */
94: extern paddr_t clistp; /* Base of clists */
95: extern struct all *allkp; /* Alloc space */
96: extern int NSLOT; /* Num of loadable driver data slots */
97: extern int slotsz; /* Size of loadable driver data slot */
98: extern int * slotp; /* Loadable driver pids/data space */
99: extern int (*altclk)(); /* hook for polled devices */
100: extern UPROC u; /* Current user area. */
101:
102: #ifdef _I386
103:
104: extern unsigned total_mem; /* Total physical memory in bytes. */
105: extern SR blockp; /* Base of buffers */
106: extern SR allocp;
107: extern int dev_loaded;
108: extern int DUMP_LIM;
109:
110: #else
111:
112: extern char *idatap; /* Init data start */
113: extern int idatas; /* Init data size */
114: extern paddr_t blockp; /* Base of buffers */
115: extern int altsel; /* for far polling, this is selector */
116: /* ... for altclk; for near polling, */
117: /* ... this is zero */
118: extern int is_ps; /* 1 if running on a PS/2 */
119:
120: #endif
121: #endif /* COHERENT_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.