})
-// Use 32 bit constraints if the vm uses 32bit shadow paging at any point
-// Should be used for shadow page tables and any physical memory
-// mapped into the vm
-#define V3_AllocShadowSafePages(vm,num_pages) \
- ({ \
- extern struct v3_os_hooks * os_hooks; \
- void * ptr = 0; \
- int c; int shadow=0; \
- for (c=0;c<(vm)->num_cores && !shadow;c++) { \
- shadow|=vm->cores[c].shdw_pg_mode==SHADOW_PAGING; \
- } \
- if ((os_hooks) && (os_hooks)->allocate_pages) { \
- ptr = (os_hooks)->allocate_pages(num_pages,PAGE_SIZE_4KB,-1,\
- shadow ? V3_ALLOC_PAGES_CONSTRAINT_4GB : 0); \
- } \
- ptr; \
- })
-
#define V3_AllocAlignedPages(num_pages, align) \
({ \
extern struct v3_os_hooks * os_hooks; \
video_state->dev = dev;
- video_state->framebuf_pa = (addr_t)V3_AllocShadowSafePages(vm,FRAMEBUF_SIZE / 4096);
+ video_state->framebuf_pa = (addr_t)V3_AllocPages(FRAMEBUF_SIZE / 4096);
if (!video_state->framebuf_pa) {
PrintError(vm, VCORE_NONE, "Cannot allocate frame buffer\n");
PrintDebug(info->vm_info, info, "video: init_device\n");
PrintDebug(info->vm_info, info, "Num Pages=%d\n", SIZE_OF_REGION / 4096);
- video_state->video_memory_pa = (addr_t)V3_AllocShadowSafePages(vm, SIZE_OF_REGION / 4096);
+ video_state->video_memory_pa = (addr_t)V3_AllocPages(SIZE_OF_REGION / 4096);
if (!video_state->video_memory_pa) {
PrintError(info->vm_info, info, "Cannot allocate video memory\n");
V3_Free(video_state);
if (state->mode==MEM || state->mode==GCONS_MEM) {
state->mem_size=MAXX*MAXY*MAXBPP;
PrintDebug(vm, VCORE_NONE, "paragraph: allocating %llu bytes for local framebuffer\n", state->mem_size);
- state->mem_paddr = V3_AllocShadowSafePages(vm,ceil_pages(state->mem_size));
+ state->mem_paddr = V3_AllocPages(ceil_pages(state->mem_size));
if (!state->mem_paddr) {
PrintError(state->vm, VCORE_NONE, "paragraph: Cannot allocate memory for framebuffer\n");
paragraph_free_internal(state);
swap->active = 0;
swap->hdr = (union swap_header *)swap;
- swap->swap_base_addr = (addr_t)V3_AllocShadowSafePages(swap->capacity / 4096);
+ swap->swap_base_addr = (addr_t)V3_AllocPages(swap->capacity / 4096);
if (!swap->swap_base_addr) {
PrintError(vm, VCORE_NONE, "Cannot allocate swap space\n");
swap->active = 0;
- swap->cache_base_addr = (addr_t)V3_AllocShadowSafePages(vm,swap->cache_size / 4096);
+ swap->cache_base_addr = (addr_t)V3_AllocPages(swap->cache_size / 4096);
if (!swap->cache_base_addr) {
PrintError(vm, VCORE_NONE, "Cannot allocate cache space\n");
blk->capacity = capacity;
- blk->blk_base_addr = (addr_t)V3_AllocShadowSafePages(vm,blk->capacity / 4096);
+ blk->blk_base_addr = (addr_t)V3_AllocPages(blk->capacity / 4096);
if (!blk->blk_base_addr) {
PrintError(vm, VCORE_NONE, "Cannot allocate block space\n");
for (i=0;i<MAP_NUM;i++) {
void *temp;
- temp = (void*)V3_AllocShadowSafePages(vm,MAP_SIZE/4096);
+ temp = (void*)V3_AllocPages(MAP_SIZE/4096);
if (!temp) {
PrintError(vm, VCORE_NONE, "vga: cannot allocate maps\n");
free_vga(vga);
region->host_addr = (addr_t)V3_AllocPagesExtended(block_pages,
PAGE_SIZE_4KB,
node_id,
- will_use_shadow_paging(vm) ?
- V3_ALLOC_PAGES_CONSTRAINT_4GB : 0 );
+ 0); // no constraints
if ((void *)region->host_addr == NULL) {
PrintError(vm, VCORE_NONE, "Could not allocate guest memory\n");
struct v3_mem_hooks * hooks = &(vm->mem_hooks);
- temp = V3_AllocShadowSafePages(vm,vm->num_cores);
+ temp = V3_AllocPages(vm->num_cores);
if (!temp) {
PrintError(vm, VCORE_NONE, "Cannot allocate space for mem hooks\n");
hooks->hook_hvas_1 = V3_VAddr(temp);
- temp = V3_AllocShadowSafePages(vm,vm->num_cores);
+ temp = V3_AllocPages(vm->num_cores);
if (!temp) {
PrintError(vm, VCORE_NONE,"Cannot allocate space for mem hooks\n");
int v3_init_symspy_vm(struct v3_vm_info * vm, struct v3_symspy_global_state * state) {
- state->global_page_pa = (addr_t)V3_AllocShadowSafePages(vm, 1);
+ state->global_page_pa = (addr_t)V3_AllocPages(1);
if (!state->global_page_pa) {
PrintError(vm, VCORE_NONE, "Cannot allocate page\n");
return -1;
int v3_init_symspy_core(struct guest_info * core, struct v3_symspy_local_state * state) {
- state->local_page_pa = (addr_t)V3_AllocShadowSafePages(core->vm_info, 1);
+ state->local_page_pa = (addr_t)V3_AllocPages(1);
if (!state->local_page_pa) {
PrintError(core->vm_info, core, "Cannot allocate page\n");