diff options
Diffstat (limited to 'prb_windows.h')
-rw-r--r-- | prb_windows.h | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/prb_windows.h b/prb_windows.h deleted file mode 100644 index 9514c75..0000000 --- a/prb_windows.h +++ /dev/null @@ -1,86 +0,0 @@ -void *sys_alloc(u64 length) -{ - assert(length); - void *result = VirtualAlloc(0, length, MEM_COMMIT|MEM_RESERVE, PAGE_READWRITE); - return result; -} - -void sys_free(void *memory, u64 length) -{ - assert(memory); - assert(length); - assert(VirtualFree(memory, 0, MEM_RELEASE)); -} - -void die(const char *error_string, ...) -{ - va_list args; - va_start(args, error_string); - printf("error: "); - vprintf(error_string, args); - printf("\n"); - va_end(args); - exit(1); -} - -u64 sys_read_file(arena_t *arena, char **buffer, const char *filename) -{ - *buffer = 0; - - HANDLE file = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, - 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) { - printf("error: failed to open file \"%s\"\n", filename); - return 0; - } - - LARGE_INTEGER lisize; - if (!GetFileSizeEx(file, &lisize)) { - printf("error: failed to get size of the file \"%s\"", filename); - CloseHandle(file); - return 0; - } - - u64 size = lisize.QuadPart; - if (!size) { - printf("error: file \"%s\" is empty", filename); - CloseHandle(file); - return 0; - } - - *buffer = push_arena(arena, size + 1); - - DWORD bytes_read; - if (!ReadFile(file, *buffer, size, &bytes_read, 0)) { - CloseHandle(file); - pop_arena(arena, size); - printf("error: failed to read file \"%s\", bytes read: %lu\n", filename, bytes_read); - return 0; - } - CloseHandle(file); - - *(*buffer + size) = 0; - - return size + 1; -} - -char *sys_getbindir(arena_t *arena) -{ - char path[MAX_PATH]; - u32 len = GetModuleFileName(0, path, MAX_PATH); - if (!len) { - printf("error: failed to get file path\n"); - return 0; - } - - char *dir = strrchr(path, '\\'); - assert(dir); - assert(dir > path); - - len = dir - path; - dir = push_arena(arena, len + 1); - prb_memmove(dir, path, len); - dir[len] = 0; - - return dir; -} |