Musa-Cpp-Lib-V2/lib/OS/Base_Entry_Point.cpp

52 lines
1.6 KiB
C++

internal void Bootstrap_Main_Thread_Context () {
// 0. Setup general purpose allocator
GPAllocator_Initialize_Allocation_Tracker();
// 1. Setup arena table
initialize_arena_table();
// 2. Setup thread local context
Arena* arena = next_arena(Arena_Reserve::Size_64G);
thread_local_context = New<Thread_Context>(get_allocator(arena));
thread_local_context->temp = next_arena(Arena_Reserve::Size_64G);
thread_local_context->arena = arena;
thread_local_context->allocator = get_allocator(arena);
thread_local_context->thread_idx = 0;
thread_local_context->thread_name = "Main Thread";
// thread_local_context->logger = init_logger();
}
// #include "lib/Base/Arena_Array.h"
void run_arena_array_tests () {
{ push_arena(thread_local_context->temp);
push_alignment(thread_local_context->temp, 1);
auto_reset(thread_local_context->temp);
auto something = New<Thread_Context>();
auto something2 = New<Array<s64>>();
auto something3 = internal_alloc(5000);
}
{ push_allocator(GPAllocator());
auto something = New<Thread_Context>();
auto something2 = New<Array<s64>>();
}
// { auto na = arena_array_new<s64>(64000, Arena_Reserve::Size_64G);
// array_add(...)
// }
}
internal void Main_Entry_Point (int argc, WCHAR **argv) {
run_arena_array_tests();
Worker_Info* info = (Worker_Info*)GPAllocator_New(sizeof(Worker_Info), 64);
debug_break();
printf("sizeof(Worker_Info): %zd\n", sizeof(Thread));
printf("sizeof(Worker_Info): %zd\n", sizeof(Worker_Info));
// #TODO:
// [ ] Launch second thread
// [ ] Setup Mouse and Keyboard Inputs
// OS_Create_Window();
}