diff options
-rw-r--r-- | sys/amd64/include/pmap.h | 6 | ||||
-rw-r--r-- | sys/amd64/include/vmparam.h | 35 | ||||
-rw-r--r-- | sys/i386/include/pmap.h | 6 | ||||
-rw-r--r-- | sys/i386/include/pte.h | 3 | ||||
-rw-r--r-- | sys/i386/include/vmparam.h | 35 |
5 files changed, 48 insertions, 37 deletions
diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 3f54f1856183..87e483f0f610 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -42,7 +42,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $Id: pmap.h,v 1.34 1996/02/25 03:02:53 dyson Exp $ + * $Id: pmap.h,v 1.35 1996/04/03 05:23:44 dyson Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -73,8 +73,6 @@ struct vm_map; #define NKPDE 63 /* addressable number of page tables/pde's */ #endif -#define NUPDE (NPTEPG-NKPDE) /* number of user pde's */ - /* * The *PTDI values control the layout of virtual memory * @@ -85,7 +83,7 @@ struct vm_map; #define KPTDI (APTDPTDI-NKPDE)/* start of kernel virtual pde's */ #define PTDPTDI (KPTDI-1) /* ptd entry that points to ptd! */ #define KSTKPTDI (PTDPTDI-1) /* ptd entry for u./kernel&user stack */ -#define KSTKPTEOFF (NBPG/sizeof(pd_entry_t)-UPAGES) /* pte entry for kernel stack */ +#define KSTKPTEOFF (NPTEPG-UPAGES) /* pte entry for kernel stack */ #define PDESIZE sizeof(pd_entry_t) /* for assembly files */ #define PTESIZE sizeof(pt_entry_t) /* for assembly files */ diff --git a/sys/amd64/include/vmparam.h b/sys/amd64/include/vmparam.h index 942f742eb7f6..7212da9330c6 100644 --- a/sys/amd64/include/vmparam.h +++ b/sys/amd64/include/vmparam.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $Id: vmparam.h,v 1.18 1995/05/25 07:41:28 davidg Exp $ + * $Id: vmparam.h,v 1.19 1996/03/12 15:37:58 davidg Exp $ */ @@ -87,24 +87,31 @@ */ #define MAXSLP 20 + /* - * Mach derived constants + * Virtual addresses of things. Derived from the page directory and + * page table indexes from pmap.h for precision. + * Because of the page that is both a PD and PT, it looks a little + * messy at times, but hey, we'll do anything to save a page :-) */ -/* user/kernel map constants */ -#define KERNBASE ((0x400-1-NKPDE)*(NBPG*NPTEPG)) +#define VM_MAX_KERNEL_ADDRESS VADDR(KPTDI+NKPDE, 0) +#define VM_MIN_KERNEL_ADDRESS VADDR(PTDPTDI, PTDPTDI) + +#define KERNBASE VADDR(KPTDI, 0) + +#define KPT_MAX_ADDRESS VADDR(PTDPTDI, APTDPTDI) +#define KPT_MIN_ADDRESS VADDR(PTDPTDI, KPTDI) + +#define UPT_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI) +#define UPT_MIN_ADDRESS VADDR(PTDPTDI, 0) + +#define VM_MAXUSER_ADDRESS VADDR(KSTKPTDI, KSTKPTEOFF) + +#define USRSTACK VM_MAXUSER_ADDRESS +#define VM_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI) #define VM_MIN_ADDRESS ((vm_offset_t)0) -#define VM_MAXUSER_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NPTEPG+UPAGES))) -#define USRSTACK VM_MAXUSER_ADDRESS -#define UPT_MIN_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*NPTEPG)) -#define UPT_MAX_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NKPDE+2))) -#define VM_MAX_ADDRESS UPT_MAX_ADDRESS -#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NKPDE+2))) -#define UPDT VM_MIN_KERNEL_ADDRESS -#define KPT_MIN_ADDRESS ((vm_offset_t)KERNBASE - NBPG*(NKPDE+1)) -#define KPT_MAX_ADDRESS ((vm_offset_t)KERNBASE - NBPG) -#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPDE*NBPG*NPTEPG) /* virtual sizes (bytes) for various kernel submaps */ #define VM_KMEM_SIZE (32 * 1024 * 1024) diff --git a/sys/i386/include/pmap.h b/sys/i386/include/pmap.h index 3f54f1856183..87e483f0f610 100644 --- a/sys/i386/include/pmap.h +++ b/sys/i386/include/pmap.h @@ -42,7 +42,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $Id: pmap.h,v 1.34 1996/02/25 03:02:53 dyson Exp $ + * $Id: pmap.h,v 1.35 1996/04/03 05:23:44 dyson Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -73,8 +73,6 @@ struct vm_map; #define NKPDE 63 /* addressable number of page tables/pde's */ #endif -#define NUPDE (NPTEPG-NKPDE) /* number of user pde's */ - /* * The *PTDI values control the layout of virtual memory * @@ -85,7 +83,7 @@ struct vm_map; #define KPTDI (APTDPTDI-NKPDE)/* start of kernel virtual pde's */ #define PTDPTDI (KPTDI-1) /* ptd entry that points to ptd! */ #define KSTKPTDI (PTDPTDI-1) /* ptd entry for u./kernel&user stack */ -#define KSTKPTEOFF (NBPG/sizeof(pd_entry_t)-UPAGES) /* pte entry for kernel stack */ +#define KSTKPTEOFF (NPTEPG-UPAGES) /* pte entry for kernel stack */ #define PDESIZE sizeof(pd_entry_t) /* for assembly files */ #define PTESIZE sizeof(pt_entry_t) /* for assembly files */ diff --git a/sys/i386/include/pte.h b/sys/i386/include/pte.h index b68f71610cca..ba3621321309 100644 --- a/sys/i386/include/pte.h +++ b/sys/i386/include/pte.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)pte.h 5.5 (Berkeley) 5/9/91 - * $Id: pte.h,v 1.7 1994/09/04 23:10:25 davidg Exp $ + * $Id: pte.h,v 1.8 1995/05/30 08:00:49 rgrimes Exp $ */ #ifndef _MACHINE_PTE_H_ @@ -120,6 +120,7 @@ unsigned int * Pte related macros */ #define dirty(pte) ((pte) & PG_M) +#define VADDR(pdi, pti) ((vm_offset_t)(((pdi)<<PD_SHIFT)|((pti)<<PG_SHIFT))) #ifndef LOCORE #ifdef KERNEL diff --git a/sys/i386/include/vmparam.h b/sys/i386/include/vmparam.h index 942f742eb7f6..7212da9330c6 100644 --- a/sys/i386/include/vmparam.h +++ b/sys/i386/include/vmparam.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $Id: vmparam.h,v 1.18 1995/05/25 07:41:28 davidg Exp $ + * $Id: vmparam.h,v 1.19 1996/03/12 15:37:58 davidg Exp $ */ @@ -87,24 +87,31 @@ */ #define MAXSLP 20 + /* - * Mach derived constants + * Virtual addresses of things. Derived from the page directory and + * page table indexes from pmap.h for precision. + * Because of the page that is both a PD and PT, it looks a little + * messy at times, but hey, we'll do anything to save a page :-) */ -/* user/kernel map constants */ -#define KERNBASE ((0x400-1-NKPDE)*(NBPG*NPTEPG)) +#define VM_MAX_KERNEL_ADDRESS VADDR(KPTDI+NKPDE, 0) +#define VM_MIN_KERNEL_ADDRESS VADDR(PTDPTDI, PTDPTDI) + +#define KERNBASE VADDR(KPTDI, 0) + +#define KPT_MAX_ADDRESS VADDR(PTDPTDI, APTDPTDI) +#define KPT_MIN_ADDRESS VADDR(PTDPTDI, KPTDI) + +#define UPT_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI) +#define UPT_MIN_ADDRESS VADDR(PTDPTDI, 0) + +#define VM_MAXUSER_ADDRESS VADDR(KSTKPTDI, KSTKPTEOFF) + +#define USRSTACK VM_MAXUSER_ADDRESS +#define VM_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI) #define VM_MIN_ADDRESS ((vm_offset_t)0) -#define VM_MAXUSER_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NPTEPG+UPAGES))) -#define USRSTACK VM_MAXUSER_ADDRESS -#define UPT_MIN_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*NPTEPG)) -#define UPT_MAX_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NKPDE+2))) -#define VM_MAX_ADDRESS UPT_MAX_ADDRESS -#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NKPDE+2))) -#define UPDT VM_MIN_KERNEL_ADDRESS -#define KPT_MIN_ADDRESS ((vm_offset_t)KERNBASE - NBPG*(NKPDE+1)) -#define KPT_MAX_ADDRESS ((vm_offset_t)KERNBASE - NBPG) -#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPDE*NBPG*NPTEPG) /* virtual sizes (bytes) for various kernel submaps */ #define VM_KMEM_SIZE (32 * 1024 * 1024) |