|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1986, 1988 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)machparam.h 7.1 (Berkeley) 5/21/88 ! 7: */ ! 8: ! 9: /* ! 10: * Machine dependent constants for TAHOE. ! 11: */ ! 12: #define MACHINE "tahoe" ! 13: ! 14: #ifndef BYTE_ORDER ! 15: #include <machine/endian.h> ! 16: #endif ! 17: ! 18: #define CHAR_BIT NBBY ! 19: #define CHAR_MAX 0x7f ! 20: #define CHAR_MIN 0x80 ! 21: #define CLK_TCK 60 /* for times() */ ! 22: #define INT_MAX 0x7fffffff ! 23: #define INT_MIN 0x80000000 ! 24: #define LONG_MAX 0x7fffffff ! 25: #define LONG_MIN 0x80000000 ! 26: #define SCHAR_MAX 0x7f ! 27: #define SCHAR_MIN 0x80 ! 28: #define SHRT_MAX 0x7fff ! 29: #define SHRT_MIN 0x8000 ! 30: #define UCHAR_MAX 0xff ! 31: #define UINT_MAX 0xffffffff ! 32: #define ULONG_MAX 0xffffffff ! 33: #define USHRT_MAX 0xffff ! 34: ! 35: #define NBPG 1024 /* bytes/page */ ! 36: #define PGOFSET (NBPG-1) /* byte offset into page */ ! 37: #define PGSHIFT 10 /* LOG2(NBPG) */ ! 38: #define NPTEPG (NBPG/(sizeof (struct pte))) ! 39: ! 40: #define KERNBASE 0xc0000000 /* start of kernel virtual */ ! 41: #define BTOPKERNBASE ((u_long)KERNBASE >> PGSHIFT) ! 42: ! 43: #define DEV_BSIZE 1024 ! 44: #define DEV_BSHIFT 10 /* log2(DEV_BSIZE) */ ! 45: #define BLKDEV_IOSIZE 1024 /* NBPG for physical controllers */ ! 46: #define MAXPHYS (64 * 1024) /* max raw I/O transfer size */ ! 47: ! 48: #define CLSIZE 1 ! 49: #define CLSIZELOG2 0 ! 50: ! 51: #define SSIZE 2 /* initial stack size/NBPG */ ! 52: #define SINCR 2 /* increment of stack/NBPG */ ! 53: #define UPAGES 6 /* pages of u-area (2 stack pages) */ ! 54: ! 55: #define MAXCKEY 255 /* maximal allowed code key */ ! 56: #define MAXDKEY 255 /* maximal allowed data key */ ! 57: #define NCKEY (MAXCKEY+1) /* # code keys, including 0 (reserved) */ ! 58: #define NDKEY (MAXDKEY+1) /* # data keys, including 0 (reserved) */ ! 59: ! 60: /* ! 61: * Some macros for units conversion ! 62: */ ! 63: /* Core clicks (1024 bytes) to segments and vice versa */ ! 64: #define ctos(x) (x) ! 65: #define stoc(x) (x) ! 66: ! 67: /* Core clicks (1024 bytes) to disk blocks */ ! 68: #define ctod(x) (x) ! 69: #define dtoc(x) (x) ! 70: #define dtob(x) ((x)<<PGSHIFT) ! 71: ! 72: /* clicks to bytes */ ! 73: #define ctob(x) ((x)<<PGSHIFT) ! 74: ! 75: /* bytes to clicks */ ! 76: #define btoc(x) ((((unsigned)(x)+NBPG-1) >> PGSHIFT)) ! 77: ! 78: #define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \ ! 79: ((unsigned)(bytes) >> DEV_BSHIFT) ! 80: #define dbtob(db) /* calculates (db * DEV_BSIZE) */ \ ! 81: ((unsigned)(db) << DEV_BSHIFT) ! 82: ! 83: /* ! 84: * Map a ``block device block'' to a file system block. ! 85: * This should be device dependent, and will be if we ! 86: * add an entry to cdevsw/bdevsw for that purpose. ! 87: * For now though just use DEV_BSIZE. ! 88: */ ! 89: #define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE)) ! 90: ! 91: /* ! 92: * Macros to decode processor status word. ! 93: */ ! 94: #define USERMODE(ps) (((ps) & PSL_CURMOD) == PSL_CURMOD) ! 95: #define BASEPRI(ps) (((ps) & PSL_IPL) == 0) ! 96: ! 97: #define DELAY(n) { register int N = 3*(n); while (--N > 0); }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.