From eba8b5ad4f9aac40ff034dfd7f057b721bf9fbcc Mon Sep 17 00:00:00 2001 From: PoliEcho Date: Wed, 23 Sep 2026 22:12:56 +0200 Subject: [PATCH] mini kalloc change --- kernel/include/kmalloc.h | 21 +++++++++++++++++++++ kernel/src/kmalloc.c | 3 +++ 2 files changed, 24 insertions(+) diff --git a/kernel/include/kmalloc.h b/kernel/include/kmalloc.h index 8d76285..7635647 100644 --- a/kernel/include/kmalloc.h +++ b/kernel/include/kmalloc.h @@ -39,4 +39,25 @@ union per_cpu_freelist_cache { }; }; +union partial_list { + void* freelists[KMALLOC_MAX_SIZE]; + struct { + void* kmalloc_8; + void* kmalloc_16; + void* kmalloc_32; + void* kmalloc_64; + void* kmalloc_128; + void* kmalloc_256; + void* kmalloc_512; + void* kmalloc_1024; + void* kmalloc_2048; + void* kmalloc_4096; + void* kmalloc_8192; + void* kmalloc_16384; + void* kmalloc_32768; + void* kmalloc_65536; + void* kmalloc_131072; + }; +}; + #endif \ No newline at end of file diff --git a/kernel/src/kmalloc.c b/kernel/src/kmalloc.c index a5dbbbc..94531d0 100644 --- a/kernel/src/kmalloc.c +++ b/kernel/src/kmalloc.c @@ -35,6 +35,9 @@ void* kzalloc(size_t size) { } void* kmalloc(size_t size) { + if (!size) { + return NULL; + } uint32_t core_id; __asm__ volatile( "rdtscp"