diff options
Diffstat (limited to 'include/apos/mem_regions.h')
| -rw-r--r-- | include/apos/mem_regions.h | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/include/apos/mem_regions.h b/include/apos/mem_regions.h index 35428e1..af6dc52 100644 --- a/include/apos/mem_regions.h +++ b/include/apos/mem_regions.h @@ -7,18 +7,18 @@ #include <arch/vmem.h> #define mem_container(ptr)\ - container_of(ptr, struct sp_mem, sp_n) + container_of(ptr, struct mem_region, sp_n) -struct sp_reg_root { +struct mem_region_root { struct sp_root free_regions; struct sp_root used_regions; }; -struct sp_mem { +struct mem_region { struct sp_node sp_n; - struct sp_mem *next; - struct sp_mem *prev; + struct mem_region *next; + struct mem_region *prev; char flags; @@ -26,20 +26,22 @@ struct sp_mem { vm_t start; }; -stat_t sp_mem_init(struct sp_reg_root *r, vm_t start, size_t arena_size); -vm_t alloc_region(struct sp_reg_root *r, size_t size, size_t *actual_size); -vm_t alloc_fixed_region(struct sp_reg_root *r, vm_t start, size_t size, size_t *actual_size); -stat_t free_region(struct sp_reg_root *r, vm_t start); +stat_t init_region(struct mem_region_root *r, vm_t start, size_t arena_size); +void destroy_region(struct mem_region_root *r); -struct sp_mem *sp_used_find(struct sp_reg_root *r, vm_t start); -struct sp_mem *sp_find_used_closest(struct sp_reg_root *r, vm_t start); -struct sp_mem *sp_find_free(struct sp_reg_root *r, size_t size, size_t *align); +vm_t alloc_region(struct mem_region_root *r, size_t size, size_t *actual_size); +vm_t alloc_fixed_region(struct mem_region_root *r, vm_t start, size_t size, size_t *actual_size); +stat_t free_region(struct mem_region_root *r, vm_t start); -#define MEM_REGION_TRY_AGAIN 1 -typedef stat_t mem_region_callback_t(struct vm_branch *b, +struct mem_region *find_used_region(struct mem_region_root *r, vm_t start); +struct mem_region *find_closest_used_region(struct mem_region_root *r, vm_t start); +struct mem_region *find_free_region(struct mem_region_root *r, size_t size, size_t *align); + +#define REGION_TRY_AGAIN 1 +typedef stat_t region_callback_t(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order); -vm_t map_fill_region(struct vm_branch *b, mem_region_callback_t *mem_handler, +vm_t map_fill_region(struct vm_branch *b, region_callback_t *mem_handler, pm_t offset, vm_t start, size_t bytes, vmflags_t flags); #endif /* APOS_MEM_REGIONS_H */ |
