aboutsummaryrefslogtreecommitdiff
path: root/include/apos/mem_regions.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-05-29 16:23:41 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-05-29 16:23:41 +0300
commitd7cb08134102b7a2410c48d2a1802193f9031e00 (patch)
tree711498836d6679ca2fc3b4ba9369b7fe53d7a3fa /include/apos/mem_regions.h
parente148f38dc937c34b222ba8df8612b3fa2b6bc349 (diff)
downloadkmi-d7cb08134102b7a2410c48d2a1802193f9031e00.tar.gz
kmi-d7cb08134102b7a2410c48d2a1802193f9031e00.zip
continue documentation efforts
Diffstat (limited to 'include/apos/mem_regions.h')
-rw-r--r--include/apos/mem_regions.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/include/apos/mem_regions.h b/include/apos/mem_regions.h
index 54e4e2b..38629f2 100644
--- a/include/apos/mem_regions.h
+++ b/include/apos/mem_regions.h
@@ -13,7 +13,7 @@
#include <arch/vmem.h>
#define mem_container(ptr) container_of(ptr, struct mem_region, sp_n)
-#define is_region_used(r) is_set(r->flags, MR_USED)
+#define is_region_used(r) is_set(r->flags, MR_USED)
#define is_region_owned(r) is_set(r->flags, MR_OWNED)
#define is_region_shared(r) is_set(r->flags, MR_SHARED)
#define is_region_kept(r) is_set(r->flags, MR_KEEP)
@@ -52,7 +52,22 @@ struct mem_region *find_closest_used_region(struct mem_region_root *r,
struct mem_region *find_free_region(struct mem_region_root *r, size_t size,
size_t *align);
-typedef stat_t region_callback_t(struct vmem *b, pm_t *offset, vm_t vaddr,
+/**
+ * Helper functions for converting between memory regions and page
+ * mappings. Called by \ref map_fill_region().
+ * \see map_fill_region() for further explanation.
+ *
+ * @param vmem Virtual memory space in which the operation is to be done.
+ * @param offset Offset from where to start looking for next physical page. \see
+ * alloc_page().
+ * @param vaddr Current virtual address.
+ * @param flags Virtual memory allocation flags.
+ * @param order Order of physical page.
+ * @param data Custom data.
+ * @return \ref OK if succesful, \c INFO_TRGN if page order should be decreased,
+ * anything else means error.
+ */
+typedef stat_t region_callback_t(struct vmem *vmem, pm_t *offset, vm_t vaddr,
vmflags_t flags, enum mm_order order,
void *data);