Feat: lab 4
This commit is contained in:
27
kernel/include/kmalloc.h
Normal file
27
kernel/include/kmalloc.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#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];
|
||||
Reference in New Issue
Block a user