aboutsummaryrefslogtreecommitdiff
path: root/include/apos/pmem.h
diff options
context:
space:
mode:
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 */