diff options
Diffstat (limited to 'src/io')
-rw-r--r-- | src/io/io_darwin.zig | 16 | ||||
-rw-r--r-- | src/io/io_linux.zig | 60 |
2 files changed, 40 insertions, 36 deletions
diff --git a/src/io/io_darwin.zig b/src/io/io_darwin.zig index 902ae2ae4..9ebc6f4d6 100644 --- a/src/io/io_darwin.zig +++ b/src/io/io_darwin.zig @@ -245,7 +245,7 @@ const system = darwin; pub fn asError(err: anytype) Errno { const int = if (@typeInfo(@TypeOf(err)) == .Enum) - @enumToInt(err) + @intFromEnum(err) else err; @@ -274,7 +274,11 @@ pub const darwin = struct { pub extern "c" fn @"openat$NOCANCEL"(fd: c.fd_t, path: [*:0]const u8, oflag: c_uint, ...) c_int; pub extern "c" fn @"read$NOCANCEL"(fd: c.fd_t, buf: [*]u8, nbyte: usize) isize; pub extern "c" fn @"pread$NOCANCEL"(fd: c.fd_t, buf: [*]u8, nbyte: usize, offset: c.off_t) isize; + pub extern "c" fn @"preadv$NOCANCEL"(fd: c.fd_t, uf: [*]std.os.iovec, count: i32, offset: c.off_t) isize; + pub extern "c" fn @"readv$NOCANCEL"(fd: c.fd_t, uf: [*]std.os.iovec, count: i32) isize; pub extern "c" fn @"write$NOCANCEL"(fd: c.fd_t, buf: [*]const u8, nbyte: usize) isize; + pub extern "c" fn @"writev$NOCANCEL"(fd: c.fd_t, buf: [*]std.os.iovec_const, count: i32) isize; + pub extern "c" fn @"pwritev$NOCANCEL"(fd: c.fd_t, buf: [*]std.os.iovec_const, count: i32, offset: c.off_t) isize; }; pub const OpenError = error{ /// In WASI, this error may occur when the file descriptor does @@ -772,7 +776,7 @@ fn flush(self: *IO, comptime _: @Type(.EnumLiteral)) !void { continue; } - const completion = @intToPtr(*Completion, kevent.udata); + const completion = @ptrFromInt(*Completion, kevent.udata); completion.next = null; self.completed.push(completion); } @@ -837,7 +841,7 @@ fn flush_io(_: *IO, events: []Kevent64, io_pending_top: *?*Completion) usize { .flags = @intCast(u16, event_info[2]), .fflags = 0, .data = 0, - .udata = @ptrToInt(completion), + .udata = @intFromPtr(completion), }; } @@ -995,7 +999,7 @@ fn submitWithIncrementPending( // Complete the Completion return callback( - @intToPtr(Context, @ptrToInt(_completion.context)), + @ptrFromInt(Context, @intFromPtr(_completion.context)), _completion, result, ); @@ -1203,7 +1207,7 @@ pub fn connect( const rc = system.getsockopt(op.socket, os.SOL.SOCKET, os.SO.ERROR, @ptrCast([*]u8, &err_code), &size); assert(size == 4); break :brk switch (darwin.getErrno(rc)) { - .SUCCESS => switch (@intToEnum(os.E, err_code)) { + .SUCCESS => switch (@enumFromInt(os.E, err_code)) { .SUCCESS => {}, .ACCES => error.PermissionDenied, .PERM => error.PermissionDenied, @@ -1351,7 +1355,7 @@ pub fn read( op.buf, op.len, ); - return switch (@enumToInt(os.errno(rc))) { + return switch (@intFromEnum(os.errno(rc))) { 0 => @intCast(usize, rc), os.EINTR => continue, os.EAGAIN => error.WouldBlock, diff --git a/src/io/io_linux.zig b/src/io/io_linux.zig index 10e1ede0c..7603eabfd 100644 --- a/src/io/io_linux.zig +++ b/src/io/io_linux.zig @@ -428,7 +428,7 @@ pub const errno_map: [135]Errno = brk: { }; pub fn asError(err: anytype) Errno { const errnum = if (@typeInfo(@TypeOf(err)) == .Enum) - @enumToInt(err) + @intFromEnum(err) else err; return switch (errnum) { @@ -463,7 +463,7 @@ has_queued: usize = 0, wakeup_completion: Completion = undefined, fn queueForWakeup(this: *@This(), comptime Type: type, ctx: Type, comptime cb: anytype) void { - @memset(&this.eventfd_buf, 0, this.eventfd_buf.len); + @memset(&this.eventfd_buf, 0); const Callback = struct { pub fn callback(that: Type, completion: *Completion, _: ReadError!usize) void { var io = @fieldParentPtr(IO, "wakeup_completion", completion); @@ -640,7 +640,7 @@ fn flush(self: *IO, wait_nr: u32, timeouts: *usize, etime: *bool) !void { fn flush_completions(self: *IO, wait_nr: u32, timeouts: *usize, etime: *bool) !void { var cqes: [256]std.os.linux.io_uring_cqe = undefined; var completion_byttes = std.mem.asBytes(&cqes); - @memset(completion_byttes, 0, completion_byttes.len); + @memset(completion_byttes[0..completion_byttes.len], 0); var wait_remaining = wait_nr; while (true) { // Guard against waiting indefinitely (if there are too few requests inflight), @@ -660,7 +660,7 @@ fn flush_completions(self: *IO, wait_nr: u32, timeouts: *usize, etime: *bool) !v if (-cqe.res == os.ETIME) etime.* = true; continue; } - const completion = @intToPtr(*Completion, @intCast(usize, cqe.user_data)); + const completion = @ptrFromInt(*Completion, @intCast(usize, cqe.user_data)); completion.result = cqe.res; // We do not run the completion here (instead appending to a linked list) to avoid: // * recursion through `flush_submissions()` and `flush_completions()`, @@ -780,7 +780,7 @@ pub const Completion = struct { ); }, } - sqe.user_data = @ptrToInt(completion); + sqe.user_data = @intFromPtr(completion); } fn complete(completion: *Completion) void { @@ -1107,9 +1107,9 @@ pub fn accept( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const AcceptError!os.socket_t, @ptrToInt(res)).*, + @ptrFromInt(*const AcceptError!os.socket_t, @intFromPtr(res)).*, ); } }.wrapper, @@ -1149,9 +1149,9 @@ pub fn close( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const CloseError!void, @ptrToInt(res)).*, + @ptrFromInt(*const CloseError!void, @intFromPtr(res)).*, ); } }.wrapper, @@ -1206,9 +1206,9 @@ pub fn connect( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const ConnectError!void, @ptrToInt(res)).*, + @ptrFromInt(*const ConnectError!void, @intFromPtr(res)).*, ); } }.wrapper, @@ -1257,9 +1257,9 @@ pub fn fsync( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const FsyncError!void, @ptrToInt(res)).*, + @ptrFromInt(*const FsyncError!void, @intFromPtr(res)).*, ); } }.wrapper, @@ -1303,9 +1303,9 @@ pub fn read( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const ReadError!usize, @ptrToInt(res)).*, + @ptrFromInt(*const ReadError!usize, @intFromPtr(res)).*, ); } }.wrapper, @@ -1355,9 +1355,9 @@ pub fn recv( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const RecvError!usize, @ptrToInt(res)).*, + @ptrFromInt(*const RecvError!usize, @intFromPtr(res)).*, ); } }.wrapper, @@ -1390,9 +1390,9 @@ pub fn readev( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const RecvError!usize, @ptrToInt(res)).*, + @ptrFromInt(*const RecvError!usize, @intFromPtr(res)).*, ); } }.wrapper, @@ -1446,9 +1446,9 @@ pub fn send( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const SendError!usize, @ptrToInt(res)).*, + @ptrFromInt(*const SendError!usize, @intFromPtr(res)).*, ); } }.wrapper, @@ -1538,9 +1538,9 @@ pub fn open( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const OpenError!linux.fd_t, @ptrToInt(res)).*, + @ptrFromInt(*const OpenError!linux.fd_t, @intFromPtr(res)).*, ); } }.wrapper, @@ -1575,9 +1575,9 @@ pub fn writev( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const SendError!usize, @ptrToInt(res)).*, + @ptrFromInt(*const SendError!usize, @intFromPtr(res)).*, ); } }.wrapper, @@ -1613,9 +1613,9 @@ pub fn timeout( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const TimeoutError!void, @ptrToInt(res)).*, + @ptrFromInt(*const TimeoutError!void, @intFromPtr(res)).*, ); } }.wrapper, @@ -1662,9 +1662,9 @@ pub fn write( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @intToPtr(Context, @ptrToInt(ctx)), + @ptrFromInt(Context, @intFromPtr(ctx)), comp, - @intToPtr(*const WriteError!usize, @ptrToInt(res)).*, + @ptrFromInt(*const WriteError!usize, @intFromPtr(res)).*, ); } }.wrapper, @@ -1712,7 +1712,7 @@ const Syscall = struct { .NOMEM => return error.SystemResources, .PROTONOSUPPORT => return error.ProtocolNotSupported, .PROTOTYPE => return error.SocketTypeNotSupported, - else => |err| return asError(@enumToInt(err)), + else => |err| return asError(@intFromEnum(err)), }; } }; |