aboutsummaryrefslogtreecommitdiff
path: root/include/apos
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-12-20 13:12:06 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-12-20 13:12:06 +0200
commita37974009152b4bf6a2d7ed205a48230f939dd72 (patch)
tree8fb3dd159751a9cf983fd78819aad7ff69bb03cc /include/apos
parentdc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa (diff)
downloadkmi-a37974009152b4bf6a2d7ed205a48230f939dd72.tar.gz
kmi-a37974009152b4bf6a2d7ed205a48230f939dd72.zip
still some issues with vmem
+ Not sure if I should go with noinit or init, fuck
Diffstat (limited to 'include/apos')
-rw-r--r--include/apos/init.h30
-rw-r--r--include/apos/vmem.h5
2 files changed, 35 insertions, 0 deletions
diff --git a/include/apos/init.h b/include/apos/init.h
new file mode 100644
index 0000000..6e20439
--- /dev/null
+++ b/include/apos/init.h
@@ -0,0 +1,30 @@
+#ifndef APOS_INIT_H
+#define APOS_INIT_H
+
+#include <apos/pmem.h>
+#include <apos/vmem.h>
+
+struct init_data_t {
+ pm_t init_base;
+ pm_t init_top;
+
+ pm_t initrd_base;
+ pm_t initrd_top;
+
+ pm_t pmap_base;
+ pm_t pmap_top;
+
+ pm_t fdt_base;
+ pm_t fdt_top;
+
+ pm_t stack_base;
+ pm_t stack_top;
+
+ struct vm_branch_t *kernel_vm_base;
+
+ size_t max_order;
+ size_t bits[10];
+ size_t page_shift;
+};
+
+#endif /* APOS_INIT_H */
diff --git a/include/apos/vmem.h b/include/apos/vmem.h
index daa9d10..ef309e2 100644
--- a/include/apos/vmem.h
+++ b/include/apos/vmem.h
@@ -39,6 +39,11 @@ 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);
+void unmap_vmem(struct vm_branch_t *branch, vm_t vaddr, enum mm_order_t order);
+
int sp_mem_init(struct sp_reg_root *r, vm_t start, size_t nums);
vm_t alloc_uvmem(struct tcb *r, size_t s, uint8_t flags);