summaryrefslogtreecommitdiff
path: root/memory.cpp
blob: 6aebdc3d9e8817161950cd1689d2453448b8367e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static void
InitMemoryTable(global_memory *GlobalMemory, memory *Memory, uint64 Size, memory_table_list TableName, char *Name) {
    memory_table *Table = &Memory->Slot[TableName];
    Table->Name = Name;
    Table->Address = (uint64 *)GlobalMemory->Address + GlobalMemory->CurrentPosition;
    Table->Size = Size;
    GlobalMemory->CurrentPosition += Size;
}

static void*
AllocateMemory(memory *Memory, uint64 Size, memory_table_list TableName) {
    void *Address;
    memory_table *Table = &Memory->Slot[TableName];
    Assert(Table->CurrentPosition + Size < Table->Size);
    Address = (uint64 *)Table->Address + Table->CurrentPosition;
    Table->CurrentPosition += Size;
    return Address;
}