PERFORCE change 29139 for review
Marcel Moolenaar
marcel at FreeBSD.org
Thu Apr 17 11:31:54 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=29139
Change 29139 by marcel at marcel_nfs on 2003/04/17 11:31:14
Unstaticize kptdir and raname it to ia64_kptdir to avoid
name clashes. This allows us to use the kernel page tables
for handling nested TLB faults.
Affected files ...
.. //depot/projects/ia64_epc/lib/libkvm/kvm_ia64.c#2 edit
.. //depot/projects/ia64_epc/sys/ia64/ia64/pmap.c#5 edit
Differences ...
==== //depot/projects/ia64_epc/lib/libkvm/kvm_ia64.c#2 (text+ko) ====
@@ -148,7 +148,7 @@
* addresses/values.
*/
- nlist[0].n_name = "kptdir";
+ nlist[0].n_name = "ia64_kptdir";
nlist[1].n_name = 0;
if (kvm_nlist(kd, nlist) != 0) {
==== //depot/projects/ia64_epc/sys/ia64/ia64/pmap.c#5 (text+ko) ====
@@ -202,7 +202,7 @@
* ia64_lptes. This gives us up to 2Gb of kernel virtual space.
*/
static int nkpt;
-static struct ia64_lpte **kptdir;
+struct ia64_lpte **ia64_kptdir;
#define KPTE_DIR_INDEX(va) \
((va >> (2*PAGE_SHIFT-5)) & ((1<<(PAGE_SHIFT-3))-1))
#define KPTE_PTE_INDEX(va) \
@@ -346,9 +346,9 @@
/*
* Allocate some memory for initial kernel 'page tables'.
*/
- kptdir = (struct ia64_lpte **) pmap_steal_memory(PAGE_SIZE);
+ ia64_kptdir = (void *)pmap_steal_memory(PAGE_SIZE);
for (i = 0; i < NKPT; i++) {
- kptdir[i] = (struct ia64_lpte *) pmap_steal_memory(PAGE_SIZE);
+ ia64_kptdir[i] = (void*)pmap_steal_memory(PAGE_SIZE);
}
nkpt = NKPT;
@@ -878,7 +878,7 @@
}
addr = (addr + PAGE_SIZE * NKPTEPG) & ~(PAGE_SIZE * NKPTEPG - 1);
while (kernel_vm_end < addr) {
- if (kptdir[KPTE_DIR_INDEX(kernel_vm_end)]) {
+ if (ia64_kptdir[KPTE_DIR_INDEX(kernel_vm_end)]) {
kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NKPTEPG)
& ~(PAGE_SIZE * NKPTEPG - 1);
continue;
@@ -902,7 +902,7 @@
ptepage = (struct ia64_lpte *)
IA64_PHYS_TO_RR7(VM_PAGE_TO_PHYS(nkpg));
bzero(ptepage, PAGE_SIZE);
- kptdir[KPTE_DIR_INDEX(kernel_vm_end)] = ptepage;
+ ia64_kptdir[KPTE_DIR_INDEX(kernel_vm_end)] = ptepage;
kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NKPTEPG) & ~(PAGE_SIZE * NKPTEPG - 1);
}
@@ -1171,7 +1171,7 @@
("kernel mapping 0x%lx not in region 5", va));
KASSERT(IA64_RR_MASK(va) < (nkpt * PAGE_SIZE * NKPTEPG),
("kernel mapping 0x%lx out of range", va));
- return &kptdir[KPTE_DIR_INDEX(va)][KPTE_PTE_INDEX(va)];
+ return (&ia64_kptdir[KPTE_DIR_INDEX(va)][KPTE_PTE_INDEX(va)]);
}
/*
More information about the p4-projects
mailing list