aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-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);