1*74a4d8c2SCharles.Forsyth /* 2*74a4d8c2SCharles.Forsyth * Memory and machine-specific definitions. Used in C and assembler. 3*74a4d8c2SCharles.Forsyth */ 4*74a4d8c2SCharles.Forsyth 5*74a4d8c2SCharles.Forsyth /* 6*74a4d8c2SCharles.Forsyth * Sizes 7*74a4d8c2SCharles.Forsyth */ 8*74a4d8c2SCharles.Forsyth #define BI2BY 8 /* bits per byte */ 9*74a4d8c2SCharles.Forsyth #define BI2WD 32 /* bits per word */ 10*74a4d8c2SCharles.Forsyth #define BY2WD 4 /* bytes per word */ 11*74a4d8c2SCharles.Forsyth #define BY2PG 4096 /* bytes per page */ 12*74a4d8c2SCharles.Forsyth #define WD2PG (BY2PG/BY2WD) /* words per page */ 13*74a4d8c2SCharles.Forsyth #define PGSHIFT 12 /* log(BY2PG) */ 14*74a4d8c2SCharles.Forsyth #define PGROUND(s) (((s)+(BY2PG-1))&~(BY2PG-1)) 15*74a4d8c2SCharles.Forsyth 16*74a4d8c2SCharles.Forsyth #define MAXMACH 1 /* max # cpus system can run */ 17*74a4d8c2SCharles.Forsyth 18*74a4d8c2SCharles.Forsyth /* 19*74a4d8c2SCharles.Forsyth * Time 20*74a4d8c2SCharles.Forsyth */ 21*74a4d8c2SCharles.Forsyth #define HZ (20) /* clock frequency */ 22*74a4d8c2SCharles.Forsyth #define MS2HZ (1000/HZ) /* millisec per clock tick */ 23*74a4d8c2SCharles.Forsyth #define TK2SEC(t) ((t)/HZ) /* ticks to seconds */ 24*74a4d8c2SCharles.Forsyth #define TK2MS(t) ((((ulong)(t))*1000)/HZ) /* ticks to milliseconds */ 25*74a4d8c2SCharles.Forsyth #define MS2TK(t) ((((ulong)(t))*HZ)/1000) /* milliseconds to ticks */ 26*74a4d8c2SCharles.Forsyth 27*74a4d8c2SCharles.Forsyth /* 28*74a4d8c2SCharles.Forsyth * Fundamental addresses 29*74a4d8c2SCharles.Forsyth */ 30*74a4d8c2SCharles.Forsyth 31*74a4d8c2SCharles.Forsyth /* 32*74a4d8c2SCharles.Forsyth * Address spaces 33*74a4d8c2SCharles.Forsyth * 34*74a4d8c2SCharles.Forsyth * Kernel is at 0x00008000 35*74a4d8c2SCharles.Forsyth */ 36*74a4d8c2SCharles.Forsyth #define KZERO 0x00000000 /* base of kernel address space */ 37*74a4d8c2SCharles.Forsyth #define KTZERO KZERO /* first address in kernel text */ 38*74a4d8c2SCharles.Forsyth #define MACHSIZE 4096 39