Added new list-based memory allocator

This commit is contained in:
2023-08-30 22:49:43 -05:00
parent 9f41a1bd7f
commit 64ad489b90
7 changed files with 276 additions and 3 deletions

View File

@@ -1,2 +1,2 @@
nobase_include_HEADERS = libmalloc/bitmap_alloc.h libmalloc/buddy_alloc.h \
libmalloc/memmap.h libmalloc/common.h
libmalloc/list_alloc.h libmalloc/memmap.h libmalloc/common.h

View File

@@ -0,0 +1,27 @@
#ifndef _LIBMALLOC_LISTALLOC_H
#define _LIBMALLOC_LISTALLOC_H
#include "memmap.h"
#include "common.h"
typedef struct list_block_t
{
unsigned long free;
unsigned long size;
struct list_block_t *prev;
struct list_block_t *next;
} list_block_t;
typedef struct list_alloc_descriptor_t
{
list_block_t head;
list_block_t *current_block;
} list_alloc_descriptor_t;
void *list_alloc_reserve(list_alloc_descriptor_t *heap, unsigned long size);
void list_alloc_free(list_alloc_descriptor_t *heap, void *p);
int list_alloc_init(list_alloc_descriptor_t *heap, memory_map_t *map);
#endif