diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/apos/init.h | 30 | ||||
| -rw-r--r-- | include/apos/vmem.h | 5 |
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); |
