summaryrefslogtreecommitdiff
path: root/include/memory/virtalloc.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/memory/virtalloc.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/memory/virtalloc.h b/include/memory/virtalloc.h
new file mode 100644
index 0000000..c4bac56
--- /dev/null
+++ b/include/memory/virtalloc.h
@@ -0,0 +1,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);