aboutsummaryrefslogtreecommitdiff
path: root/common/nodes.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-06-12 16:18:47 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-06-12 16:18:47 +0300
commit62fc51338d7259c2ea39f38bd8c7d9552e9b2002 (patch)
tree87eb670ed58b3ce0d5c0e2ad39f5c633d9e10e40 /common/nodes.c
parent6c529c5c6c2d016d77b143171c5e27fbec0d2bfd (diff)
downloadkmi-62fc51338d7259c2ea39f38bd8c7d9552e9b2002.tar.gz
kmi-62fc51338d7259c2ea39f38bd8c7d9552e9b2002.zip
doxygen shows no warnings
+ Does not mean documentation is done, but it's a nice little achievement nonetheless.
Diffstat (limited to 'common/nodes.c')
-rw-r--r--common/nodes.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/common/nodes.c b/common/nodes.c
index ce33547..9cfd2a2 100644
--- a/common/nodes.c
+++ b/common/nodes.c
@@ -41,9 +41,20 @@
* being free)
*/
+/**
+ * Get start of node region from pointer.
+ *
+ * @param r Pointer to node inside node region.
+ * @return Corresponding node region.
+ */
#define node_region(r) \
((struct node_region *)((uintptr_t)(r) & ~(BASE_PAGE_SIZE - 1)))
+/**
+ * Create new node region.
+ *
+ * @return Pointer to created region.
+ */
static struct node_region *__create_region()
{
struct node_region *r = (struct node_region *)alloc_page(BASE_PAGE, 0);
@@ -78,6 +89,13 @@ void destroy_nodes(struct node_root *r)
}
}
+/**
+ * Find free node in node region.
+ *
+ * @param r Node root to work in.
+ * @param nr Node region to look in.
+ * @return Pointer to free node.
+ */
static void *__find_free_node(struct node_root *r, struct node_region *nr)
{
uint8_t *bitmap = r->bitmap + (uint8_t *)nr;
@@ -92,6 +110,11 @@ static void *__find_free_node(struct node_root *r, struct node_region *nr)
return 0;
}
+/**
+ * Pop free list head.
+ *
+ * @param r Node region root to work in.
+ */
static void __pop_av_head(struct node_root *r)
{
struct node_region *t = r->av_head;
@@ -124,6 +147,12 @@ void *get_node(struct node_root *r)
return p;
}
+/**
+ * Push free list head.
+ *
+ * @param r Node region root to work in.
+ * @param nr Node region to push.
+ */
static void __push_av_head(struct node_root *r, struct node_region *nr)
{
nr->av_prev = 0;
@@ -134,6 +163,12 @@ static void __push_av_head(struct node_root *r, struct node_region *nr)
r->av_head = nr;
}
+/**
+ * Free a node region.
+ *
+ * @param r Node region root to work in.
+ * @param nr Node region to free.
+ */
static void __free_region(struct node_root *r, struct node_region *nr)
{
struct node_region *av_n = nr->av_next;