map->base_region.host_addr = (addr_t)V3_AllocPages(mem_pages);
#endif
+ // Clear the memory...
+ memset(V3_VAddr((void *)map->base_region.host_addr), 0, mem_pages * PAGE_SIZE_4KB);
+
+
map->base_region.flags.read = 1;
map->base_region.flags.write = 1;
map->base_region.flags.exec = 1;
struct v3_mem_region * v3_create_mem_region(struct v3_vm_info * vm, uint16_t core_id,
addr_t guest_addr_start, addr_t guest_addr_end) {
-
- struct v3_mem_region * entry = (struct v3_mem_region *)V3_Malloc(sizeof(struct v3_mem_region));
+ struct v3_mem_region * entry = NULL;
+
+ if (guest_addr_start >= guest_addr_end) {
+ PrintError("Region start is after region end\n");
+ return NULL;
+ }
+
+ entry = (struct v3_mem_region *)V3_Malloc(sizeof(struct v3_mem_region));
memset(entry, 0, sizeof(struct v3_mem_region));
entry->guest_start = guest_addr_start;