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
Notes: sideshowbarker 2024-07-18 09:20:26 +09:00
2 changed files with 11 additions and 4 deletions

View file

@ -270,6 +270,12 @@ void* kmalloc(size_t size)
return ptr;
}
void kfree_sized(void* ptr, size_t size)
{
(void)size;
return kfree(ptr);
}
void kfree(void* ptr)
{
if (!ptr)
@ -333,9 +339,9 @@ void operator delete(void* ptr) noexcept
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
@ -343,9 +349,9 @@ void operator delete[](void* ptr) noexcept
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)

View file

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