Virtual address allocator
include/mem/vas.h View source View on GitHubFunctions
Section titled “Functions”vas_bootstrap
Section titled “vas_bootstrap”struct vas * vas_bootstrap(vaddr_t base, vaddr_t limit); vas_create
Section titled “vas_create”struct vas * vas_create(vaddr_t base, vaddr_t limit); vas_from
Section titled “vas_from”struct vas * vas_from(struct address_range *ar); vas_bootstrap_from
Section titled “vas_bootstrap_from”struct vas * vas_bootstrap_from(struct address_range *ar); vas_alloc
Section titled “vas_alloc”vaddr_t vas_alloc(struct vas *vas, size_t size, size_t align); vas_free
Section titled “vas_free”void vas_free(struct vas *vas, vaddr_t addr, size_t size); vas_map
Section titled “vas_map”void * vas_map(struct vas *vas, paddr_t paddr, size_t len, uint64_t flags, enum vmm_flags vflags); vas_unmap
Section titled “vas_unmap”void vas_unmap(struct vas *vas, void *vaddr, size_t len); vas_reclaim
Section titled “vas_reclaim”void vas_reclaim(struct vas *vas); vas_reclaim_freelist_pages
Section titled “vas_reclaim_freelist_pages”void vas_reclaim_freelist_pages(struct vas_arena *arena); vas_destroy
Section titled “vas_destroy”bool vas_destroy(struct vas *vas); vas_space_dump
Section titled “vas_space_dump”void vas_space_dump(struct vas *vas); vas_vaddr_in_vas
Section titled “vas_vaddr_in_vas”bool vas_vaddr_in_vas(struct vas *vas, vaddr_t addr); vas_vaddr_is_allocated
Section titled “vas_vaddr_is_allocated”bool vas_vaddr_is_allocated(struct vas *vas, vaddr_t addr); Macros
Section titled “Macros”VAS_CHUNK_SHIFT
Section titled “VAS_CHUNK_SHIFT”#define VAS_CHUNK_SHIFT 26 VAS_CHUNK_SIZE
Section titled “VAS_CHUNK_SIZE”#define VAS_CHUNK_SIZE (1ULL << VAS_CHUNK_SHIFT)