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