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