blob: 918ee67a41aa27cb8292fd1cc1cfb649551ba940 (
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
37
38
39
40
|
/* SPDX-License-Identifier: GPL-3.0-or-later */
/* Copyright 2021 - 2022, Kim Kuparinen < kimi.h.kuparinen@gmail.com > */
/**
* @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>
/** 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);
}
|