X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/095a899a9749b85443e546b1062026747445658c..c166bd62fbb907f95f79f621e2a2fb4fdde08e01:/lunaix-os/kernel/mm/pmm_internal.h diff --git a/lunaix-os/kernel/mm/pmm_internal.h b/lunaix-os/kernel/mm/pmm_internal.h new file mode 100644 index 0000000..cfdd265 --- /dev/null +++ b/lunaix-os/kernel/mm/pmm_internal.h @@ -0,0 +1,29 @@ +#ifndef __LUNAIX_PMM_ALLOC_H +#define __LUNAIX_PMM_ALLOC_H + +#include + +static inline void +set_reserved(struct ppage* page) +{ + page->refs = RESERVE_MARKER; + page->type = PP_RESERVED; + page->order = 0; +} + +void +pmm_allocator_init(struct pmem* memory); + +void +pmm_allocator_init_pool(struct pmem_pool* pool); + +void +pmm_allocator_add_freehole(struct pmem_pool* pool, struct ppage* start, struct ppage* end); + +bool +pmm_allocator_trymark_onhold(struct pmem_pool* pool, struct ppage* start, struct ppage* end); + +bool +pmm_allocator_trymark_unhold(struct pmem_pool* pool, struct ppage* start, struct ppage* end); + +#endif /* __LUNAIX_PMM_ALLOC_H */