aboutsummaryrefslogtreecommitdiff
path: root/include/apos/mem.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-05-12 15:52:25 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-05-12 15:52:25 +0300
commit1ea7d9dec1b460ab76dfd6270596c8138c9c2b40 (patch)
tree0e8799fe0d7a653e864bd90c65a29e4012026f71 /include/apos/mem.h
parent42a1e087ce99f07b48aaea5552f8e1ce5219d228 (diff)
downloadkmi-1ea7d9dec1b460ab76dfd6270596c8138c9c2b40.tar.gz
kmi-1ea7d9dec1b460ab76dfd6270596c8138c9c2b40.zip
initial workings of shared memory
+ Should document this better but essentially a server requests a shared buffer, and chan then share this buffer to a thread. Freeing the buffer is done through normal means. MR_SHARED is used for buffers that are shared, and MR_OWNED tells whoever is freeing that region that it is allowed to free the physical memory behind the shared buffer.
Diffstat (limited to 'include/apos/mem.h')
-rw-r--r--include/apos/mem.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/apos/mem.h b/include/apos/mem.h
index ece8ee3..bc60f21 100644
--- a/include/apos/mem.h
+++ b/include/apos/mem.h
@@ -39,6 +39,13 @@
__page((x) + BASE_PAGE_SIZE))
#define __bytes(x) (__addr(x))
+/* if memory region is used or not */
+#define MR_USED (1 << 8)
+/* if memory region is shared */
+#define MR_SHARED (1 << 9)
+/* owner of shared region */
+#define MR_OWNED (1 << 10)
+
extern size_t __mm_shifts[10];
extern size_t __mm_widths[10];
extern size_t __mm_sizes[10];