Files
osc2025/kernel/include/kmalloc.h
2025-04-08 06:59:50 +08:00

28 lines
600 B
C

#pragma once
#include <stddef.h>
#define KMALLOC_MAX_ALLOCATOR_SIZE 256
typedef struct kmalloc_header {
size_t unit;
size_t left;
void *begin;
struct kmalloc_header *page_prev, *page_next;
}__attribute__((packed)) kmalloc_header_t;
typedef struct {
size_t left;
kmalloc_header_t *page_begin;
} kmalloc_allocator_t;
void init_mman_kmalloc();
void *simple_alloc(size_t size);
void *mman_alloc(size_t size);
void mman_free(void *ptr);
extern void *(*kmalloc)(size_t size);
extern void (*kfree)(void *ptr);
extern kmalloc_allocator_t mman_kmalloc_pool[KMALLOC_MAX_ALLOCATOR_SIZE + 1];