From owner-p4-projects Wed Nov 20 19:28:10 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D9EDA37B404; Wed, 20 Nov 2002 19:28:05 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 724B437B401 for ; Wed, 20 Nov 2002 19:28:05 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1E6C543E91 for ; Wed, 20 Nov 2002 19:28:05 -0800 (PST) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id gAL3OxmV027625 for ; Wed, 20 Nov 2002 19:24:59 -0800 (PST) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id gAL3OwRv027622 for perforce@freebsd.org; Wed, 20 Nov 2002 19:24:58 -0800 (PST) Date: Wed, 20 Nov 2002 19:24:58 -0800 (PST) Message-Id: <200211210324.gAL3OwRv027622@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm Subject: PERFORCE change 21331 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://perforce.freebsd.org/chv.cgi?CH=21331 Change 21331 by peter@peter_daintree on 2002/11/20 19:24:51 more cleanup, filling in blanks. Affected files ... .. //depot/projects/hammer/sys/x86_64/include/param.h#6 edit .. //depot/projects/hammer/sys/x86_64/include/pmap.h#4 edit .. //depot/projects/hammer/sys/x86_64/include/vmparam.h#2 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/include/param.h#6 (text+ko) ==== @@ -111,17 +111,6 @@ #define NBPML4T (1ul<> PGSHIFT) - #define IOPAGES 2 /* pages of i/o permission bitmap */ #ifndef KSTACK_PAGES ==== //depot/projects/hammer/sys/x86_64/include/pmap.h#4 (text+ko) ==== @@ -90,27 +90,31 @@ #define KVA_PAGES 256 /* - * Pte related macros + * Pte related macros. This is complicated by having to deal with + * the sign extension of the 48th bit. */ -#define VADDR(l4, l3, l2, l1) ((vm_offset_t) ( \ - ((l4)<= NPML4EPG/2 ? ((unsigned long)-1 << 47) : 0ul) +#define VADDR(l4, l3, l2, l1) ( \ + ((unsigned long)(l4) << PML4SHIFT) | VADDR_SIGN(l4) | \ + ((unsigned long)(l3) << PDPSHIFT) | \ + ((unsigned long)(l2) << PDRSHIFT) | \ + ((unsigned long)(l1) << PAGE_SHIFT)) #ifndef NKPT -#define NKPT 30 /* actual number of kernel page tables */ +#define NKPT 30 /* initial number of kernel page tables */ #endif -#define NKPDE (KVA_PAGES - 1) /* addressable number of page tables/pde's */ +#define NKPML4E (KVA_PAGES - 1) /* addressable number of page tables/pde's */ /* * The *PTDI values control the layout of virtual memory */ -#define APTDPTDI (NPML4EPG-1) /* alt ptd entry that points to APTD */ -#define KPTDI (APTDPTDI-NKPDE)/* start of kernel virtual pde's */ +#define APML4PML4I (NPML4EPG-1) /* alt ptd entry that points to APTD */ +#define KPML4I (NPML4EPG/2) /* start of kernel virtual pde's */ /* Hole */ -#define PTDPTDI ((NPML4EPG/2)-1)/* ptd entry that points to ptd! */ -#define UMAXPTDI (PTDPTDI-1) /* ptd entry for user space end */ -#define UMAXPTEOFF (NPTEPG) /* pte entry for user space end */ +#define PML4PML4I (KPTDI-1) /* pml4 entry that points to ptd! */ +#define UMAXPML4I (PML4PML4I-1) /* pml4 entry for user space end */ /* * XXX doesn't really belong here I guess... ==== //depot/projects/hammer/sys/x86_64/include/vmparam.h#2 (text+ko) ==== @@ -44,11 +44,9 @@ #define _MACHINE_VMPARAM_H_ 1 /* - * Machine dependent constants for 386. + * Machine dependent constants for x86-64. */ -#define VM_PROT_READ_IS_EXEC /* if you can read -- then you can exec */ - /* * Virtual memory related constants, all in bytes */ @@ -69,8 +67,6 @@ #define SGROWSIZ (128UL*1024) /* amount to grow stack */ #endif -#define USRTEXT (1*PAGE_SIZE) /* base of user text XXX bogus */ - /* * The time for a process to be blocked before being very swappable. * This is a number of seconds which the system takes as being a non-trivial @@ -90,23 +86,20 @@ * messy at times, but hey, we'll do anything to save a page :-) */ -#define VM_MAX_KERNEL_ADDRESS VADDR(KPTDI+NKPDE, 0) -#define VM_MIN_KERNEL_ADDRESS VADDR(PTDPTDI, PTDPTDI) +#define VM_MAX_KERNEL_ADDRESS VADDR(KPML4I+NKML4E, 0, 0, 0) +#define VM_MIN_KERNEL_ADDRESS VADDR(KPML4I, 0, 0, 0) -#define KERNBASE VADDR(KPTDI, 0) +#define KERNBASE VM_MIN_KERNEL_ADDRESS -#define KPT_MAX_ADDRESS VADDR(PTDPTDI, KPTDI+NKPT) -#define KPT_MIN_ADDRESS VADDR(PTDPTDI, KPTDI) +#define UPT_MAX_ADDRESS VADDR(PML4PML4I, PML4PML4I, 0, 0) +#define UPT_MIN_ADDRESS VADDR(PML4PML4I, 0, 0, 0) -#define UPT_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI) -#define UPT_MIN_ADDRESS VADDR(PTDPTDI, 0) +#define VM_MAXUSER_ADDRESS UPT_MIN_ADDRESS -#define VM_MAXUSER_ADDRESS VADDR(UMAXPTDI, UMAXPTEOFF) - #define USRSTACK VM_MAXUSER_ADDRESS -#define VM_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI) -#define VM_MIN_ADDRESS ((vm_offset_t)0) +#define VM_MAX_ADDRESS UPT_MAX_ADDRESS +#define VM_MIN_ADDRESS (0) /* virtual sizes (bytes) for various kernel submaps */ #ifndef VM_KMEM_SIZE To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message