Module Name:    src
Committed By:   maxv
Date:           Sun Oct 27 08:30:05 UTC 2019

Modified Files:
        src/lib/libnvmm: libnvmm_x86.c

Log Message:
Use the new PTE naming, and define CR3_FRAME_* separately. No functional
change.


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/lib/libnvmm/libnvmm_x86.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libnvmm/libnvmm_x86.c
diff -u src/lib/libnvmm/libnvmm_x86.c:1.37 src/lib/libnvmm/libnvmm_x86.c:1.38
--- src/lib/libnvmm/libnvmm_x86.c:1.37	Wed Oct 23 12:02:55 2019
+++ src/lib/libnvmm/libnvmm_x86.c	Sun Oct 27 08:30:05 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: libnvmm_x86.c,v 1.37 2019/10/23 12:02:55 maxv Exp $	*/
+/*	$NetBSD: libnvmm_x86.c,v 1.38 2019/10/27 08:30:05 maxv Exp $	*/
 
 /*
  * Copyright (c) 2018-2019 The NetBSD Foundation, Inc.
@@ -116,7 +116,7 @@ nvmm_vcpu_dump(struct nvmm_machine *mach
 #define pte32_l1idx(va)	(((va) & PTE32_L1_MASK) >> PTE32_L1_SHIFT)
 #define pte32_l2idx(va)	(((va) & PTE32_L2_MASK) >> PTE32_L2_SHIFT)
 
-#define CR3_FRAME_32BIT	PG_FRAME
+#define CR3_FRAME_32BIT	__BITS(31, 12)
 
 typedef uint32_t pte_32bit_t;
 
@@ -138,36 +138,36 @@ x86_gva_to_gpa_32bit(struct nvmm_machine
 		return -1;
 	pdir = (pte_32bit_t *)L2hva;
 	pte = pdir[pte32_l2idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if ((pte & PG_PS) && !has_pse)
+	if ((pte & PTE_PS) && !has_pse)
 		return -1;
-	if (pte & PG_PS) {
+	if (pte & PTE_PS) {
 		*gpa = (pte & PTE32_L2_FRAME);
 		*gpa = *gpa + (gva & PTE32_L1_MASK);
 		return 0;
 	}
 
 	/* Parse L1. */
-	L1gpa = (pte & PG_FRAME);
+	L1gpa = (pte & PTE_FRAME);
 	if (nvmm_gpa_to_hva(mach, L1gpa, &L1hva, &pageprot) == -1)
 		return -1;
 	pdir = (pte_32bit_t *)L1hva;
 	pte = pdir[pte32_l1idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if (pte & PG_PS)
+	if (pte & PTE_PS)
 		return -1;
 
-	*gpa = (pte & PG_FRAME);
+	*gpa = (pte & PTE_FRAME);
 	return 0;
 }
 
@@ -211,51 +211,51 @@ x86_gva_to_gpa_32bit_pae(struct nvmm_mac
 		return -1;
 	pdir = (pte_32bit_pae_t *)L3hva;
 	pte = pdir[pte32_pae_l3idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if (pte & PG_NX)
+	if (pte & PTE_NX)
 		*prot &= ~NVMM_PROT_EXEC;
-	if (pte & PG_PS)
+	if (pte & PTE_PS)
 		return -1;
 
 	/* Parse L2. */
-	L2gpa = (pte & PG_FRAME);
+	L2gpa = (pte & PTE_FRAME);
 	if (nvmm_gpa_to_hva(mach, L2gpa, &L2hva, &pageprot) == -1)
 		return -1;
 	pdir = (pte_32bit_pae_t *)L2hva;
 	pte = pdir[pte32_pae_l2idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if (pte & PG_NX)
+	if (pte & PTE_NX)
 		*prot &= ~NVMM_PROT_EXEC;
-	if (pte & PG_PS) {
+	if (pte & PTE_PS) {
 		*gpa = (pte & PTE32_PAE_L2_FRAME);
 		*gpa = *gpa + (gva & PTE32_PAE_L1_MASK);
 		return 0;
 	}
 
 	/* Parse L1. */
-	L1gpa = (pte & PG_FRAME);
+	L1gpa = (pte & PTE_FRAME);
 	if (nvmm_gpa_to_hva(mach, L1gpa, &L1hva, &pageprot) == -1)
 		return -1;
 	pdir = (pte_32bit_pae_t *)L1hva;
 	pte = pdir[pte32_pae_l1idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if (pte & PG_NX)
+	if (pte & PTE_NX)
 		*prot &= ~NVMM_PROT_EXEC;
-	if (pte & PG_PS)
+	if (pte & PTE_PS)
 		return -1;
 
-	*gpa = (pte & PG_FRAME);
+	*gpa = (pte & PTE_FRAME);
 	return 0;
 }
 
@@ -281,7 +281,7 @@ x86_gva_to_gpa_32bit_pae(struct nvmm_mac
 #define pte64_l3idx(va)	(((va) & PTE64_L3_MASK) >> PTE64_L3_SHIFT)
 #define pte64_l4idx(va)	(((va) & PTE64_L4_MASK) >> PTE64_L4_SHIFT)
 
-#define CR3_FRAME_64BIT	PG_FRAME
+#define CR3_FRAME_64BIT	__BITS(51, 12)
 
 typedef uint64_t pte_64bit_t;
 
@@ -314,75 +314,75 @@ x86_gva_to_gpa_64bit(struct nvmm_machine
 		return -1;
 	pdir = (pte_64bit_t *)L4hva;
 	pte = pdir[pte64_l4idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if (pte & PG_NX)
+	if (pte & PTE_NX)
 		*prot &= ~NVMM_PROT_EXEC;
-	if (pte & PG_PS)
+	if (pte & PTE_PS)
 		return -1;
 
 	/* Parse L3. */
-	L3gpa = (pte & PG_FRAME);
+	L3gpa = (pte & PTE_FRAME);
 	if (nvmm_gpa_to_hva(mach, L3gpa, &L3hva, &pageprot) == -1)
 		return -1;
 	pdir = (pte_64bit_t *)L3hva;
 	pte = pdir[pte64_l3idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if (pte & PG_NX)
+	if (pte & PTE_NX)
 		*prot &= ~NVMM_PROT_EXEC;
-	if (pte & PG_PS) {
+	if (pte & PTE_PS) {
 		*gpa = (pte & PTE64_L3_FRAME);
 		*gpa = *gpa + (gva & (PTE64_L2_MASK|PTE64_L1_MASK));
 		return 0;
 	}
 
 	/* Parse L2. */
-	L2gpa = (pte & PG_FRAME);
+	L2gpa = (pte & PTE_FRAME);
 	if (nvmm_gpa_to_hva(mach, L2gpa, &L2hva, &pageprot) == -1)
 		return -1;
 	pdir = (pte_64bit_t *)L2hva;
 	pte = pdir[pte64_l2idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if (pte & PG_NX)
+	if (pte & PTE_NX)
 		*prot &= ~NVMM_PROT_EXEC;
-	if (pte & PG_PS) {
+	if (pte & PTE_PS) {
 		*gpa = (pte & PTE64_L2_FRAME);
 		*gpa = *gpa + (gva & PTE64_L1_MASK);
 		return 0;
 	}
 
 	/* Parse L1. */
-	L1gpa = (pte & PG_FRAME);
+	L1gpa = (pte & PTE_FRAME);
 	if (nvmm_gpa_to_hva(mach, L1gpa, &L1hva, &pageprot) == -1)
 		return -1;
 	pdir = (pte_64bit_t *)L1hva;
 	pte = pdir[pte64_l1idx(gva)];
-	if ((pte & PG_V) == 0)
+	if ((pte & PTE_P) == 0)
 		return -1;
-	if ((pte & PG_u) == 0)
+	if ((pte & PTE_U) == 0)
 		*prot &= ~NVMM_PROT_USER;
-	if ((pte & PG_KW) == 0)
+	if ((pte & PTE_W) == 0)
 		*prot &= ~NVMM_PROT_WRITE;
-	if (pte & PG_NX)
+	if (pte & PTE_NX)
 		*prot &= ~NVMM_PROT_EXEC;
-	if (pte & PG_PS)
+	if (pte & PTE_PS)
 		return -1;
 
-	*gpa = (pte & PG_FRAME);
+	*gpa = (pte & PTE_FRAME);
 	return 0;
 }
 

Reply via email to