## diffname alphapc/mem.h 1999/0415 ## diff -e /dev/null /n/emeliedump/1999/0415/sys/src/brazil/alphapc/mem.h 0a /* * Memory and machine-specific definitions. Used in C and assembler. */ /* * Sizes */ #define BI2BY 8 /* bits per byte */ #define BI2WD 32 /* bits per word */ #define BY2WD 4 /* bytes per word */ #define BY2V 8 /* bytes per vlong */ #define BY2PG 8192 /* bytes per page */ #define WD2PG (BY2PG/BY2WD) /* words per page */ #define PGSHIFT 13 /* log(BY2PG) */ #define ROUND(s, sz) (((s)+(sz-1))&~(sz-1)) #define PGROUND(s) ROUND(s, BY2PG) #define BY2PTE 8 /* bytes per pte entry */ #define PTE2PG (BY2PG/BY2PTE) /* pte entries per page */ #define MAXMACH 1 /* max # cpus system can run */ #define KSTACK 4096 /* Size of kernel stack */ /* * Time */ #define HZ 100 /* clock frequency */ #define MS2HZ (1000/HZ) #define TK2SEC(t) ((t)/HZ) /* ticks to seconds */ #define TK2MS(t) ((t)*MS2HZ) /* ticks to milliseconds */ #define MS2TK(t) ((t)/MS2HZ) /* milliseconds to ticks */ /* * Magic registers */ #define MACH 15 /* R15 is m-> */ #define USER 14 /* R14 is up-> */ /* * Fundamental addresses */ /* XXX MACHADDR, MACHP(n) */ /* * MMU * * A PTE is 64 bits, but a ulong is 32! Hence we encode * the PTEs specially for fault.c, and decode them in putmmu(). * This means that we can only map the first 2G of physical * space via putmmu() - ie only physical memory, not devices. */ #define PTEVALID 0x3301 #define PTEKVALID 0x1101 #define PTEASM 0x0010 #define PTEGH(s) ((s)<<5) #define PTEWRITE 0 #define PTERONLY 0x4 #define PTEUNCACHED 0 #define PPN(n) (((n)>>PGSHIFT)<<14) #define FIXPTE(x) ((((uvlong)(x)>>14)<<32)|((x) & 0x3fff)) #define PTEPFN(pa) (((uvlong)(pa)>>PGSHIFT)<<32) #define NCOLOR 1 #define getpgcolor(a) 0 #define PTEMAPMEM (1024*1024) #define PTEPERTAB (PTEMAPMEM/BY2PG) #define SEGMAPSIZE 512 #define SSEGMAPSIZE 16 /* * Address spaces */ #define UZERO 0 /* base of user address space */ #define UTZERO (UZERO+BY2PG) /* first address in user text */ #define USTKTOP (TSTKTOP-TSTKSIZ*BY2PG) /* byte just beyond user stack */ #define TSTKTOP KZERO /* top of temporary stack */ #define TSTKSIZ 100 #define KZERO 0x80000000 /* base of kernel address space */ #define KTZERO (KZERO+0x400000) /* first address in kernel text */ #define USTKSIZE (4*1024*1024) /* size of user stack */ /* * Palcode instructions a la OSF/1 */ #define PALbpt 0x80 #define PALbugchk 0x81 #define PALcallsys 0x83 #define PALimb 0x86 #define PALgentrap 0xaa #define PALrdunique 0x9e #define PALwrunique 0x9f #define PALhalt 0x00 #define PALdraina 0x02 #define PALcserve 0x09 #define PALrdps 0x36 #define PALrdusp 0x3a #define PALrdval 0x32 #define PALretsys 0x3d #define PALrti 0x3f #define PALswpctx 0x30 #define PALswpipl 0x35 #define PALtbi 0x33 #define PALwhami 0x3c #define PALwrent 0x34 #define PALwrfen 0x2b #define PALwrkgp 0x37 #define PALwrusp 0x38 #define PALwrval 0x31 #define PALwrvptptr 0x2d /* * Plus some useful VMS ones (needed at early boot time) */ #define PALmfpr_pcbb 0x12 #define PALmfpr_ptbr 0x15 #define PALmfpr_vptb 0x29 #define PALldqp 0x03 #define PALstqp 0x04 #define PALswppal 0x0a /* * Processor Status (as returned by rdps) */ #define UMODE 0x8 #define IPL 0x7 #define isphys(x) (((ulong)x&KZERO)!=0) . ## diffname alphapc/mem.h 1999/0522 ## diff -e /n/emeliedump/1999/0415/sys/src/brazil/alphapc/mem.h /n/emeliedump/1999/0522/sys/src/brazil/alphapc/mem.h 17a #define BLOCKALIGN 8 . ## diffname alphapc/mem.h 2000/0726 ## diff -e /n/emeliedump/1999/0522/sys/src/brazil/alphapc/mem.h /n/emeliedump/2000/0726/sys/src/9/alphapc/mem.h 33c #define MS2TK(t) (((t)*HZ+500)/1000) /* milliseconds to closest tick */ . ## diffname alphapc/mem.h 2001/0727 ## diff -e /n/emeliedump/2000/0726/sys/src/9/alphapc/mem.h /n/emeliedump/2001/0727/sys/src/9/alphapc/mem.h 32d ## diffname alphapc/mem.h 2002/0326 ## diff -e /n/emeliedump/2001/0727/sys/src/9/alphapc/mem.h /n/emeliedump/2002/0326/sys/src/9/alphapc/mem.h 32d