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;