| plan 9 kernel history: overview | file list | diff list |
1991/0706/pc/mem.h (diff list | history)
| 1991/0705/sys/src/9/pc/mem.h:5,11 – 1991/0706/sys/src/9/pc/mem.h:5,10 (short | long | prev | next) | ||
| 1991/0625 | /* * Sizes */ | |
| 1991/0613 | ||
| 1991/0625 | #define BI2BY 8 /* bits per byte */ #define BI2WD 32 /* bits per word */ #define BY2WD 4 /* bytes per word */ | |
| 1991/0705/sys/src/9/pc/mem.h:20,26 – 1991/0706/sys/src/9/pc/mem.h:19,24 | ||
| 1991/0705 | * Time * Clock frequency is ??? HZ | |
| 1991/0613 | */ | |
| 1991/0705 | #define HZ (18) /* clock frequency */ #define MS2HZ (54) /* millisec per clock tick */ #define TK2SEC(t) ((t)*10/185) /* ticks to seconds */ | |
| 1991/0705/sys/src/9/pc/mem.h:30,36 – 1991/0706/sys/src/9/pc/mem.h:28,33 | ||
| 1991/0613 | /* | |
| 1991/0625 | * Fundamental addresses | |
| 1991/0613 | */ | |
| 1991/0625 | #define USERADDR 0xC0000000 #define UREGADDR (USERADDR+BY2PG-4*16) | |
| 1991/0705/sys/src/9/pc/mem.h:40,46 – 1991/0706/sys/src/9/pc/mem.h:37,42 | ||
| 1991/0625 | * User is at 0-2GB * Kernel is at 2GB-4GB | |
| 1991/0613 | */ | |
| 1991/0625 | #define UZERO 0 /* base of user address space */ #define UTZERO (UZERO+BY2PG) /* first address in user text */ #define TSTKTOP USERADDR /* end of new stack in sysexec */ | |
| 1991/0705/sys/src/9/pc/mem.h:55,63 – 1991/0706/sys/src/9/pc/mem.h:51,58 | ||
| 1991/0625 | #define isphys(x) ((x)&KZERO) | |
| 1991/0613 | /* | |
| 1991/0706 | * known 80386 segments (in GDT) and their selectors | |
| 1991/0613 | */ | |
| 1991/0625 |
| |
| 1991/0703 | #define KDSEG 1 /* kernel data/stack */ #define KESEG 2 /* kernel executable */ | |
| 1991/0705/sys/src/9/pc/mem.h:64,69 – 1991/0706/sys/src/9/pc/mem.h:59,66 | ||
| 1991/0703 | #define UDSEG 3 /* user data/stack */ #define UESEG 4 /* user executable */ | |
| 1991/0625 | #define SYSGATE 5 /* system call gate */ | |
| 1991/0706 | #define RDSEG 6 /* reboot data/stack */ #define RESEG 7 /* reboot executable */ | |
| 1991/0625 | #define SELGDT (0<<3) /* selector is in gdt */ #define SELLDT (1<<3) /* selector is in ldt */ | |
| 1991/0705/sys/src/9/pc/mem.h:77,82 – 1991/0706/sys/src/9/pc/mem.h:74,81 | ||
| 1991/0613 | #define UESEL SELECTOR(UESEG, SELGDT, 3) #define UDSEL SELECTOR(UDSEG, SELGDT, 3) #define USSEL SELECTOR(UDSEG, SELGDT, 3) | |
| 1991/0706 | #define RDSEL SELECTOR(RDSEG, SELGDT, 0) #define RESEL SELECTOR(RESEG, SELGDT, 0) | |
| 1991/0613 | ||
| 1991/0627 | /* * fields in segment descriptors | |
| 1991/0705/sys/src/9/pc/mem.h:96,98 – 1991/0706/sys/src/9/pc/mem.h:95,104 | ||
| 1991/0627 | #define SEGW (1<<9) /* writable (for data/stack) */ #define SEGR (1<<9) /* readable (for code) */ #define SEGD (1<<22) /* default 1==32bit (for code) */ | |
| 1991/0706 | /* * virtual MMU entries */ #define PTEMAPMEM (1024*1024) /* ??? */ #define SEGMAPSIZE 16 /* ??? */ #define PTEPERTAB (PTEMAPMEM/BY2PG) /* ??? */ | |