forked from Bananymous/banan-os
Kernel: Add kmalloc_eternal back
This commit is contained in:
parent
cdd27ae3db
commit
026fdc251c
|
@ -23,6 +23,7 @@ static constexpr uintptr_t s_kmalloc_end = s_kmalloc_base + s_kmalloc_size;
|
||||||
static constexpr uintptr_t s_kmalloc_eternal_base = s_kmalloc_end;
|
static constexpr uintptr_t s_kmalloc_eternal_base = s_kmalloc_end;
|
||||||
static constexpr size_t s_kmalloc_eternal_size = 1 * MB;
|
static constexpr size_t s_kmalloc_eternal_size = 1 * MB;
|
||||||
static constexpr uintptr_t s_kmalloc_eternal_end = s_kmalloc_eternal_base + s_kmalloc_eternal_size;
|
static constexpr uintptr_t s_kmalloc_eternal_end = s_kmalloc_eternal_base + s_kmalloc_eternal_size;
|
||||||
|
static uintptr_t s_kmalloc_eternal_ptr = s_kmalloc_eternal_base;
|
||||||
|
|
||||||
static constexpr size_t s_kmalloc_default_align = alignof(max_align_t);
|
static constexpr size_t s_kmalloc_default_align = alignof(max_align_t);
|
||||||
static constexpr size_t s_kmalloc_chunk_size = s_kmalloc_default_align;
|
static constexpr size_t s_kmalloc_chunk_size = s_kmalloc_default_align;
|
||||||
|
@ -97,6 +98,16 @@ void kmalloc_dump_info()
|
||||||
kprintln(" free: {}", s_kmalloc_eternal_free);
|
kprintln(" free: {}", s_kmalloc_eternal_free);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void* kmalloc_eternal(size_t size)
|
||||||
|
{
|
||||||
|
if (size_t rem = size % alignof(max_align_t))
|
||||||
|
size += alignof(max_align_t) - rem;
|
||||||
|
ASSERT(s_kmalloc_eternal_ptr + size < s_kmalloc_eternal_end);
|
||||||
|
void* result = (void*)s_kmalloc_eternal_ptr;
|
||||||
|
s_kmalloc_eternal_ptr += size;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void* kmalloc(size_t size)
|
void* kmalloc(size_t size)
|
||||||
{
|
{
|
||||||
return kmalloc(size, s_kmalloc_default_align);
|
return kmalloc(size, s_kmalloc_default_align);
|
||||||
|
|
Loading…
Reference in New Issue