1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:47:44 +00:00

Kernel: Add kfree_sized(), kfree() with a known allocation size

C++14 gave us sized operator delete, but we haven't been taking
advantage of it. Let's get to a point where it can help us by
adding kfree_sized(void*, size_t).
This commit is contained in:
Andreas Kling 2021-07-11 13:19:33 +02:00
parent 98080497d2
commit d38b4e4665
2 changed files with 11 additions and 4 deletions

View file

@ -270,6 +270,12 @@ void* kmalloc(size_t size)
return ptr; return ptr;
} }
void kfree_sized(void* ptr, size_t size)
{
(void)size;
return kfree(ptr);
}
void kfree(void* ptr) void kfree(void* ptr)
{ {
if (!ptr) if (!ptr)
@ -333,9 +339,9 @@ void operator delete(void* ptr) noexcept
return kfree(ptr); return kfree(ptr);
} }
void operator delete(void* ptr, size_t) noexcept void operator delete(void* ptr, size_t size) noexcept
{ {
return kfree(ptr); return kfree_sized(ptr, size);
} }
void operator delete[](void* ptr) noexcept void operator delete[](void* ptr) noexcept
@ -343,9 +349,9 @@ void operator delete[](void* ptr) noexcept
return kfree(ptr); return kfree(ptr);
} }
void operator delete[](void* ptr, size_t) noexcept void operator delete[](void* ptr, size_t size) noexcept
{ {
return kfree(ptr); return kfree_sized(ptr, size);
} }
void get_kmalloc_stats(kmalloc_stats& stats) void get_kmalloc_stats(kmalloc_stats& stats)

View file

@ -42,6 +42,7 @@ void kmalloc_init();
void* krealloc(void*, size_t); void* krealloc(void*, size_t);
void kfree(void*); void kfree(void*);
void kfree_sized(void*, size_t);
struct kmalloc_stats { struct kmalloc_stats {
size_t bytes_allocated; size_t bytes_allocated;