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