Change map_memory and setup_paging to use virtual_machine struct
authorRonald G. Minnich <rminnich@gmail.com>
Thu, 17 Aug 2017 23:13:40 +0000 (16:13 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 22 Aug 2017 20:04:41 +0000 (16:04 -0400)
commit3264ede92d6e073d5522e587b6214a103d494c44
treecee13d10d23c3c7089143f0ea999e96ce2b0ab87
parenta887ab4e8286a94f240a21f844d4c03509e1b8de
Change map_memory and setup_paging to use virtual_machine struct

The virtual machine struct now contains guest minphys and maxphys addresses.
Map_memory can be called multiple times.

Setup_page is called with a pointer to the virtual_machine, which sets up
the early 1:1 mapping for the entire range of minphys to maxphys.

This is essentially what we already did, but now we can call map_memory
more than once.

While it may seem odd to to map the whole range from minphys to maxphys,
it's basically ok:
- you rarely call map_memory more than once
- the real check is done in the EPT, not the GPT
- GPT is replaced by most kernels
- in the vthreads case, we will typically start the thread
  memory at 4G, and there will be no holes in that space

So it's probably fine.

Change-Id: I48311bea6f7ae102959247ccad3234a85665b187
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
[ 80 char line fix ]
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tests/dune/dune.c
tests/vmm/vmrunkernel.c
user/vmm/include/vmm/vmm.h
user/vmm/memory.c
user/vmm/pagetables.c