e820map: move over to the new size scheme
authorRonald G. Minnich <rminnich@gmail.com>
Tue, 22 Aug 2017 23:19:19 +0000 (16:19 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 31 Aug 2017 13:20:19 +0000 (09:20 -0400)
Change-Id: I6c5358ba741802dee1efcf81e3d4efd6bc3a36a1
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tests/vmm/vmrunkernel.c
user/vmm/include/vmm/vmm.h
user/vmm/memory.c

index ff8c36a..741f9d4 100644 (file)
@@ -565,7 +565,7 @@ int main(int argc, char **argv)
        a = setup_biostables(vm, a, smbiostable);
 
        bp = a;
-       a = init_e820map(bp, memstart, memsize);
+       a = init_e820map(vm, bp);
 
        if (initrd) {
                initrd_start = ROUNDUP(kernel_max_address, PGSIZE);
index d4e4784..cf28ec7 100644 (file)
@@ -124,9 +124,7 @@ static struct virtual_machine *get_my_vm(void)
 }
 
 /* memory helpers */
-void *init_e820map(struct boot_params *bp,
-                   unsigned long long memstart,
-                   unsigned long long memsize);
+void *init_e820map(struct virtual_machine *vm, struct boot_params *bp);
 void checkmemaligned(uintptr_t memstart, size_t memsize);
 void mmap_memory(struct virtual_machine *vm, uintptr_t memstart,
                  size_t memsize);
index b8593e5..97e1375 100644 (file)
@@ -34,11 +34,12 @@ static void dumpe820(struct e820entry *e, int nr)
 // gotten here, then memsize and memstart are valid.  It returns
 // pointer to the first page after the map for our bump allocator.  We
 // assume the ranges passed in are validated already.
-void *init_e820map(struct boot_params *bp,
-                   unsigned long long memstart,
-                   unsigned long long memsize)
+void *init_e820map(struct virtual_machine *vm, struct boot_params *bp)
 {
-       unsigned long long lowmem = 0;
+       uintptr_t memstart = vm->minphys;
+       size_t memsize = vm->maxphys - vm->minphys + 1;
+       uintptr_t lowmem = 0;
+
        // Everything in Linux at this level is PGSIZE.
        memset(bp, 0, PGSIZE);