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