aboutsummaryrefslogtreecommitdiff
path: root/i386/intel
diff options
context:
space:
mode:
authorLuca Dariz <luca@orpolo.org>2023-02-12 18:28:15 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-12 19:05:47 +0100
commit1956a5e0f56793e11edc8fcf0a66fb68c1e4049d (patch)
tree387b9ad3fd537c5d285877445f30d9236a50f1fe /i386/intel
parent5c2f82deeba84394c621b2d98ce7d73489c88ac3 (diff)
downloadgnumach-1956a5e0f56793e11edc8fcf0a66fb68c1e4049d.tar.gz
gnumach-1956a5e0f56793e11edc8fcf0a66fb68c1e4049d.tar.bz2
gnumach-1956a5e0f56793e11edc8fcf0a66fb68c1e4049d.zip
add more explicit names for user space virtual space limits
* i386/i386/vm_param.h: add VM_MAX/MIN_USER_ADDRESS to kernel headers. * i386/i386/db_interface.c * i386/i386/ldt.c * i386/i386/pcb.c * i386/intel/pmap.c * kern/task.c: replace VM_MAX/MIN_ADDRESS with VM_MAX/MIN_USER_ADDRESS Message-Id: <20230212172818.1511405-7-luca@orpolo.org>
Diffstat (limited to 'i386/intel')
-rw-r--r--i386/intel/pmap.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 1f1d8d9b..698b95db 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -1342,7 +1342,7 @@ pmap_t pmap_create(vm_size_t size)
);
}
#ifdef __x86_64__
- // TODO alloc only PDPTE for the user range VM_MIN_ADDRESS, VM_MAX_ADDRESS
+ // TODO alloc only PDPTE for the user range VM_MIN_USER_ADDRESS, VM_MAX_USER_ADDRESS
// and keep the same for kernel range, in l4 table we have different entries
p->l4base = (pt_entry_t *) kmem_cache_alloc(&l4_cache);
if (p->l4base == NULL)
@@ -1350,7 +1350,7 @@ pmap_t pmap_create(vm_size_t size)
memset(p->l4base, 0, INTEL_PGBYTES);
WRITE_PTE(&p->l4base[lin2l4num(VM_MIN_KERNEL_ADDRESS)],
pa_to_pte(kvtophys((vm_offset_t) pdp_kernel)) | INTEL_PTE_VALID | INTEL_PTE_WRITE | INTEL_PTE_USER);
-#if lin2l4num(VM_MIN_KERNEL_ADDRESS) != lin2l4num(VM_MAX_ADDRESS)
+#if lin2l4num(VM_MIN_KERNEL_ADDRESS) != lin2l4num(VM_MAX_USER_ADDRESS)
// TODO kernel vm and user vm are not in the same l4 entry, so add the user one
#endif
#ifdef MACH_PV_PAGETABLES
@@ -1362,7 +1362,7 @@ pmap_t pmap_create(vm_size_t size)
memset(p->user_pdpbase, 0, INTEL_PGBYTES);
{
int i;
- for (i = 0; i < lin2pdpnum(VM_MAX_ADDRESS); i++)
+ for (i = 0; i < lin2pdpnum(VM_MAX_USER_ADDRESS); i++)
WRITE_PTE(&p->user_pdpbase[i], pa_to_pte(kvtophys((vm_offset_t) page_dir[i])) | INTEL_PTE_VALID | INTEL_PTE_WRITE);
}
// FIXME: use kmem_cache_alloc instead
@@ -1440,7 +1440,7 @@ void pmap_destroy(pmap_t p)
#ifdef __x86_64__
#ifdef USER32
/* In this case we know we have one PDP for user space */
- pt_entry_t *pdp = (pt_entry_t *) ptetokv(p->l4base[lin2l4num(VM_MIN_ADDRESS)]);
+ pt_entry_t *pdp = (pt_entry_t *) ptetokv(p->l4base[lin2l4num(VM_MIN_USER_ADDRESS)]);
#else
#error "TODO do 64-bit userspace need more that 512G?"
#endif /* USER32 */
@@ -1502,8 +1502,8 @@ void pmap_destroy(pmap_t p)
#endif /* MACH_PV_PAGETABLES */
#ifdef __x86_64__
- kmem_cache_free(&pdpt_cache, (vm_offset_t) pmap_ptp(p, VM_MIN_ADDRESS));
-#if lin2l4num(VM_MIN_KERNEL_ADDRESS) != lin2l4num(VM_MAX_ADDRESS)
+ kmem_cache_free(&pdpt_cache, (vm_offset_t) pmap_ptp(p, VM_MIN_USER_ADDRESS));
+#if lin2l4num(VM_MIN_KERNEL_ADDRESS) != lin2l4num(VM_MAX_USER_ADDRESS)
// TODO kernel vm and user vm are not in the same l4 entry
#endif
kmem_cache_free(&l4_cache, (vm_offset_t) p->l4base);
@@ -2449,7 +2449,7 @@ void pmap_collect(pmap_t p)
#ifdef __x86_64__
#ifdef USER32
/* In this case we know we have one PDP for user space */
- pdp = (pt_entry_t *) ptetokv(p->l4base[lin2l4num(VM_MIN_ADDRESS)]);
+ pdp = (pt_entry_t *) ptetokv(p->l4base[lin2l4num(VM_MIN_USER_ADDRESS)]);
#else
#error "TODO do 64-bit userspace need more that 512G?"
#endif /* USER32 */
@@ -2556,7 +2556,7 @@ void pmap_collect(pmap_t p)
#if PAE
}
#endif
- PMAP_UPDATE_TLBS(p, VM_MIN_ADDRESS, VM_MAX_ADDRESS);
+ PMAP_UPDATE_TLBS(p, VM_MIN_USER_ADDRESS, VM_MAX_USER_ADDRESS);
PMAP_READ_UNLOCK(p, spl);
return;
@@ -2967,7 +2967,7 @@ void signal_cpus(
* indicate overflow.
*/
update_list_p->item[UPDATE_LIST_SIZE-1].pmap = kernel_pmap;
- update_list_p->item[UPDATE_LIST_SIZE-1].start = VM_MIN_ADDRESS;
+ update_list_p->item[UPDATE_LIST_SIZE-1].start = VM_MIN_USER_ADDRESS;
update_list_p->item[UPDATE_LIST_SIZE-1].end = VM_MAX_KERNEL_ADDRESS;
}
else {