summaryrefslogtreecommitdiff
path: root/memory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'memory.cpp')
-rw-r--r--memory.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/memory.cpp b/memory.cpp
new file mode 100644
index 0000000..73d1fb4
--- /dev/null
+++ b/memory.cpp
@@ -0,0 +1,18 @@
+internal 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;
+}
+
+internal 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;
+}