mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-29 18:18:54 +00:00
Vancouver: Reserve VM memory region early
Reserve memory region for VM as early as possible before any other memory allocation happens. Otherwise it could happen that heap allocations will use part of the virtual region we require for the VM.
This commit is contained in:
parent
dbbfab5e7b
commit
0d9e5f2daf
@ -667,7 +667,7 @@ class Machine : public StaticReceiver<Machine>
|
|||||||
Clock _clock;
|
Clock _clock;
|
||||||
Motherboard _motherboard;
|
Motherboard _motherboard;
|
||||||
TimeoutList<32, void> _timeouts;
|
TimeoutList<32, void> _timeouts;
|
||||||
Guest_memory _guest_memory;
|
Guest_memory &_guest_memory;
|
||||||
Boot_module_provider &_boot_modules;
|
Boot_module_provider &_boot_modules;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -900,13 +900,13 @@ class Machine : public StaticReceiver<Machine>
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
Machine(Boot_module_provider &boot_modules)
|
Machine(Boot_module_provider &boot_modules, Guest_memory &guest_memory)
|
||||||
:
|
:
|
||||||
_hip_rom("hypervisor_info_page"),
|
_hip_rom("hypervisor_info_page"),
|
||||||
_hip(Genode::env()->rm_session()->attach(_hip_rom.dataspace())),
|
_hip(Genode::env()->rm_session()->attach(_hip_rom.dataspace())),
|
||||||
_clock(_hip->freq_tsc*1000),
|
_clock(_hip->freq_tsc*1000),
|
||||||
_motherboard(&_clock, _hip),
|
_motherboard(&_clock, _hip),
|
||||||
_guest_memory(32*1024*1024 /* XXX hard-wired for now */),
|
_guest_memory(guest_memory),
|
||||||
_boot_modules(boot_modules)
|
_boot_modules(boot_modules)
|
||||||
{
|
{
|
||||||
_timeouts.init();
|
_timeouts.init();
|
||||||
@ -1040,12 +1040,14 @@ class Machine : public StaticReceiver<Machine>
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
static Guest_memory guest_memory(32*1024*1024 /* XXX hard-wired for now */);
|
||||||
|
|
||||||
Genode::printf("--- Vancouver VMM started ---\n");
|
Genode::printf("--- Vancouver VMM started ---\n");
|
||||||
|
|
||||||
static Boot_module_provider
|
static Boot_module_provider
|
||||||
boot_modules(Genode::config()->xml_node().sub_node("multiboot"));
|
boot_modules(Genode::config()->xml_node().sub_node("multiboot"));
|
||||||
|
|
||||||
static Machine machine(boot_modules);
|
static Machine machine(boot_modules, guest_memory);
|
||||||
|
|
||||||
machine.setup_devices(Genode::config()->xml_node().sub_node("machine"));
|
machine.setup_devices(Genode::config()->xml_node().sub_node("machine"));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user