aboutsummaryrefslogtreecommitdiff
path: root/common/mem_nodes.c
blob: d4f7d2e467e88444789070956be380328983f35b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * @file mem_nodes.c
 * Memory node wrapper around the node subsystem, used by \ref
 * common/mem_regions.c.
 *
 * Each region of memory is allocated through a \ref mem_region node, which is
 * allocated through the node subsystem.
 */

#include <apos/vmem.h>
#include <apos/pmem.h>
#include <apos/mem.h>
#include <apos/string.h>
#include <apos/mem_nodes.h>

static struct node_root root;

void init_mem_blocks()
{
	init_nodes(&root, sizeof(struct mem_region));
}

void destroy_mem_blocks()
{
	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);
}