sandbox: vm: add page splitting, merging, and allocation
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
#define VM_PAGE_SIZE 0x1000
|
||||
#define VM_PAGE_SHIFT 12
|
||||
|
||||
#define VM_PAGE_IS_RESERVED(pg) ((pg)->p_flags & VM_PAGE_RESERVED)
|
||||
|
||||
typedef phys_addr_t vm_alignment_t;
|
||||
typedef unsigned int vm_node_id_t;
|
||||
|
||||
@@ -133,9 +135,14 @@ extern vm_alignment_t vm_page_order_to_alignment(vm_page_order_t order);
|
||||
extern vm_page_t *vm_page_alloc(vm_page_order_t order, vm_flags_t flags);
|
||||
extern void vm_page_free(vm_page_t *pg);
|
||||
|
||||
extern int vm_page_split(vm_page_t *pg, vm_page_t **a, vm_page_t **b);
|
||||
extern vm_page_t *vm_page_merge(vm_page_t *a, vm_page_t *b);
|
||||
extern vm_page_t *vm_page_get_buddy(vm_page_t *pg);
|
||||
|
||||
extern size_t vm_bytes_to_pages(size_t bytes);
|
||||
|
||||
extern void vm_zone_init(vm_zone_t *z, const vm_zone_descriptor_t *zone_info);
|
||||
extern vm_page_t *vm_zone_alloc_page(vm_zone_t *z, vm_page_order_t order, vm_flags_t flags);
|
||||
extern void vm_zone_free_page(vm_zone_t *z, vm_page_t *pg);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user