aboutsummaryrefslogtreecommitdiff
path: root/include/apos/vmem.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-12-19 17:10:36 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-12-19 17:10:36 +0200
commit9966b49db468de0168c7a455dfb5b4c66c413c4d (patch)
treedf31febe5e1ae52bae68ebe1df8b4469b97e0546 /include/apos/vmem.h
parent8bb1e280280c2f30740defca68ea643c56a3d880 (diff)
downloadkmi-9966b49db468de0168c7a455dfb5b4c66c413c4d.tar.gz
kmi-9966b49db468de0168c7a455dfb5b4c66c413c4d.zip
Massive changes to jump to userspace
Diffstat (limited to 'include/apos/vmem.h')
-rw-r--r--include/apos/vmem.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/include/apos/vmem.h b/include/apos/vmem.h
index eb7ad17..fe2a76f 100644
--- a/include/apos/vmem.h
+++ b/include/apos/vmem.h
@@ -1,11 +1,14 @@
#ifndef APOS_VMEM_H
#define APOS_VMEM_H
+struct sp_mem;
+
/* arch-specific data */
#include <vmem.h>
/* common */
#include <apos/pmem.h>
+#include <apos/tcb.h>
#include <apos/sp_tree.h>
struct sp_mem {
@@ -24,6 +27,7 @@ struct sp_mem {
container_of(ptr, struct sp_mem, sp_n)
+
/* general overview of the different functions:
* (un)map_vmem: map one known page of physical memory to one known page of
* virtual memory
@@ -35,16 +39,14 @@ struct sp_mem {
*/
/* defined by arch */
-void map_vmem(struct vm_branch_t *branch,
- pm_t paddr, vm_t vaddr,
- uint8_t flags, enum mm_order_t order);
+int sp_mem_init(struct sp_reg_root *r, size_t nums);
-void unmap_vmem(struct vm_branch_t *branch, vm_t vaddr, enum mm_order_t order);
+vm_t alloc_uvmem(struct tcb *r, size_t s, uint8_t flags);
+void free_uvmem(struct tcb *r, vm_t a);
+vm_t map_fill_region(struct vm_branch_t *b, vm_t start, size_t bytes, uint8_t flags);
-vm_t map_vregion(struct vm_branch_t *branch, pm_t base, vm_t start, size_t size,
- uint8_t flags);
-void unmap_vregion(struct vm_branch_t *branch, vm_t start);
+size_t uvmem_size();
+void set_uvmem_size(size_t s);
-void init_vmem(struct vm_branch_t *branch, vm_t tmp_pte);
#endif /* APOS_VMEM_H */