vx32

Local 9vx git repository for patches.
git clone git://r-36.net/vx32
Log | Files | Refs

commit 48f1234eb07fb8c62ba5a38277be2c99ff1074b3
parent afe9c1be3a405ae06f8aa1f0d7967cdf8abdd059
Author: Jesus Galan Lopez (yiyus) <yiyu.jgl@gmail.com>
Date:   Sun, 12 Sep 2010 23:34:37 +0200

revert mem.h

Diffstat:
Msrc/9vx/a/mem.h | 102++++---------------------------------------------------------------------------
1 file changed, 5 insertions(+), 97 deletions(-)

diff --git a/src/9vx/a/mem.h b/src/9vx/a/mem.h @@ -18,109 +18,24 @@ #define BLOCKALIGN 8 #define MAXMACH 128 /* max # cpus system can run */ -#define KSTACK 65536 /* Size of kernel stack */ +#define KSTACK (1024*1024) /* Size of kernel stack */ /* * Time */ -#define HZ (100) /* clock frequency */ +#define HZ (1000) /* clock frequency */ #define MS2HZ (1000/HZ) /* millisec per clock tick */ #define TK2SEC(t) ((t)/HZ) /* ticks to seconds */ /* - * Address spaces + * Address spaces - only user code! */ -#define KZERO 0x80000000 /* base of kernel address space */ -#define KTZERO (KZERO+0x100000) /* first address in kernel text - 9load sits below */ -#define VPT (KZERO-VPTSIZE) -#define VPTSIZE BY2XPG -#define NVPT (VPTSIZE/BY2WD) -#define KMAP (VPT-KMAPSIZE) -#define KMAPSIZE BY2XPG -#define VMAP (KMAP-VMAPSIZE) -#define VMAPSIZE (0x10000000-VPTSIZE-KMAPSIZE) #define UZERO 0 /* base of user address space */ #define UTZERO (UZERO+BY2PG) /* first address in user text */ -#define USTKTOP (0x4000000) /* byte just beyond user stack */ +#define USTKTOP (0x10000000) /* byte just beyond user stack */ #define USTKSIZE (16*1024*1024) /* size of user stack */ #define TSTKTOP (USTKTOP-USTKSIZE) /* end of new stack in sysexec */ -#define TSTKSIZ 100 /* pages in new stack; limits exec args */ - -/* - * Fundamental addresses - bottom 64kB saved for return to real mode - */ -#define CONFADDR (KZERO+0x1200) /* info passed from boot loader */ -#define TMPADDR (KZERO+0x2000) /* used for temporary mappings */ -#define APBOOTSTRAP (KZERO+0x3000) /* AP bootstrap code */ -#define RMUADDR (KZERO+0x7C00) /* real mode Ureg */ -#define RMCODE (KZERO+0x8000) /* copy of first page of KTEXT */ -#define RMBUF (KZERO+0x9000) /* buffer for user space - known to vga */ -#define IDTADDR (KZERO+0x10800) /* idt */ -#define REBOOTADDR (0x11000) /* reboot code - physical address */ -#define CPU0PDB (KZERO+0x12000) /* bootstrap processor PDB */ -#define CPU0PTE (KZERO+0x13000) /* bootstrap processor PTE's for 0-4MB */ -#define CPU0GDT (KZERO+0x14000) /* bootstrap processor GDT */ -#define MACHADDR (KZERO+0x15000) /* as seen by current processor */ -#define CPU0MACH (KZERO+0x16000) /* Mach for bootstrap processor */ -#define MACHSIZE BY2PG -#define CPU0PTE1 (KZERO+0x17000) /* bootstrap processor PTE's for 4MB-8MB */ -#define CPU0END (CPU0PTE1+BY2PG) -/* - * N.B. ramscan knows that CPU0END is the end of reserved data - * N.B. _startPADDR knows that CPU0PDB is the first reserved page - * and that there are 6 of them. - */ - -/* - * known x86 segments (in GDT) and their selectors - */ -#define NULLSEG 0 /* null segment */ -#define KDSEG 1 /* kernel data/stack */ -#define KESEG 2 /* kernel executable */ -#define UDSEG 3 /* user data/stack */ -#define UESEG 4 /* user executable */ -#define TSSSEG 5 /* task segment */ -#define APMCSEG 6 /* APM code segment */ -#define APMCSEG16 7 /* APM 16-bit code segment */ -#define APMDSEG 8 /* APM data segment */ -#define KESEG16 9 /* kernel executable 16-bit */ -#define NGDT 10 /* number of GDT entries required */ - -#define SELGDT (0<<2) /* selector is in gdt */ -#define SELLDT (1<<2) /* selector is in ldt */ - -#define SELECTOR(i, t, p) (((i)<<3) | (t) | (p)) - -#define NULLSEL SELECTOR(NULLSEG, SELGDT, 0) -#define KDSEL SELECTOR(KDSEG, SELGDT, 0) -#define KESEL SELECTOR(KESEG, SELGDT, 0) -#define UESEL SELECTOR(UESEG, SELGDT, 3) -#define UDSEL SELECTOR(UDSEG, SELGDT, 3) -#define TSSSEL SELECTOR(TSSSEG, SELGDT, 0) -#define APMCSEL SELECTOR(APMCSEG, SELGDT, 0) -#define APMCSEL16 SELECTOR(APMCSEG16, SELGDT, 0) -#define APMDSEL SELECTOR(APMDSEG, SELGDT, 0) -/* #define APM40SEL SELECTOR(APM40SEG, SELGDT, 0) */ - -/* - * fields in segment descriptors - */ -#define SEGDATA (0x10<<8) /* data/stack segment */ -#define SEGEXEC (0x18<<8) /* executable segment */ -#define SEGTSS (0x9<<8) /* TSS segment */ -#define SEGCG (0x0C<<8) /* call gate */ -#define SEGIG (0x0E<<8) /* interrupt gate */ -#define SEGTG (0x0F<<8) /* trap gate */ -#define SEGTYPE (0x1F<<8) - -#define SEGP (1<<15) /* segment present */ -#define SEGPL(x) ((x)<<13) /* priority level */ -#define SEGB (1<<22) /* granularity 1==4k (for expand-down) */ -#define SEGG (1<<23) /* granularity 1==4k (for other) */ -#define SEGE (1<<10) /* expand down */ -#define SEGW (1<<9) /* writable (for data/stack) */ -#define SEGR (1<<9) /* readable (for code) */ -#define SEGD (1<<22) /* default 1==32bit (for code) */ +#define TSTKSIZ 100 /* * virtual MMU @@ -144,12 +59,5 @@ #define PTESIZE (1<<7) #define PTEGLOBAL (1<<8) -/* - * Macros for calculating offsets within the page directory base - * and page tables. - */ -#define PDX(va) ((((ulong)(va))>>22) & 0x03FF) -#define PTX(va) ((((ulong)(va))>>12) & 0x03FF) - #define getpgcolor(a) 0