summaryrefslogtreecommitdiff
path: root/include/memory/virtalloc.h
blob: c4bac560f6796cac3a72bbd35349aa955b6de72c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once

#ifndef MEMORY_INTERNAL
	#error "Do not include headers from <memory/___.h>, only use <memory.h>"
#endif

/**
 * Initalizes the virtual address allocator
 */
void virtaddr_init(void);

/**
 * Allocate a virtual address of length x pages
 * @param pages - x pages
 * @returns virt addr
 */
void *virtaddr_alloc(int pages);

/**
 * Free the virtual address from virtaddr_alloc
 * @param virtaddr - the addr to free
 * @returns number of pages used for virtaddr
 */
long virtaddr_free(void *virtaddr);