fn deviceIoControl( ev: *Evented, sync: *CancelRegion.Sync, o: Io.Operation.DeviceIoControl, ) Io.Cancelable!i32
fn deviceIoControl( ev: *Evented, sync: *CancelRegion.Sync, o: Io.Operation.DeviceIoControl, ) Io.Cancelable!i32 { _ = ev; while (true) { try sync.cancel_region.await(.nothing); const rc = linux.ioctl(o.file.handle, @bitCast(o.code), @intFromPtr(o.arg)); switch (linux.errno(rc)) { .SUCCESS => return @bitCast(@as(u32, @truncate(rc))), .INTR => {}, else => |err| return -@as(i32, @backingInt(err)), } } }