aboutsummaryrefslogtreecommitdiff
path: root/include/apos/pmem.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-12-29 23:23:36 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-12-29 23:53:06 +0200
commit4f4d9fdc89c27aa3346467a24b621954f4564d3b (patch)
treec4ba4fb583a43b8fb27730b4cdb9b4b1395da91c /include/apos/pmem.h
parent4e5595a089c815febd7a0d42ab62940bf13f73ac (diff)
downloadkmi-4f4d9fdc89c27aa3346467a24b621954f4564d3b.tar.gz
kmi-4f4d9fdc89c27aa3346467a24b621954f4564d3b.zip
Refactoring
+ Mainly just moving stuff out or arch/riscv/ that should be handled in common/ + Prepared separate process stack/call stack for server callbacks, rest to be implemeted soon ish
Diffstat (limited to 'include/apos/pmem.h')
-rw-r--r--include/apos/pmem.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/include/apos/pmem.h b/include/apos/pmem.h
index 01d89ce..2850f22 100644
--- a/include/apos/pmem.h
+++ b/include/apos/pmem.h
@@ -4,7 +4,8 @@
#include <apos/mem.h>
#include <apos/types.h>
-enum mm_order_t {
+#define ORDERS_NUM 10
+enum mm_order {
MM_O0,
MM_O1,
MM_O2,
@@ -20,12 +21,18 @@ enum mm_order_t {
typedef size_t pm_t;
typedef ssize_t pnum_t;
+/* arch */
+int arch_pmem_conf(void *fdt, size_t *max_order, size_t *base_bits, size_t bits[ORDERS_NUM]);
+
+/* common */
void update_pmap(pm_t offset);
-void free_page(enum mm_order_t order, pm_t paddr);
-void mark_used(enum mm_order_t order, pm_t paddr);
-pm_t alloc_page(enum mm_order_t order, pm_t offset);
+void free_page(enum mm_order order, pm_t paddr);
+void mark_used(enum mm_order order, pm_t paddr);
+pm_t alloc_page(enum mm_order order, pm_t offset);
pm_t populate_pmap(pm_t ram_base, size_t ram_size, pm_t cont);
pm_t probe_pmap(pm_t ram_base, size_t ram_size);
+void init_pmem(void *fdt);
+
#endif /* APOS_PMEM_H */