Files
Odin/core/os/os_essence.odin
2022-09-22 12:12:57 +01:00

56 lines
1.1 KiB
Odin

package os
import "core:sys/es"
Handle :: distinct int;
Errno :: distinct int;
ERROR_NONE :: (Errno) (es.SUCCESS);
O_RDONLY :: 0x1;
O_WRONLY :: 0x2;
O_CREATE :: 0x4;
O_TRUNC :: 0x8;
stderr : Handle = 0;
current_thread_id :: proc "contextless" () -> int {
return (int) (es.ThreadGetID(es.CURRENT_THREAD));
}
heap_alloc :: proc(size: int, zero_memory := true) -> rawptr {
return es.HeapAllocate(size, zero_memory);
}
heap_free :: proc(ptr: rawptr) {
es.HeapFree(ptr);
}
heap_resize :: proc(ptr: rawptr, new_size: int) -> rawptr {
return es.HeapReallocate(ptr, new_size, false);
}
open :: proc(path: string, flags: int = O_RDONLY, mode: int = 0) -> (Handle, Errno) {
return (Handle) (0), (Errno) (1);
}
close :: proc(fd: Handle) -> Errno {
return (Errno) (1);
}
file_size :: proc(fd: Handle) -> (i64, Errno) {
return (i64) (0), (Errno) (1);
}
read :: proc(fd: Handle, data: []byte) -> (int, Errno) {
return (int) (0), (Errno) (1);
}
write :: proc(fd: Handle, data: []u8) -> (int, Errno) {
return (int) (0), (Errno) (1);
}
seek :: proc(fd: Handle, offset: i64, whence: int) -> (i64, Errno) {
return (i64) (0), (Errno) (1);
}