gutter_runner/types.odin
sergeypdev f87fae7a25 Squashed 'libs/physfs/' content from commit 3c22b323
git-subtree-dir: libs/physfs
git-subtree-split: 3c22b32319315fa4d25308767e719331dd539ced
2025-04-25 11:40:28 +04:00

122 lines
2.3 KiB
Odin

package physfs
import "core:c"
uint8 :: c.uchar
sint8 :: c.char
uint16 :: c.ushort
sint16 :: c.short
uint32 :: c.uint
sint32 :: c.int
uint64 :: c.ulonglong
sint64 :: c.longlong
File :: struct {
opaque: rawptr,
}
ArchiveInfo :: struct {
extension, description, author, url: cstring,
supportsSymlinks: c.int,
}
Version :: struct {
major, minor, patch: uint8,
}
AndroidInit :: struct {
jnienv, ctx: rawptr,
}
Allocator :: struct {
Init: proc "c" () -> c.int,
Deinit: proc "c" (),
Malloc: proc "c" (uint64) -> rawptr,
Realloc: proc "c" (rawptr, uint64) -> rawptr,
Free: proc "c" (rawptr),
}
StringCallback :: proc "c" (rawptr, cstring)
EnumFilesCallback :: proc "c" (rawptr, cstring, cstring)
EnumerateCallbackResult :: enum c.int {
ERROR = -1,
STOP = 0,
OK = 1,
}
EnumerateCallback :: proc "c" (rawptr, cstring, cstring) -> EnumerateCallbackResult
FileType :: enum c.int {
REGULAR,
DIRECTORY,
SYMLINK,
OTHER,
}
Stat :: struct {
filesize, modtime, createtime, accesstime: sint64,
filetype: FileType,
readonly: c.int,
}
Io :: struct {
version: uint32,
opaque: rawptr,
read: proc "c" (^Io, rawptr, uint64) -> sint64,
write: proc "c" (^Io, rawptr, uint64) -> sint64,
seek: proc "c" (^Io, uint64) -> c.int,
tell: proc "c" (^Io) -> sint64,
length: proc "c" (^Io) -> sint64,
duplicate: proc "c" (^Io) -> ^Io,
flush: proc "c" (^Io) -> c.int,
destroy: proc "c" (^Io),
}
ErrorCode :: enum c.int {
OK,
OTHER_ERROR,
OUT_OF_MEMORY,
NOT_INITIALIZED,
IS_INITIALIZED,
ARGV0_IS_NULL,
UNSUPPORTED,
PAST_EOF,
FILES_STILL_OPEN,
INVALID_ARGUMENT,
NOT_MOUNTED,
NOT_FOUND,
SYMLINK_FORBIDDEN,
NO_WRITE_DIR,
OPEN_FOR_READING,
OPEN_FOR_WRITING,
NOT_A_FILE,
READ_ONLY,
CORRUPT,
SYMLINK_LOOP,
IO,
PERMISSION,
NO_SPACE,
BAD_FILENAME,
BUSY,
DIR_NOT_EMPTY,
OS_ERROR,
DUPLICATE,
BAD_PASSWORD,
APP_CALLBACK,
}
Archiver :: struct {
version: uint32,
info: ArchiveInfo,
openArchive: proc "c" (^Io, cstring, c.int, ^c.int) -> rawptr,
enumerate: proc "c" (rawptr, cstring, EnumerateCallback, cstring, rawptr) -> EnumerateCallbackResult,
openRead: proc "c" (rawptr, cstring) -> ^Io,
openWrite: proc "c" (rawptr, cstring) -> ^Io,
openAppend: proc "c" (rawptr, cstring) -> ^Io,
remove: proc "c" (rawptr, cstring) -> c.int,
mkdir: proc "c" (rawptr, cstring) -> c.int,
stat: proc "c" (rawptr, cstring, ^Stat) -> c.int,
closeArchive: proc "c" (rawptr),
}