22 lines
455 B
C++
22 lines
455 B
C++
#pragma once
|
|
#include <PlacementNew.h>
|
|
#include <Result.h>
|
|
|
|
Result<void*> kmalloc(usize size);
|
|
Result<void*> kcalloc(usize nmemb, usize size);
|
|
Result<void*> krealloc(void* ptr, usize size);
|
|
Result<void> kfree(void* ptr);
|
|
|
|
template <typename T> Result<T*> make()
|
|
{
|
|
void* ptr = TRY(kcalloc(1, sizeof(T)));
|
|
return new (ptr) T;
|
|
}
|
|
|
|
template <typename T> Result<void> destroy(T* item)
|
|
{
|
|
item->~T();
|
|
return kfree(item);
|
|
}
|
|
|
|
void dump_heap_usage(); |