sandbox: vm: temporary implementation of vm_page_get_vaddr()
This commit is contained in:
@@ -39,6 +39,13 @@ static size_t page_order_bytes[] = {
|
||||
#endif
|
||||
};
|
||||
|
||||
/* temporary */
|
||||
static void *tmp_vaddr_base = NULL;
|
||||
void tmp_set_vaddr_base(void *p)
|
||||
{
|
||||
tmp_vaddr_base = p;
|
||||
}
|
||||
|
||||
void vm_page_init_array()
|
||||
{
|
||||
size_t pmem_size = 0;
|
||||
@@ -90,8 +97,7 @@ phys_addr_t vm_page_get_paddr(vm_page_t *pg)
|
||||
|
||||
void *vm_page_get_vaddr(vm_page_t *pg)
|
||||
{
|
||||
/* TODO */
|
||||
return NULL;
|
||||
return (void *)((char *)tmp_vaddr_base + (vm_page_get_pfn(pg) * VM_PAGE_SIZE));
|
||||
}
|
||||
|
||||
size_t vm_page_get_pfn(vm_page_t *pg)
|
||||
@@ -148,7 +154,7 @@ vm_zone_t *vm_page_get_zone(vm_page_t *pg)
|
||||
if (pg->p_zone >= VM_MAX_ZONES) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
return &node->pg_zones[pg->p_zone];
|
||||
}
|
||||
|
||||
@@ -176,7 +182,7 @@ vm_page_t *vm_page_alloc(vm_page_order_t order, vm_flags_t flags)
|
||||
|
||||
zone_id--;
|
||||
}
|
||||
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -216,7 +222,7 @@ int vm_page_split(vm_page_t *pg, vm_page_t **a, vm_page_t **b)
|
||||
|
||||
*a = pg;
|
||||
*b = buddy;
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -258,7 +264,7 @@ vm_page_t *vm_page_merge(vm_page_t *a, vm_page_t *b)
|
||||
}
|
||||
|
||||
a->p_flags |= VM_PAGE_HEAD;
|
||||
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user