summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-07-18 00:42:53 +0000
committerpeter <peter@FreeBSD.org>2002-07-18 00:42:53 +0000
commitcc2882c16b223d38b64f938d27b4b686d3892590 (patch)
treee918b589e31632d6b71040865c022eeab2e9b5f5
parenta7b0b5b2160e6cee1429fa54df4aaaf98a992470 (diff)
downloadFreeBSD-src-cc2882c16b223d38b64f938d27b4b686d3892590.zip
FreeBSD-src-cc2882c16b223d38b64f938d27b4b686d3892590.tar.gz
Use pmap_kenter() rather than vtopte() and bashing the page tables
directly.
-rw-r--r--sys/amd64/amd64/machdep.c17
-rw-r--r--sys/i386/i386/machdep.c17
-rw-r--r--sys/pc98/i386/machdep.c17
-rw-r--r--sys/pc98/pc98/machdep.c17
4 files changed, 12 insertions, 56 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 65b46d7..d699c6e 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -1284,10 +1284,8 @@ getmemsize(int first)
* allocated we simply change the mapping.
*/
for (pa = trunc_page(basemem * 1024);
- pa < ISA_HOLE_START; pa += PAGE_SIZE) {
- pte = vtopte(pa + KERNBASE);
- *pte = pa | PG_RW | PG_V;
- }
+ pa < ISA_HOLE_START; pa += PAGE_SIZE)
+ pmap_kenter(KERNBASE + pa, pa);
/*
* if basemem != 640, map pages r/w into vm86 page table so
@@ -1301,8 +1299,7 @@ getmemsize(int first)
* map page 1 R/W into the kernel page table so we can use it
* as a buffer. The kernel will unmap this page later.
*/
- pte = vtopte(KERNBASE + (1 << PAGE_SHIFT));
- *pte = (1 << PAGE_SHIFT) | PG_RW | PG_V;
+ pmap_kenter(KERNBASE + (1 << PAGE_SHIFT), 1);
/*
* get memory map with INT 15:E820
@@ -1486,11 +1483,7 @@ physmap_done:
pa_indx = 0;
phys_avail[pa_indx++] = physmap[0];
phys_avail[pa_indx] = physmap[0];
-#if 0
- pte = vtopte(KERNBASE);
-#else
pte = CMAP1;
-#endif
/*
* physmap is in bytes, so when converting to page boundaries,
@@ -1504,11 +1497,7 @@ physmap_done:
end = trunc_page(physmap[i + 1]);
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
int tmp, page_bad;
-#if 0
- int *ptr = 0;
-#else
int *ptr = (int *)CADDR1;
-#endif
/*
* block out kernel memory as not available.
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 65b46d7..d699c6e 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -1284,10 +1284,8 @@ getmemsize(int first)
* allocated we simply change the mapping.
*/
for (pa = trunc_page(basemem * 1024);
- pa < ISA_HOLE_START; pa += PAGE_SIZE) {
- pte = vtopte(pa + KERNBASE);
- *pte = pa | PG_RW | PG_V;
- }
+ pa < ISA_HOLE_START; pa += PAGE_SIZE)
+ pmap_kenter(KERNBASE + pa, pa);
/*
* if basemem != 640, map pages r/w into vm86 page table so
@@ -1301,8 +1299,7 @@ getmemsize(int first)
* map page 1 R/W into the kernel page table so we can use it
* as a buffer. The kernel will unmap this page later.
*/
- pte = vtopte(KERNBASE + (1 << PAGE_SHIFT));
- *pte = (1 << PAGE_SHIFT) | PG_RW | PG_V;
+ pmap_kenter(KERNBASE + (1 << PAGE_SHIFT), 1);
/*
* get memory map with INT 15:E820
@@ -1486,11 +1483,7 @@ physmap_done:
pa_indx = 0;
phys_avail[pa_indx++] = physmap[0];
phys_avail[pa_indx] = physmap[0];
-#if 0
- pte = vtopte(KERNBASE);
-#else
pte = CMAP1;
-#endif
/*
* physmap is in bytes, so when converting to page boundaries,
@@ -1504,11 +1497,7 @@ physmap_done:
end = trunc_page(physmap[i + 1]);
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
int tmp, page_bad;
-#if 0
- int *ptr = 0;
-#else
int *ptr = (int *)CADDR1;
-#endif
/*
* block out kernel memory as not available.
diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c
index 0084819..03d681d 100644
--- a/sys/pc98/i386/machdep.c
+++ b/sys/pc98/i386/machdep.c
@@ -1332,10 +1332,8 @@ getmemsize(int first)
* allocated we simply change the mapping.
*/
for (pa = trunc_page(basemem * 1024);
- pa < ISA_HOLE_START; pa += PAGE_SIZE) {
- pte = vtopte(pa + KERNBASE);
- *pte = pa | PG_RW | PG_V;
- }
+ pa < ISA_HOLE_START; pa += PAGE_SIZE)
+ pmap_kenter(KERNBASE + pa, pa);
/*
* if basemem != 640, map pages r/w into vm86 page table so
@@ -1350,8 +1348,7 @@ getmemsize(int first)
* map page 1 R/W into the kernel page table so we can use it
* as a buffer. The kernel will unmap this page later.
*/
- pte = vtopte(KERNBASE + (1 << PAGE_SHIFT));
- *pte = (1 << PAGE_SHIFT) | PG_RW | PG_V;
+ pmap_kenter(KERNBASE + (1 << PAGE_SHIFT), 1);
/*
* get memory map with INT 15:E820
@@ -1546,11 +1543,7 @@ physmap_done:
pa_indx = 0;
phys_avail[pa_indx++] = physmap[0];
phys_avail[pa_indx] = physmap[0];
-#if 0
- pte = vtopte(KERNBASE);
-#else
pte = CMAP1;
-#endif
/*
* physmap is in bytes, so when converting to page boundaries,
@@ -1564,11 +1557,7 @@ physmap_done:
end = trunc_page(physmap[i + 1]);
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
int tmp, page_bad;
-#if 0
- int *ptr = 0;
-#else
int *ptr = (int *)CADDR1;
-#endif
/*
* block out kernel memory as not available.
diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c
index 0084819..03d681d 100644
--- a/sys/pc98/pc98/machdep.c
+++ b/sys/pc98/pc98/machdep.c
@@ -1332,10 +1332,8 @@ getmemsize(int first)
* allocated we simply change the mapping.
*/
for (pa = trunc_page(basemem * 1024);
- pa < ISA_HOLE_START; pa += PAGE_SIZE) {
- pte = vtopte(pa + KERNBASE);
- *pte = pa | PG_RW | PG_V;
- }
+ pa < ISA_HOLE_START; pa += PAGE_SIZE)
+ pmap_kenter(KERNBASE + pa, pa);
/*
* if basemem != 640, map pages r/w into vm86 page table so
@@ -1350,8 +1348,7 @@ getmemsize(int first)
* map page 1 R/W into the kernel page table so we can use it
* as a buffer. The kernel will unmap this page later.
*/
- pte = vtopte(KERNBASE + (1 << PAGE_SHIFT));
- *pte = (1 << PAGE_SHIFT) | PG_RW | PG_V;
+ pmap_kenter(KERNBASE + (1 << PAGE_SHIFT), 1);
/*
* get memory map with INT 15:E820
@@ -1546,11 +1543,7 @@ physmap_done:
pa_indx = 0;
phys_avail[pa_indx++] = physmap[0];
phys_avail[pa_indx] = physmap[0];
-#if 0
- pte = vtopte(KERNBASE);
-#else
pte = CMAP1;
-#endif
/*
* physmap is in bytes, so when converting to page boundaries,
@@ -1564,11 +1557,7 @@ physmap_done:
end = trunc_page(physmap[i + 1]);
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
int tmp, page_bad;
-#if 0
- int *ptr = 0;
-#else
int *ptr = (int *)CADDR1;
-#endif
/*
* block out kernel memory as not available.
OpenPOWER on IntegriCloud