Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
FrameHeap.hh
1
#pragma once
2
3
#include "abstract/memory/HeapCommon.hh"
4
5
namespace
Kinoko::Abstract::Memory {
6
7
class
MEMiFrmHeapHead :
public
MEMiHeapHead {
8
private
:
9
MEMiFrmHeapHead(
void
*end, u16 opt);
10
~MEMiFrmHeapHead();
11
12
public
:
13
static
MEMiFrmHeapHead *create(
void
*startAddress,
size_t
size, u16 flag);
14
void
destroy();
15
16
void
*alloc(
size_t
size, s32 align);
17
// Freeing by block is invalid
18
// Freeing by flag is not implemented in Kinoko
19
// void free(u32 flag);
20
[[nodiscard]] u32 getAllocatableSize(s32 align)
const
;
21
22
void
*calcUsedEnd();
23
24
private
:
25
[[nodiscard]]
void
*allocFromHead(
size_t
size, s32 alignment);
26
[[nodiscard]]
void
*allocFromTail(
size_t
size, s32 alignment);
27
28
void
*m_headAllocator;
29
void
*m_tailAllocator;
30
31
static
constexpr
u32 FRM_HEAP_SIGNATURE = 0x46524d48;
// FRMH
32
};
33
34
}
// namespace Kinoko::Abstract::Memory
abstract
memory
FrameHeap.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0