aboutsummaryrefslogtreecommitdiff
path: root/include/apos/mem_regions.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-05-24 21:18:55 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-05-24 21:18:55 +0300
commite033569910aecb4d8fb437a622e542b8803834ec (patch)
treeb7e31d1b266dfbd3b1aa79ae4db47d584541c8bc /include/apos/mem_regions.h
parent12be40e22aae582cca9abbd151031edaab800cae (diff)
downloadkmi-e033569910aecb4d8fb437a622e542b8803834ec.tar.gz
kmi-e033569910aecb4d8fb437a622e542b8803834ec.zip
initial musings about exec
Diffstat (limited to 'include/apos/mem_regions.h')
-rw-r--r--include/apos/mem_regions.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/apos/mem_regions.h b/include/apos/mem_regions.h
index 8e9125f..bd1ce2b 100644
--- a/include/apos/mem_regions.h
+++ b/include/apos/mem_regions.h
@@ -14,6 +14,9 @@
#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_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)
struct mem_region_root {
struct sp_root free_regions;
@@ -54,6 +57,9 @@ typedef stat_t region_callback_t(struct vmem *b, pm_t *offset, vm_t vaddr,
vmflags_t flags, enum mm_order order,
void *data);
+stat_t stat_region(struct mem_region_root *r, vm_t va, vmflags_t *flags);
+stat_t mod_region(struct mem_region_root *r, vm_t va, vmflags_t flags);
+
vm_t map_fill_region(struct vmem *b, region_callback_t *mem_handler,
pm_t offset, vm_t start, size_t bytes, vmflags_t flags,
void *data);