34 lines
705 B
C
34 lines
705 B
C
////////////////////////////////
|
|
//~ Shared state
|
|
|
|
#define W32_MaxOnExitFuncs 1024
|
|
|
|
Struct(W32_SharedEntryCtx)
|
|
{
|
|
SYSTEM_INFO info;
|
|
u32 main_thread_id;
|
|
Atomic32 shutdown;
|
|
|
|
wchar_t cmdline_args_wstr[8192];
|
|
|
|
//- Application control flow
|
|
Atomic32 panicking;
|
|
wchar_t panic_wstr[4096];
|
|
HANDLE panic_event;
|
|
HANDLE startup_end_event;
|
|
HANDLE exit_begin_event;
|
|
HANDLE exit_end_event;
|
|
|
|
//- Exit funcs
|
|
Atomic32 num_exit_funcs;
|
|
ExitFunc *exit_funcs[W32_MaxOnExitFuncs];
|
|
};
|
|
|
|
extern W32_SharedEntryCtx W32_shared_entry_ctx;
|
|
|
|
////////////////////////////////
|
|
//~ Startup / shutdown jobs
|
|
|
|
JobDecl(W32_AppStartupJob, EmptySig);
|
|
JobDecl(W32_AppShutdownJob, EmptySig);
|