Module Name: src Committed By: maxv Date: Mon Nov 19 20:44:52 UTC 2018
Modified Files: src/sys/arch/amd64/include: pmap.h src/sys/arch/i386/include: pmap.h src/sys/arch/x86/include: pmap.h src/sys/arch/x86/x86: pmap.c Log Message: Introduce pl_pi, will be used soon. To generate a diff of this commit: cvs rdiff -u -r1.57 -r1.58 src/sys/arch/amd64/include/pmap.h cvs rdiff -u -r1.120 -r1.121 src/sys/arch/i386/include/pmap.h cvs rdiff -u -r1.90 -r1.91 src/sys/arch/x86/include/pmap.h cvs rdiff -u -r1.311 -r1.312 src/sys/arch/x86/x86/pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amd64/include/pmap.h diff -u src/sys/arch/amd64/include/pmap.h:1.57 src/sys/arch/amd64/include/pmap.h:1.58 --- src/sys/arch/amd64/include/pmap.h:1.57 Mon Nov 19 20:28:01 2018 +++ src/sys/arch/amd64/include/pmap.h Mon Nov 19 20:44:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.57 2018/11/19 20:28:01 maxv Exp $ */ +/* $NetBSD: pmap.h,v 1.58 2018/11/19 20:44:51 maxv Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -150,6 +150,7 @@ extern pt_entry_t *pte_base; #define NKL2_START_ENTRIES 0 #define NKL1_START_ENTRIES 0 +#define PTP_MASK_INITIALIZER { L1_MASK, L2_MASK, L3_MASK, L4_MASK } #define PTP_FRAME_INITIALIZER { L1_FRAME, L2_FRAME, L3_FRAME, L4_FRAME } #define PTP_SHIFT_INITIALIZER { L1_SHIFT, L2_SHIFT, L3_SHIFT, L4_SHIFT } #define NKPTP_INITIALIZER { NKL1_START_ENTRIES, NKL2_START_ENTRIES, \ Index: src/sys/arch/i386/include/pmap.h diff -u src/sys/arch/i386/include/pmap.h:1.120 src/sys/arch/i386/include/pmap.h:1.121 --- src/sys/arch/i386/include/pmap.h:1.120 Mon Nov 19 20:28:01 2018 +++ src/sys/arch/i386/include/pmap.h Mon Nov 19 20:44:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.120 2018/11/19 20:28:01 maxv Exp $ */ +/* $NetBSD: pmap.h,v 1.121 2018/11/19 20:44:51 maxv Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -267,6 +267,7 @@ #endif /* !XEN */ #define NPDPG (PAGE_SIZE / sizeof (pd_entry_t)) +#define PTP_MASK_INITIALIZER { L1_MASK, L2_MASK } #define PTP_FRAME_INITIALIZER { L1_FRAME, L2_FRAME } #define PTP_SHIFT_INITIALIZER { L1_SHIFT, L2_SHIFT } #define NKPTP_INITIALIZER { NKL1_START_ENTRIES, NKL2_START_ENTRIES } Index: src/sys/arch/x86/include/pmap.h diff -u src/sys/arch/x86/include/pmap.h:1.90 src/sys/arch/x86/include/pmap.h:1.91 --- src/sys/arch/x86/include/pmap.h:1.90 Mon Nov 19 20:28:01 2018 +++ src/sys/arch/x86/include/pmap.h Mon Nov 19 20:44:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.90 2018/11/19 20:28:01 maxv Exp $ */ +/* $NetBSD: pmap.h,v 1.91 2018/11/19 20:44:51 maxv Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -75,6 +75,8 @@ #define pl2_pi(VA) (((VA_SIGN_POS(VA)) & L2_MASK) >> L2_SHIFT) #define pl3_pi(VA) (((VA_SIGN_POS(VA)) & L3_MASK) >> L3_SHIFT) #define pl4_pi(VA) (((VA_SIGN_POS(VA)) & L4_MASK) >> L4_SHIFT) +#define pl_pi(va, lvl) \ + (((VA_SIGN_POS(va)) & ptp_masks[(lvl)-1]) >> ptp_shifts[(lvl)-1]) /* * pl*_i: generate index into pde/pte arrays in virtual space Index: src/sys/arch/x86/x86/pmap.c diff -u src/sys/arch/x86/x86/pmap.c:1.311 src/sys/arch/x86/x86/pmap.c:1.312 --- src/sys/arch/x86/x86/pmap.c:1.311 Mon Nov 19 20:28:01 2018 +++ src/sys/arch/x86/x86/pmap.c Mon Nov 19 20:44:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.311 2018/11/19 20:28:01 maxv Exp $ */ +/* $NetBSD: pmap.c,v 1.312 2018/11/19 20:44:51 maxv Exp $ */ /* * Copyright (c) 2008, 2010, 2016, 2017 The NetBSD Foundation, Inc. @@ -130,7 +130,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.311 2018/11/19 20:28:01 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.312 2018/11/19 20:44:51 maxv Exp $"); #include "opt_user_ldt.h" #include "opt_lockdebug.h" @@ -239,6 +239,7 @@ __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.3 * lock it when adding or removing pmaps from this list. */ +const vaddr_t ptp_masks[] = PTP_MASK_INITIALIZER; const vaddr_t ptp_frames[] = PTP_FRAME_INITIALIZER; const int ptp_shifts[] = PTP_SHIFT_INITIALIZER; const long nkptpmax[] = NKPTPMAX_INITIALIZER;