authorgravatar for git@l4.pmLuna <git@l4.pm> 2020-06-29 16:23:58-03:00
committergravatar for git@l4.pmLuna <git@l4.pm> 2020-06-29 16:23:58-03:00
log3f5b2d6c51b983ae66ad20124924378c2291cd67
treec6f0a5be3dce342fa1d2b1697848132ad0a17788
parentf47c6d3c6b5325ae682e50950765d352b2929126

std.os: map EBADF to errors on WASI read/write syscalls


1 files changed, 8 insertions(+), 8 deletions(-)

lib/std/os.zig+8-8
......@@ -329,7 +329,7 @@ pub fn read(fd: fd_t, buf: []u8) ReadError!usize {
329329 wasi.EINVAL => unreachable,
330330 wasi.EFAULT => unreachable,
331331 wasi.EAGAIN => unreachable,
332 wasi.EBADF => unreachable, // Always a race condition.
332 wasi.EBADF => return error.NotOpenForReading, // Can be a race condition.
333333 wasi.EIO => return error.InputOutput,
334334 wasi.EISDIR => return error.IsDir,
335335 wasi.ENOBUFS => return error.SystemResources,
......@@ -398,7 +398,7 @@ pub fn readv(fd: fd_t, iov: []const iovec) ReadError!usize {
398398 wasi.EINVAL => unreachable,
399399 wasi.EFAULT => unreachable,
400400 wasi.EAGAIN => unreachable, // currently not support in WASI
401 wasi.EBADF => unreachable, // always a race condition
401 wasi.EBADF => return error.NotOpenForReading, // can be a race condition
402402 wasi.EIO => return error.InputOutput,
403403 wasi.EISDIR => return error.IsDir,
404404 wasi.ENOBUFS => return error.SystemResources,
......@@ -458,7 +458,7 @@ pub fn pread(fd: fd_t, buf: []u8, offset: u64) PReadError!usize {
458458 wasi.EINVAL => unreachable,
459459 wasi.EFAULT => unreachable,
460460 wasi.EAGAIN => unreachable,
461 wasi.EBADF => unreachable, // Always a race condition.
461 wasi.EBADF => return error.NotOpenForReading, // Can be a race condition.
462462 wasi.EIO => return error.InputOutput,
463463 wasi.EISDIR => return error.IsDir,
464464 wasi.ENOBUFS => return error.SystemResources,
......@@ -597,7 +597,7 @@ pub fn preadv(fd: fd_t, iov: []const iovec, offset: u64) PReadError!usize {
597597 wasi.EINVAL => unreachable,
598598 wasi.EFAULT => unreachable,
599599 wasi.EAGAIN => unreachable,
600 wasi.EBADF => unreachable, // always a race condition
600 wasi.EBADF => return error.NotOpenForReading, // can be a race condition
601601 wasi.EIO => return error.InputOutput,
602602 wasi.EISDIR => return error.IsDir,
603603 wasi.ENOBUFS => return error.SystemResources,
......@@ -691,7 +691,7 @@ pub fn write(fd: fd_t, bytes: []const u8) WriteError!usize {
691691 wasi.EINVAL => unreachable,
692692 wasi.EFAULT => unreachable,
693693 wasi.EAGAIN => unreachable,
694 wasi.EBADF => unreachable, // Always a race condition.
694 wasi.EBADF => return error.NotOpenForWriting, // can be a race condition.
695695 wasi.EDESTADDRREQ => unreachable, // `connect` was never called.
696696 wasi.EDQUOT => return error.DiskQuota,
697697 wasi.EFBIG => return error.FileTooBig,
......@@ -768,7 +768,7 @@ pub fn writev(fd: fd_t, iov: []const iovec_const) WriteError!usize {
768768 wasi.EINVAL => unreachable,
769769 wasi.EFAULT => unreachable,
770770 wasi.EAGAIN => unreachable,
771 wasi.EBADF => unreachable, // Always a race condition.
771 wasi.EBADF => return error.NotOpenForWriting, // can be a race condition.
772772 wasi.EDESTADDRREQ => unreachable, // `connect` was never called.
773773 wasi.EDQUOT => return error.DiskQuota,
774774 wasi.EFBIG => return error.FileTooBig,
......@@ -847,7 +847,7 @@ pub fn pwrite(fd: fd_t, bytes: []const u8, offset: u64) PWriteError!usize {
847847 wasi.EINVAL => unreachable,
848848 wasi.EFAULT => unreachable,
849849 wasi.EAGAIN => unreachable,
850 wasi.EBADF => unreachable, // Always a race condition.
850 wasi.EBADF => return error.NotOpenForWriting, // can be a race condition.
851851 wasi.EDESTADDRREQ => unreachable, // `connect` was never called.
852852 wasi.EDQUOT => return error.DiskQuota,
853853 wasi.EFBIG => return error.FileTooBig,
......@@ -940,7 +940,7 @@ pub fn pwritev(fd: fd_t, iov: []const iovec_const, offset: u64) PWriteError!usiz
940940 wasi.EINVAL => unreachable,
941941 wasi.EFAULT => unreachable,
942942 wasi.EAGAIN => unreachable,
943 wasi.EBADF => unreachable, // Always a race condition.
943 wasi.EBADF => return error.NotOpenForWriting, // Can be a race condition.
944944 wasi.EDESTADDRREQ => unreachable, // `connect` was never called.
945945 wasi.EDQUOT => return error.DiskQuota,
946946 wasi.EFBIG => return error.FileTooBig,