power_play/src/meta/meta_os/meta_os.h
2025-08-24 18:08:41 -05:00

54 lines
1.2 KiB
C

////////////////////////////////
//~ File types
typedef i32 OS_FileFlag; enum
{
OS_FileFlag_None = 0,
OS_FileFlag_Read = (1 << 0),
OS_FileFlag_Write = (1 << 1),
OS_FileFlag_Create = (1 << 2),
OS_FileFlag_NoWait = (1 << 3)
};
Struct(OS_File)
{
u64 handle;
};
////////////////////////////////
//~ Command types
Struct(OS_CommandResult)
{
i32 code;
String output;
};
////////////////////////////////
//~ @hookdecl Startup hooks
void OS_Startup(void);
////////////////////////////////
//~ @hookdecl File system operations
OS_File OS_OpenFile(String path, OS_FileFlag flags);
void OS_CloseFile(OS_File file);
String OS_ReadEntireFile(Arena *arena, OS_File file);
void OS_ClearWriteFile(OS_File file, String data);
void OS_DirContentsFromFullPath(Arena *arena, StringList *list, String path);
String OS_GetFullPath(Arena *arena, String path);
b32 OS_FileOrDirExists(String path);
b32 OS_FileExists(String path);
b32 OS_DirExists(String path);
////////////////////////////////
//~ @hookdecl Directory helpers
void OS_Mkdir(String path);
////////////////////////////////
//~ @hookdecl Shell operations
OS_CommandResult OS_RunCommand(Arena *arena, String cmd);