authorgravatar for ypsvlq@gmail.comElaine Gibson <ypsvlq@gmail.com> 2026-04-14 12:01:14+01:00
committergravatar for ypsvlq@gmail.comElaine Gibson <ypsvlq@gmail.com> 2026-04-14 12:04:41+01:00
logc94ea1ea2da328ec7dcbd79f376d4283dddb79b7
tree03ef2c59bbf7511840eab7895257b05559fc166e
parentf0666586f609ff45457d9ee776cfd0604e8b5906

std.Io.Threaded: haiku fixes


1 files changed, 11 insertions(+), 5 deletions(-)

lib/std/Io/Threaded.zig+11-5
...@@ -5345,7 +5345,7 @@ fn dirOpenDirHaiku(...@@ -5345,7 +5345,7 @@ fn dirOpenDirHaiku(
5345 .NOMEM => return error.SystemResources,5345 .NOMEM => return error.SystemResources,
5346 .NOTDIR => return error.NotDir,5346 .NOTDIR => return error.NotDir,
5347 .PERM => return error.PermissionDenied,5347 .PERM => return error.PermissionDenied,
5348 .BUSY => return error.DeviceBusy,5348 .BUSY => |err| return errnoBug(err),
5349 else => |err| return posix.unexpectedErrno(err),5349 else => |err| return posix.unexpectedErrno(err),
5350 }5350 }
5351 },5351 },
...@@ -9812,7 +9812,10 @@ fn fileReadPositionalPosix(file: File, data: []const []u8, offset: u64) File.Rea...@@ -9812,7 +9812,10 @@ fn fileReadPositionalPosix(file: File, data: []const []u8, offset: u64) File.Rea
9812 if (have_preadv) {9812 if (have_preadv) {
9813 const syscall: Syscall = try .start();9813 const syscall: Syscall = try .start();
9814 while (true) {9814 while (true) {
9815 const rc = preadv_sym(file.handle, dest.ptr, @intCast(dest.len), @bitCast(offset));9815 const rc = if (native_os == .haiku)
9816 posix.system.readv_pos(file.handle, @bitCast(offset), dest.ptr, @intCast(dest.len))
9817 else
9818 preadv_sym(file.handle, dest.ptr, @intCast(dest.len), @bitCast(offset));
9816 switch (posix.errno(rc)) {9819 switch (posix.errno(rc)) {
9817 .SUCCESS => {9820 .SUCCESS => {
9818 syscall.finish();9821 syscall.finish();
...@@ -9846,7 +9849,7 @@ fn fileReadPositionalPosix(file: File, data: []const []u8, offset: u64) File.Rea...@@ -9846,7 +9849,7 @@ fn fileReadPositionalPosix(file: File, data: []const []u8, offset: u64) File.Rea
98469849
9847 const syscall: Syscall = try .start();9850 const syscall: Syscall = try .start();
9848 while (true) {9851 while (true) {
9849 const rc = posix.pread(file.handle, dest[0].ptr, @intCast(dest[0].len), @bitCast(offset));9852 const rc = pread_sym(file.handle, dest[0].base, @intCast(dest[0].len), @bitCast(offset));
9850 switch (posix.errno(rc)) {9853 switch (posix.errno(rc)) {
9851 .SUCCESS => {9854 .SUCCESS => {
9852 syscall.finish();9855 syscall.finish();
...@@ -10550,7 +10553,10 @@ fn fileWritePositional(...@@ -10550,7 +10553,10 @@ fn fileWritePositional(
1055010553
10551 const syscall: Syscall = try .start();10554 const syscall: Syscall = try .start();
10552 while (true) {10555 while (true) {
10553 const rc = pwritev_sym(file.handle, &iovecs, @intCast(iovlen), @bitCast(offset));10556 const rc = if (native_os == .haiku)
10557 posix.system.writev_pos(file.handle, @bitCast(offset), &iovecs, @intCast(iovlen))
10558 else
10559 pwritev_sym(file.handle, &iovecs, @intCast(iovlen), @bitCast(offset));
10554 switch (posix.errno(rc)) {10560 switch (posix.errno(rc)) {
10555 .SUCCESS => {10561 .SUCCESS => {
10556 syscall.finish();10562 syscall.finish();
...@@ -14063,7 +14069,7 @@ pub fn posixSocketModeProtocol(family: posix.sa_family_t, mode: net.Socket.Mode,...@@ -14063,7 +14069,7 @@ pub fn posixSocketModeProtocol(family: posix.sa_family_t, mode: net.Socket.Mode,
14063 .dgram => posix.SOCK.DGRAM,14069 .dgram => posix.SOCK.DGRAM,
14064 .seqpacket => posix.SOCK.SEQPACKET,14070 .seqpacket => posix.SOCK.SEQPACKET,
14065 .raw => posix.SOCK.RAW,14071 .raw => posix.SOCK.RAW,
14066 .rdm => posix.SOCK.RDM,14072 .rdm => if (@hasDecl(posix.SOCK, "RDM")) posix.SOCK.RDM else return error.OptionUnsupported,
14067 },14073 },
14068 if (protocol) |p| @intFromEnum(p) else if (is_windows) switch (family) {14074 if (protocol) |p| @intFromEnum(p) else if (is_windows) switch (family) {
14069 posix.AF.UNIX => switch (mode) {14075 posix.AF.UNIX => switch (mode) {