aboutsummaryrefslogtreecommitdiff
path: root/src/mem_nodes.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-05-24 13:24:27 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-05-24 18:13:43 +0300
commitbc600ecc3bdf0f189861dfb840f70c2339a7a853 (patch)
treed9840b1dc1b865442a028c03ad7109ac67894f6e /src/mem_nodes.c
parent6a7073e5f262db9a4578ff00b5b28e34335564ce (diff)
downloadkmi-bc600ecc3bdf0f189861dfb840f70c2339a7a853.tar.gz
kmi-bc600ecc3bdf0f189861dfb840f70c2339a7a853.zip
rename common to src
+ I keep starting to type src and wondering why autocomplete won't work, I guess src is just uncounciously a better name
Diffstat (limited to 'src/mem_nodes.c')
-rw-r--r--src/mem_nodes.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/mem_nodes.c b/src/mem_nodes.c
new file mode 100644
index 0000000..625b1a3
--- /dev/null
+++ b/src/mem_nodes.c
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: copyleft-next-0.3.1 */
+/* Copyright 2021 - 2022, Kim Kuparinen < kimi.h.kuparinen@gmail.com > */
+
+/**
+ * @file mem_nodes.c
+ * Memory node wrapper around the node subsystem, used by \ref
+ * src/mem_regions.c.
+ *
+ * Each region of memory is allocated through a \ref mem_region node, which is
+ * allocated through the node subsystem.
+ */
+
+#include <kmi/vmem.h>
+#include <kmi/pmem.h>
+#include <kmi/mem.h>
+#include <kmi/string.h>
+#include <kmi/mem_nodes.h>
+
+/** Memory node subsystem instance. */
+static struct node_root root;
+
+void init_mem_nodes()
+{
+ init_nodes(&root, sizeof(struct mem_region));
+}
+
+void destroy_mem_nodes()
+{
+ destroy_nodes(&root);
+}
+
+struct mem_region *get_mem_node()
+{
+ return (struct mem_region *)get_node(&root);
+}
+
+void free_mem_node(struct mem_region *m)
+{
+ free_node(&root, (void *)m);
+}