From b03f17dd8d5510b852d69918f7fdcc07b0d649e1 Mon Sep 17 00:00:00 2001 From: avanspector Date: Sun, 25 Feb 2024 02:59:45 +0100 Subject: add haiku to base:runtime and core:c/libc --- base/runtime/os_specific_haiku.odin | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 base/runtime/os_specific_haiku.odin (limited to 'base') diff --git a/base/runtime/os_specific_haiku.odin b/base/runtime/os_specific_haiku.odin new file mode 100644 index 000000000..0cd3938e5 --- /dev/null +++ b/base/runtime/os_specific_haiku.odin @@ -0,0 +1,21 @@ +//+build haiku +//+private +package runtime + +foreign import libc "system:c" + +foreign libc { + @(link_name="write") + _unix_write :: proc(fd: i32, buf: rawptr, size: int) -> int --- + + _errnop :: proc() -> ^i32 --- +} + +_stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) { + ret := _unix_write(2, raw_data(data), len(data)) + if ret < len(data) { + err := __error() + return int(ret), _OS_Errno(err^ if err != nil else 0) + } + return int(ret), 0 +} -- cgit v1.2.3