54 lines
1.2 KiB
C
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);
|