diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-04-16 19:25:05 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-04-16 19:25:05 +0300 |
| commit | e71dd2d9fe1cc3a6d074f9c1894e2c5200cecdb1 (patch) | |
| tree | c698f756f38f0ebe6e549f32e9bc4b7647d40b5d /include | |
| parent | 4c6be9cb63ff66ce49a6f733c1e00d1889f2c95f (diff) | |
| download | kmi-e71dd2d9fe1cc3a6d074f9c1894e2c5200cecdb1.tar.gz kmi-e71dd2d9fe1cc3a6d074f9c1894e2c5200cecdb1.zip | |
create more general node structure
+ Allow for easier handling of other subsystems that want to use nodes,
mainly tcb and possibly dev_mem
Diffstat (limited to 'include')
| -rw-r--r-- | include/apos/mem_nodes.h | 1 | ||||
| -rw-r--r-- | include/apos/nodes.h | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/apos/mem_nodes.h b/include/apos/mem_nodes.h index 7a3169f..50f280d 100644 --- a/include/apos/mem_nodes.h +++ b/include/apos/mem_nodes.h @@ -2,6 +2,7 @@ #define MM_NODES_H #include <apos/vmem.h> +#include <apos/nodes.h> void init_mem_blocks(); void destroy_mem_blocks(); diff --git a/include/apos/nodes.h b/include/apos/nodes.h new file mode 100644 index 0000000..80888e1 --- /dev/null +++ b/include/apos/nodes.h @@ -0,0 +1,30 @@ +#ifndef APOS_NODES_H +#define APOS_NODES_H + +#include <apos/types.h> + +enum node_status { FREE = 0, USED = 1}; +struct node_region { + size_t used_nodes; + + struct node_region *av_next; + struct node_region *av_prev; + + struct node_region *next; + struct node_region *prev; +}; + +struct node_root { + size_t node_size; + + struct node_region *head; + struct node_region *av_head; +}; + +void init_nodes(struct node_root *r, size_t node_size); +void destroy_nodes(struct node_root *r); + +void *get_node(struct node_root *r); +void free_node(struct node_root *r, void *p); + +#endif /* APOS_NODES_H */ |
