diff options
Diffstat (limited to 'vendor/rustix/src/backend/libc/io')
-rw-r--r-- | vendor/rustix/src/backend/libc/io/errno.rs | 1052 | ||||
-rw-r--r-- | vendor/rustix/src/backend/libc/io/mod.rs | 6 | ||||
-rw-r--r-- | vendor/rustix/src/backend/libc/io/syscalls.rs | 340 | ||||
-rw-r--r-- | vendor/rustix/src/backend/libc/io/types.rs | 65 | ||||
-rw-r--r-- | vendor/rustix/src/backend/libc/io/windows_syscalls.rs | 30 |
5 files changed, 0 insertions, 1493 deletions
diff --git a/vendor/rustix/src/backend/libc/io/errno.rs b/vendor/rustix/src/backend/libc/io/errno.rs deleted file mode 100644 index 805ea67..0000000 --- a/vendor/rustix/src/backend/libc/io/errno.rs +++ /dev/null @@ -1,1052 +0,0 @@ -//! The `rustix` `Errno` type. -//! -//! This type holds an OS error code, which conceptually corresponds to an -//! `errno` value. - -use crate::backend::c; -use libc_errno::errno; - -/// `errno`—An error code. -/// -/// The error type for `rustix` APIs. This is similar to [`std::io::Error`], -/// but only holds an OS error code, and no extra error value. -/// -/// # References -/// - [POSIX] -/// - [Linux] -/// - [Winsock] -/// - [FreeBSD] -/// - [NetBSD] -/// - [OpenBSD] -/// - [DragonFly BSD] -/// - [illumos] -/// - [glibc] -/// -/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/errno.html -/// [Linux]: https://man7.org/linux/man-pages/man3/errno.3.html -/// [Winsock]: https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2 -/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?errno -/// [NetBSD]: https://man.netbsd.org/errno.2 -/// [OpenBSD]: https://man.openbsd.org/errno.2 -/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=errno§ion=2 -/// [illumos]: https://illumos.org/man/3C/errno -/// [glibc]: https://www.gnu.org/software/libc/manual/html_node/Error-Codes.html -/// [`std::io::Error`]: Result -#[repr(transparent)] -#[doc(alias = "errno")] -#[derive(Eq, PartialEq, Hash, Copy, Clone)] -pub struct Errno(pub(crate) c::c_int); - -impl Errno { - /// `EACCES` - #[doc(alias = "ACCES")] - pub const ACCESS: Self = Self(c::EACCES); - /// `EADDRINUSE` - pub const ADDRINUSE: Self = Self(c::EADDRINUSE); - /// `EADDRNOTAVAIL` - pub const ADDRNOTAVAIL: Self = Self(c::EADDRNOTAVAIL); - /// `EADV` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const ADV: Self = Self(c::EADV); - /// `EAFNOSUPPORT` - #[cfg(not(target_os = "l4re"))] - pub const AFNOSUPPORT: Self = Self(c::EAFNOSUPPORT); - /// `EAGAIN` - pub const AGAIN: Self = Self(c::EAGAIN); - /// `EALREADY` - #[cfg(not(target_os = "l4re"))] - pub const ALREADY: Self = Self(c::EALREADY); - /// `EAUTH` - #[cfg(bsd)] - pub const AUTH: Self = Self(c::EAUTH); - /// `EBADE` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const BADE: Self = Self(c::EBADE); - /// `EBADF` - pub const BADF: Self = Self(c::EBADF); - /// `EBADFD` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const BADFD: Self = Self(c::EBADFD); - /// `EBADMSG` - #[cfg(not(any(windows, target_os = "l4re")))] - pub const BADMSG: Self = Self(c::EBADMSG); - /// `EBADR` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const BADR: Self = Self(c::EBADR); - /// `EBADRPC` - #[cfg(bsd)] - pub const BADRPC: Self = Self(c::EBADRPC); - /// `EBADRQC` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const BADRQC: Self = Self(c::EBADRQC); - /// `EBADSLT` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const BADSLT: Self = Self(c::EBADSLT); - /// `EBFONT` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const BFONT: Self = Self(c::EBFONT); - /// `EBUSY` - #[cfg(not(windows))] - pub const BUSY: Self = Self(c::EBUSY); - /// `ECANCELED` - #[cfg(not(target_os = "l4re"))] - pub const CANCELED: Self = Self(c::ECANCELED); - /// `ECAPMODE` - #[cfg(target_os = "freebsd")] - pub const CAPMODE: Self = Self(c::ECAPMODE); - /// `ECHILD` - #[cfg(not(windows))] - pub const CHILD: Self = Self(c::ECHILD); - /// `ECHRNG` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const CHRNG: Self = Self(c::ECHRNG); - /// `ECOMM` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const COMM: Self = Self(c::ECOMM); - /// `ECONNABORTED` - pub const CONNABORTED: Self = Self(c::ECONNABORTED); - /// `ECONNREFUSED` - pub const CONNREFUSED: Self = Self(c::ECONNREFUSED); - /// `ECONNRESET` - pub const CONNRESET: Self = Self(c::ECONNRESET); - /// `EDEADLK` - #[cfg(not(windows))] - pub const DEADLK: Self = Self(c::EDEADLK); - /// `EDEADLOCK` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "android", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "vita", - target_os = "wasi", - )))] - pub const DEADLOCK: Self = Self(c::EDEADLOCK); - /// `EDESTADDRREQ` - #[cfg(not(target_os = "l4re"))] - pub const DESTADDRREQ: Self = Self(c::EDESTADDRREQ); - /// `EDISCON` - #[cfg(windows)] - pub const DISCON: Self = Self(c::EDISCON); - /// `EDOM` - #[cfg(not(windows))] - pub const DOM: Self = Self(c::EDOM); - /// `EDOOFUS` - #[cfg(freebsdlike)] - pub const DOOFUS: Self = Self(c::EDOOFUS); - /// `EDOTDOT` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const DOTDOT: Self = Self(c::EDOTDOT); - /// `EDQUOT` - pub const DQUOT: Self = Self(c::EDQUOT); - /// `EEXIST` - #[cfg(not(windows))] - pub const EXIST: Self = Self(c::EEXIST); - /// `EFAULT` - pub const FAULT: Self = Self(c::EFAULT); - /// `EFBIG` - #[cfg(not(windows))] - pub const FBIG: Self = Self(c::EFBIG); - /// `EFTYPE` - #[cfg(any(bsd, target_env = "newlib"))] - pub const FTYPE: Self = Self(c::EFTYPE); - /// `EHOSTDOWN` - #[cfg(not(any(target_os = "l4re", target_os = "wasi")))] - pub const HOSTDOWN: Self = Self(c::EHOSTDOWN); - /// `EHOSTUNREACH` - pub const HOSTUNREACH: Self = Self(c::EHOSTUNREACH); - /// `EHWPOISON` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "android", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "redox", - target_os = "vita", - target_os = "wasi", - )))] - pub const HWPOISON: Self = Self(c::EHWPOISON); - /// `EIDRM` - #[cfg(not(any(windows, target_os = "l4re")))] - pub const IDRM: Self = Self(c::EIDRM); - /// `EILSEQ` - #[cfg(not(any(windows, target_os = "l4re")))] - pub const ILSEQ: Self = Self(c::EILSEQ); - /// `EINPROGRESS` - #[cfg(not(target_os = "l4re"))] - pub const INPROGRESS: Self = Self(c::EINPROGRESS); - /// `EINTR` - /// - /// For a convenient way to retry system calls that exit with `INTR`, use - /// [`retry_on_intr`]. - /// - /// [`retry_on_intr`]: crate::io::retry_on_intr - pub const INTR: Self = Self(c::EINTR); - /// `EINVAL` - pub const INVAL: Self = Self(c::EINVAL); - /// `EINVALIDPROCTABLE` - #[cfg(windows)] - pub const INVALIDPROCTABLE: Self = Self(c::EINVALIDPROCTABLE); - /// `EINVALIDPROVIDER` - #[cfg(windows)] - pub const INVALIDPROVIDER: Self = Self(c::EINVALIDPROVIDER); - /// `EIO` - #[cfg(not(windows))] - pub const IO: Self = Self(c::EIO); - /// `EISCONN` - #[cfg(not(target_os = "l4re"))] - pub const ISCONN: Self = Self(c::EISCONN); - /// `EISDIR` - #[cfg(not(windows))] - pub const ISDIR: Self = Self(c::EISDIR); - /// `EISNAM` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const ISNAM: Self = Self(c::EISNAM); - /// `EKEYEXPIRED` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const KEYEXPIRED: Self = Self(c::EKEYEXPIRED); - /// `EKEYREJECTED` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const KEYREJECTED: Self = Self(c::EKEYREJECTED); - /// `EKEYREVOKED` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const KEYREVOKED: Self = Self(c::EKEYREVOKED); - /// `EL2HLT` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const L2HLT: Self = Self(c::EL2HLT); - /// `EL2NSYNC` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const L2NSYNC: Self = Self(c::EL2NSYNC); - /// `EL3HLT` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const L3HLT: Self = Self(c::EL3HLT); - /// `EL3RST` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const L3RST: Self = Self(c::EL3RST); - /// `ELIBACC` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const LIBACC: Self = Self(c::ELIBACC); - /// `ELIBBAD` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const LIBBAD: Self = Self(c::ELIBBAD); - /// `ELIBEXEC` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const LIBEXEC: Self = Self(c::ELIBEXEC); - /// `ELIBMAX` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const LIBMAX: Self = Self(c::ELIBMAX); - /// `ELIBSCN` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const LIBSCN: Self = Self(c::ELIBSCN); - /// `ELNRNG` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const LNRNG: Self = Self(c::ELNRNG); - /// `ELOOP` - pub const LOOP: Self = Self(c::ELOOP); - /// `EMEDIUMTYPE` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const MEDIUMTYPE: Self = Self(c::EMEDIUMTYPE); - /// `EMFILE` - pub const MFILE: Self = Self(c::EMFILE); - /// `EMLINK` - #[cfg(not(windows))] - pub const MLINK: Self = Self(c::EMLINK); - /// `EMSGSIZE` - #[cfg(not(target_os = "l4re"))] - pub const MSGSIZE: Self = Self(c::EMSGSIZE); - /// `EMULTIHOP` - #[cfg(not(any(windows, target_os = "l4re", target_os = "openbsd")))] - pub const MULTIHOP: Self = Self(c::EMULTIHOP); - /// `ENAMETOOLONG` - pub const NAMETOOLONG: Self = Self(c::ENAMETOOLONG); - /// `ENAVAIL` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const NAVAIL: Self = Self(c::ENAVAIL); - /// `ENEEDAUTH` - #[cfg(bsd)] - pub const NEEDAUTH: Self = Self(c::ENEEDAUTH); - /// `ENETDOWN` - pub const NETDOWN: Self = Self(c::ENETDOWN); - /// `ENETRESET` - #[cfg(not(target_os = "l4re"))] - pub const NETRESET: Self = Self(c::ENETRESET); - /// `ENETUNREACH` - pub const NETUNREACH: Self = Self(c::ENETUNREACH); - /// `ENFILE` - #[cfg(not(windows))] - pub const NFILE: Self = Self(c::ENFILE); - /// `ENOANO` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const NOANO: Self = Self(c::ENOANO); - /// `ENOATTR` - #[cfg(any(bsd, target_os = "haiku"))] - pub const NOATTR: Self = Self(c::ENOATTR); - /// `ENOBUFS` - #[cfg(not(target_os = "l4re"))] - pub const NOBUFS: Self = Self(c::ENOBUFS); - /// `ENOCSI` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const NOCSI: Self = Self(c::ENOCSI); - /// `ENODATA` - #[cfg(not(any( - freebsdlike, - windows, - target_os = "haiku", - target_os = "openbsd", - target_os = "wasi", - )))] - pub const NODATA: Self = Self(c::ENODATA); - /// `ENODEV` - #[cfg(not(windows))] - pub const NODEV: Self = Self(c::ENODEV); - /// `ENOENT` - #[cfg(not(windows))] - pub const NOENT: Self = Self(c::ENOENT); - /// `ENOEXEC` - #[cfg(not(windows))] - pub const NOEXEC: Self = Self(c::ENOEXEC); - /// `ENOKEY` - #[cfg(not(any( - solarish, - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const NOKEY: Self = Self(c::ENOKEY); - /// `ENOLCK` - #[cfg(not(any(windows, target_os = "l4re")))] - pub const NOLCK: Self = Self(c::ENOLCK); - /// `ENOLINK` - #[cfg(not(any(windows, target_os = "l4re", target_os = "openbsd")))] - pub const NOLINK: Self = Self(c::ENOLINK); - /// `ENOMEDIUM` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const NOMEDIUM: Self = Self(c::ENOMEDIUM); - /// `ENOMEM` - #[cfg(not(windows))] - pub const NOMEM: Self = Self(c::ENOMEM); - /// `ENOMORE` - #[cfg(windows)] - pub const NOMORE: Self = Self(c::ENOMORE); - /// `ENOMSG` - #[cfg(not(any(windows, target_os = "l4re")))] - pub const NOMSG: Self = Self(c::ENOMSG); - /// `ENONET` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const NONET: Self = Self(c::ENONET); - /// `ENOPKG` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const NOPKG: Self = Self(c::ENOPKG); - /// `ENOPROTOOPT` - #[cfg(not(target_os = "l4re"))] - pub const NOPROTOOPT: Self = Self(c::ENOPROTOOPT); - /// `ENOSPC` - #[cfg(not(windows))] - pub const NOSPC: Self = Self(c::ENOSPC); - /// `ENOSR` - #[cfg(not(any( - freebsdlike, - windows, - target_os = "haiku", - target_os = "l4re", - target_os = "openbsd", - target_os = "wasi", - )))] - pub const NOSR: Self = Self(c::ENOSR); - /// `ENOSTR` - #[cfg(not(any( - freebsdlike, - windows, - target_os = "haiku", - target_os = "l4re", - target_os = "openbsd", - target_os = "wasi", - )))] - pub const NOSTR: Self = Self(c::ENOSTR); - /// `ENOSYS` - #[cfg(not(windows))] - pub const NOSYS: Self = Self(c::ENOSYS); - /// `ENOTBLK` - #[cfg(not(any( - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "vita", - target_os = "wasi" - )))] - pub const NOTBLK: Self = Self(c::ENOTBLK); - /// `ENOTCAPABLE` - #[cfg(any(target_os = "freebsd", target_os = "wasi"))] - pub const NOTCAPABLE: Self = Self(c::ENOTCAPABLE); - /// `ENOTCONN` - pub const NOTCONN: Self = Self(c::ENOTCONN); - /// `ENOTDIR` - #[cfg(not(windows))] - pub const NOTDIR: Self = Self(c::ENOTDIR); - /// `ENOTEMPTY` - pub const NOTEMPTY: Self = Self(c::ENOTEMPTY); - /// `ENOTNAM` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const NOTNAM: Self = Self(c::ENOTNAM); - /// `ENOTRECOVERABLE` - #[cfg(not(any( - freebsdlike, - netbsdlike, - windows, - target_os = "haiku", - target_os = "l4re" - )))] - pub const NOTRECOVERABLE: Self = Self(c::ENOTRECOVERABLE); - /// `ENOTSOCK` - #[cfg(not(target_os = "l4re"))] - pub const NOTSOCK: Self = Self(c::ENOTSOCK); - /// `ENOTSUP` - #[cfg(not(any(windows, target_os = "haiku", target_os = "redox")))] - pub const NOTSUP: Self = Self(c::ENOTSUP); - /// `ENOTTY` - #[cfg(not(windows))] - pub const NOTTY: Self = Self(c::ENOTTY); - /// `ENOTUNIQ` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const NOTUNIQ: Self = Self(c::ENOTUNIQ); - /// `ENXIO` - #[cfg(not(windows))] - pub const NXIO: Self = Self(c::ENXIO); - /// `EOPNOTSUPP` - pub const OPNOTSUPP: Self = Self(c::EOPNOTSUPP); - /// `EOVERFLOW` - #[cfg(not(any(windows, target_os = "l4re")))] - pub const OVERFLOW: Self = Self(c::EOVERFLOW); - /// `EOWNERDEAD` - #[cfg(not(any( - freebsdlike, - netbsdlike, - windows, - target_os = "haiku", - target_os = "l4re" - )))] - pub const OWNERDEAD: Self = Self(c::EOWNERDEAD); - /// `EPERM` - #[cfg(not(windows))] - pub const PERM: Self = Self(c::EPERM); - /// `EPFNOSUPPORT` - #[cfg(not(any(target_os = "l4re", target_os = "wasi")))] - pub const PFNOSUPPORT: Self = Self(c::EPFNOSUPPORT); - /// `EPIPE` - #[cfg(not(windows))] - pub const PIPE: Self = Self(c::EPIPE); - /// `EPROCLIM` - #[cfg(bsd)] - pub const PROCLIM: Self = Self(c::EPROCLIM); - /// `EPROCUNAVAIL` - #[cfg(bsd)] - pub const PROCUNAVAIL: Self = Self(c::EPROCUNAVAIL); - /// `EPROGMISMATCH` - #[cfg(bsd)] - pub const PROGMISMATCH: Self = Self(c::EPROGMISMATCH); - /// `EPROGUNAVAIL` - #[cfg(bsd)] - pub const PROGUNAVAIL: Self = Self(c::EPROGUNAVAIL); - /// `EPROTO` - #[cfg(not(any(windows, target_os = "l4re")))] - pub const PROTO: Self = Self(c::EPROTO); - /// `EPROTONOSUPPORT` - #[cfg(not(target_os = "l4re"))] - pub const PROTONOSUPPORT: Self = Self(c::EPROTONOSUPPORT); - /// `EPROTOTYPE` - #[cfg(not(target_os = "l4re"))] - pub const PROTOTYPE: Self = Self(c::EPROTOTYPE); - /// `EPROVIDERFAILEDINIT` - #[cfg(windows)] - pub const PROVIDERFAILEDINIT: Self = Self(c::EPROVIDERFAILEDINIT); - /// `ERANGE` - #[cfg(not(windows))] - pub const RANGE: Self = Self(c::ERANGE); - /// `EREFUSED` - #[cfg(windows)] - pub const REFUSED: Self = Self(c::EREFUSED); - /// `EREMCHG` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const REMCHG: Self = Self(c::EREMCHG); - /// `EREMOTE` - #[cfg(not(any( - target_os = "espidf", - target_os = "haiku", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const REMOTE: Self = Self(c::EREMOTE); - /// `EREMOTEIO` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const REMOTEIO: Self = Self(c::EREMOTEIO); - /// `ERESTART` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const RESTART: Self = Self(c::ERESTART); - /// `ERFKILL` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "android", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "redox", - target_os = "vita", - target_os = "wasi", - )))] - pub const RFKILL: Self = Self(c::ERFKILL); - /// `EROFS` - #[cfg(not(windows))] - pub const ROFS: Self = Self(c::EROFS); - /// `ERPCMISMATCH` - #[cfg(bsd)] - pub const RPCMISMATCH: Self = Self(c::ERPCMISMATCH); - /// `ESHUTDOWN` - #[cfg(not(any( - target_os = "espidf", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const SHUTDOWN: Self = Self(c::ESHUTDOWN); - /// `ESOCKTNOSUPPORT` - #[cfg(not(any( - target_os = "espidf", - target_os = "haiku", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const SOCKTNOSUPPORT: Self = Self(c::ESOCKTNOSUPPORT); - /// `ESPIPE` - #[cfg(not(windows))] - pub const SPIPE: Self = Self(c::ESPIPE); - /// `ESRCH` - #[cfg(not(windows))] - pub const SRCH: Self = Self(c::ESRCH); - /// `ESRMNT` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const SRMNT: Self = Self(c::ESRMNT); - /// `ESTALE` - pub const STALE: Self = Self(c::ESTALE); - /// `ESTRPIPE` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const STRPIPE: Self = Self(c::ESTRPIPE); - /// `ETIME` - #[cfg(not(any( - freebsdlike, - windows, - target_os = "l4re", - target_os = "openbsd", - target_os = "wasi" - )))] - pub const TIME: Self = Self(c::ETIME); - /// `ETIMEDOUT` - pub const TIMEDOUT: Self = Self(c::ETIMEDOUT); - /// `E2BIG` - #[cfg(not(windows))] - #[doc(alias = "2BIG")] - pub const TOOBIG: Self = Self(c::E2BIG); - /// `ETOOMANYREFS` - #[cfg(not(any(target_os = "haiku", target_os = "l4re", target_os = "wasi")))] - pub const TOOMANYREFS: Self = Self(c::ETOOMANYREFS); - /// `ETXTBSY` - #[cfg(not(windows))] - pub const TXTBSY: Self = Self(c::ETXTBSY); - /// `EUCLEAN` - #[cfg(not(any( - bsd, - solarish, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "nto", - target_os = "vita", - target_os = "wasi", - )))] - pub const UCLEAN: Self = Self(c::EUCLEAN); - /// `EUNATCH` - #[cfg(not(any( - bsd, - windows, - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const UNATCH: Self = Self(c::EUNATCH); - /// `EUSERS` - #[cfg(not(any( - target_os = "espidf", - target_os = "haiku", - target_os = "l4re", - target_os = "vita", - target_os = "wasi" - )))] - pub const USERS: Self = Self(c::EUSERS); - /// `EWOULDBLOCK` - pub const WOULDBLOCK: Self = Self(c::EWOULDBLOCK); - /// `EXDEV` - #[cfg(not(windows))] - pub const XDEV: Self = Self(c::EXDEV); - /// `EXFULL` - #[cfg(not(any( - bsd, - windows, - target_os = "aix", - target_os = "espidf", - target_os = "haiku", - target_os = "hurd", - target_os = "l4re", - target_os = "vita", - target_os = "wasi", - )))] - pub const XFULL: Self = Self(c::EXFULL); -} - -impl Errno { - /// Extract an `Errno` value from a `std::io::Error`. - /// - /// This isn't a `From` conversion because it's expected to be relatively - /// uncommon. - #[cfg(feature = "std")] - #[inline] - pub fn from_io_error(io_err: &std::io::Error) -> Option<Self> { - io_err - .raw_os_error() - .and_then(|raw| if raw != 0 { Some(Self(raw)) } else { None }) - } - - /// Extract the raw OS error number from this error. - #[inline] - pub const fn raw_os_error(self) -> i32 { - self.0 - } - - /// Construct an `Errno` from a raw OS error number. - #[inline] - pub const fn from_raw_os_error(raw: i32) -> Self { - Self(raw) - } - - pub(crate) fn last_os_error() -> Self { - Self(errno().0) - } -} diff --git a/vendor/rustix/src/backend/libc/io/mod.rs b/vendor/rustix/src/backend/libc/io/mod.rs deleted file mode 100644 index 4873885..0000000 --- a/vendor/rustix/src/backend/libc/io/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub(crate) mod errno; -#[cfg(not(windows))] -pub(crate) mod types; - -#[cfg_attr(windows, path = "windows_syscalls.rs")] -pub(crate) mod syscalls; diff --git a/vendor/rustix/src/backend/libc/io/syscalls.rs b/vendor/rustix/src/backend/libc/io/syscalls.rs deleted file mode 100644 index e28e6be..0000000 --- a/vendor/rustix/src/backend/libc/io/syscalls.rs +++ /dev/null @@ -1,340 +0,0 @@ -//! libc syscalls supporting `rustix::io`. - -use crate::backend::c; -#[cfg(not(target_os = "wasi"))] -use crate::backend::conv::ret_discarded_fd; -use crate::backend::conv::{borrowed_fd, ret, ret_c_int, ret_owned_fd, ret_usize}; -use crate::fd::{AsFd, BorrowedFd, OwnedFd, RawFd}; -#[cfg(not(any( - target_os = "aix", - target_os = "espidf", - target_os = "nto", - target_os = "vita", - target_os = "wasi" -)))] -use crate::io::DupFlags; -#[cfg(linux_kernel)] -use crate::io::ReadWriteFlags; -use crate::io::{self, FdFlags}; -use crate::ioctl::{IoctlOutput, RawOpcode}; -use core::cmp::min; -#[cfg(all(feature = "fs", feature = "net"))] -use libc_errno::errno; -#[cfg(not(target_os = "espidf"))] -use { - crate::backend::MAX_IOV, - crate::io::{IoSlice, IoSliceMut}, -}; - -pub(crate) unsafe fn read(fd: BorrowedFd<'_>, buf: *mut u8, len: usize) -> io::Result<usize> { - ret_usize(c::read(borrowed_fd(fd), buf.cast(), min(len, READ_LIMIT))) -} - -pub(crate) fn write(fd: BorrowedFd<'_>, buf: &[u8]) -> io::Result<usize> { - unsafe { - ret_usize(c::write( - borrowed_fd(fd), - buf.as_ptr().cast(), - min(buf.len(), READ_LIMIT), - )) - } -} - -pub(crate) unsafe fn pread( - fd: BorrowedFd<'_>, - buf: *mut u8, - len: usize, - offset: u64, -) -> io::Result<usize> { - let len = min(len, READ_LIMIT); - - // Silently cast; we'll get `EINVAL` if the value is negative. - let offset = offset as i64; - - // ESP-IDF and Vita don't support 64-bit offsets. - #[cfg(any(target_os = "espidf", target_os = "vita"))] - let offset: i32 = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?; - - ret_usize(c::pread(borrowed_fd(fd), buf.cast(), len, offset)) -} - -pub(crate) fn pwrite(fd: BorrowedFd<'_>, buf: &[u8], offset: u64) -> io::Result<usize> { - let len = min(buf.len(), READ_LIMIT); - - // Silently cast; we'll get `EINVAL` if the value is negative. - let offset = offset as i64; - - // ESP-IDF and Vita don't support 64-bit offsets. - #[cfg(any(target_os = "espidf", target_os = "vita"))] - let offset: i32 = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?; - - unsafe { ret_usize(c::pwrite(borrowed_fd(fd), buf.as_ptr().cast(), len, offset)) } -} - -#[cfg(not(target_os = "espidf"))] -pub(crate) fn readv(fd: BorrowedFd<'_>, bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> { - unsafe { - ret_usize(c::readv( - borrowed_fd(fd), - bufs.as_ptr().cast::<c::iovec>(), - min(bufs.len(), MAX_IOV) as c::c_int, - )) - } -} - -#[cfg(not(target_os = "espidf"))] -pub(crate) fn writev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>]) -> io::Result<usize> { - unsafe { - ret_usize(c::writev( - borrowed_fd(fd), - bufs.as_ptr().cast::<c::iovec>(), - min(bufs.len(), MAX_IOV) as c::c_int, - )) - } -} - -#[cfg(not(any( - target_os = "espidf", - target_os = "haiku", - target_os = "nto", - target_os = "redox", - target_os = "solaris", - target_os = "vita" -)))] -pub(crate) fn preadv( - fd: BorrowedFd<'_>, - bufs: &mut [IoSliceMut<'_>], - offset: u64, -) -> io::Result<usize> { - // Silently cast; we'll get `EINVAL` if the value is negative. - let offset = offset as i64; - unsafe { - ret_usize(c::preadv( - borrowed_fd(fd), - bufs.as_ptr().cast::<c::iovec>(), - min(bufs.len(), MAX_IOV) as c::c_int, - offset, - )) - } -} - -#[cfg(not(any( - target_os = "espidf", - target_os = "haiku", - target_os = "nto", - target_os = "redox", - target_os = "solaris", - target_os = "vita" -)))] -pub(crate) fn pwritev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>], offset: u64) -> io::Result<usize> { - // Silently cast; we'll get `EINVAL` if the value is negative. - let offset = offset as i64; - unsafe { - ret_usize(c::pwritev( - borrowed_fd(fd), - bufs.as_ptr().cast::<c::iovec>(), - min(bufs.len(), MAX_IOV) as c::c_int, - offset, - )) - } -} - -#[cfg(linux_kernel)] -pub(crate) fn preadv2( - fd: BorrowedFd<'_>, - bufs: &mut [IoSliceMut<'_>], - offset: u64, - flags: ReadWriteFlags, -) -> io::Result<usize> { - // Silently cast; we'll get `EINVAL` if the value is negative. - let offset = offset as i64; - unsafe { - ret_usize(c::preadv2( - borrowed_fd(fd), - bufs.as_ptr().cast::<c::iovec>(), - min(bufs.len(), MAX_IOV) as c::c_int, - offset, - bitflags_bits!(flags), - )) - } -} - -#[cfg(linux_kernel)] -pub(crate) fn pwritev2( - fd: BorrowedFd<'_>, - bufs: &[IoSlice<'_>], - offset: u64, - flags: ReadWriteFlags, -) -> io::Result<usize> { - // Silently cast; we'll get `EINVAL` if the value is negative. - let offset = offset as i64; - unsafe { - ret_usize(c::pwritev2( - borrowed_fd(fd), - bufs.as_ptr().cast::<c::iovec>(), - min(bufs.len(), MAX_IOV) as c::c_int, - offset, - bitflags_bits!(flags), - )) - } -} - -// These functions are derived from Rust's library/std/src/sys/unix/fd.rs at -// revision 326ef470a8b379a180d6dc4bbef08990698a737a. - -// The maximum read limit on most POSIX-like systems is `SSIZE_MAX`, with the -// manual page quoting that if the count of bytes to read is greater than -// `SSIZE_MAX` the result is “unspecified”. -// -// On macOS, however, apparently the 64-bit libc is either buggy or -// intentionally showing odd behavior by rejecting any read with a size larger -// than or equal to `INT_MAX`. To handle both of these the read size is capped -// on both platforms. -#[cfg(target_os = "macos")] -const READ_LIMIT: usize = c::c_int::MAX as usize - 1; -#[cfg(not(target_os = "macos"))] -const READ_LIMIT: usize = c::ssize_t::MAX as usize; - -pub(crate) unsafe fn close(raw_fd: RawFd) { - let _ = c::close(raw_fd as c::c_int); -} - -#[inline] -pub(crate) unsafe fn ioctl( - fd: BorrowedFd<'_>, - request: RawOpcode, - arg: *mut c::c_void, -) -> io::Result<IoctlOutput> { - ret_c_int(c::ioctl(borrowed_fd(fd), request, arg)) -} - -#[inline] -pub(crate) unsafe fn ioctl_readonly( - fd: BorrowedFd<'_>, - request: RawOpcode, - arg: *mut c::c_void, -) -> io::Result<IoctlOutput> { - ioctl(fd, request, arg) -} - -#[cfg(not(any(target_os = "redox", target_os = "wasi")))] -#[cfg(all(feature = "fs", feature = "net"))] -pub(crate) fn is_read_write(fd: BorrowedFd<'_>) -> io::Result<(bool, bool)> { - use core::mem::MaybeUninit; - - let (mut read, mut write) = crate::fs::fd::_is_file_read_write(fd)?; - let mut not_socket = false; - if read { - // Do a `recv` with `PEEK` and `DONTWAIT` for 1 byte. A 0 indicates - // the read side is shut down; an `EWOULDBLOCK` indicates the read - // side is still open. - match unsafe { - c::recv( - borrowed_fd(fd), - MaybeUninit::<[u8; 1]>::uninit() - .as_mut_ptr() - .cast::<c::c_void>(), - 1, - c::MSG_PEEK | c::MSG_DONTWAIT, - ) - } { - 0 => read = false, - -1 => { - #[allow(unreachable_patterns)] // `EAGAIN` may equal `EWOULDBLOCK` - match errno().0 { - c::EAGAIN | c::EWOULDBLOCK => (), - c::ENOTSOCK => not_socket = true, - err => return Err(io::Errno(err)), - } - } - _ => (), - } - } - if write && !not_socket { - // Do a `send` with `DONTWAIT` for 0 bytes. An `EPIPE` indicates - // the write side is shut down. - if unsafe { c::send(borrowed_fd(fd), [].as_ptr(), 0, c::MSG_DONTWAIT) } == -1 { - #[allow(unreachable_patterns)] // `EAGAIN` may equal `EWOULDBLOCK` - match errno().0 { - c::EAGAIN | c::EWOULDBLOCK | c::ENOTSOCK => (), - c::EPIPE => write = false, - err => return Err(io::Errno(err)), - } - } - } - Ok((read, write)) -} - -#[cfg(target_os = "wasi")] -#[cfg(all(feature = "fs", feature = "net"))] -pub(crate) fn is_read_write(_fd: BorrowedFd<'_>) -> io::Result<(bool, bool)> { - todo!("Implement is_read_write for WASI in terms of fd_fdstat_get"); -} - -pub(crate) fn fcntl_getfd(fd: BorrowedFd<'_>) -> io::Result<FdFlags> { - let flags = unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GETFD))? }; - Ok(FdFlags::from_bits_retain(bitcast!(flags))) -} - -pub(crate) fn fcntl_setfd(fd: BorrowedFd<'_>, flags: FdFlags) -> io::Result<()> { - unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_SETFD, flags.bits())) } -} - -#[cfg(not(any(target_os = "espidf", target_os = "wasi")))] -pub(crate) fn fcntl_dupfd_cloexec(fd: BorrowedFd<'_>, min: RawFd) -> io::Result<OwnedFd> { - unsafe { ret_owned_fd(c::fcntl(borrowed_fd(fd), c::F_DUPFD_CLOEXEC, min)) } -} - -#[cfg(target_os = "espidf")] -pub(crate) fn fcntl_dupfd(fd: BorrowedFd<'_>, min: RawFd) -> io::Result<OwnedFd> { - unsafe { ret_owned_fd(c::fcntl(borrowed_fd(fd), c::F_DUPFD, min)) } -} - -#[cfg(not(target_os = "wasi"))] -pub(crate) fn dup(fd: BorrowedFd<'_>) -> io::Result<OwnedFd> { - unsafe { ret_owned_fd(c::dup(borrowed_fd(fd))) } -} - -#[allow(clippy::needless_pass_by_ref_mut)] -#[cfg(not(target_os = "wasi"))] -pub(crate) fn dup2(fd: BorrowedFd<'_>, new: &mut OwnedFd) -> io::Result<()> { - unsafe { ret_discarded_fd(c::dup2(borrowed_fd(fd), borrowed_fd(new.as_fd()))) } -} - -#[allow(clippy::needless_pass_by_ref_mut)] -#[cfg(not(any( - apple, - target_os = "aix", - target_os = "android", - target_os = "dragonfly", - target_os = "espidf", - target_os = "haiku", - target_os = "nto", - target_os = "redox", - target_os = "vita", - target_os = "wasi", -)))] -pub(crate) fn dup3(fd: BorrowedFd<'_>, new: &mut OwnedFd, flags: DupFlags) -> io::Result<()> { - unsafe { - ret_discarded_fd(c::dup3( - borrowed_fd(fd), - borrowed_fd(new.as_fd()), - bitflags_bits!(flags), - )) - } -} - -#[cfg(any( - apple, - target_os = "android", - target_os = "dragonfly", - target_os = "haiku", - target_os = "redox", -))] -pub(crate) fn dup3(fd: BorrowedFd<'_>, new: &mut OwnedFd, _flags: DupFlags) -> io::Result<()> { - // Android 5.0 has `dup3`, but libc doesn't have bindings. Emulate it - // using `dup2`. We don't need to worry about the difference between - // `dup2` and `dup3` when the file descriptors are equal because we - // have an `&mut OwnedFd` which means `fd` doesn't alias it. - dup2(fd, new) -} diff --git a/vendor/rustix/src/backend/libc/io/types.rs b/vendor/rustix/src/backend/libc/io/types.rs deleted file mode 100644 index 510206f..0000000 --- a/vendor/rustix/src/backend/libc/io/types.rs +++ /dev/null @@ -1,65 +0,0 @@ -use crate::backend::c; -use bitflags::bitflags; - -bitflags! { - /// `FD_*` constants for use with [`fcntl_getfd`] and [`fcntl_setfd`]. - /// - /// [`fcntl_getfd`]: crate::io::fcntl_getfd - /// [`fcntl_setfd`]: crate::io::fcntl_setfd - #[repr(transparent)] - #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)] - pub struct FdFlags: u32 { - /// `FD_CLOEXEC` - const CLOEXEC = bitcast!(c::FD_CLOEXEC); - - /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags> - const _ = !0; - } -} - -#[cfg(linux_kernel)] -bitflags! { - /// `RWF_*` constants for use with [`preadv2`] and [`pwritev2`]. - /// - /// [`preadv2`]: crate::io::preadv2 - /// [`pwritev2`]: crate::io::pwritev - #[repr(transparent)] - #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)] - pub struct ReadWriteFlags: u32 { - /// `RWF_DSYNC` (since Linux 4.7) - const DSYNC = linux_raw_sys::general::RWF_DSYNC; - /// `RWF_HIPRI` (since Linux 4.6) - const HIPRI = linux_raw_sys::general::RWF_HIPRI; - /// `RWF_SYNC` (since Linux 4.7) - const SYNC = linux_raw_sys::general::RWF_SYNC; - /// `RWF_NOWAIT` (since Linux 4.14) - const NOWAIT = linux_raw_sys::general::RWF_NOWAIT; - /// `RWF_APPEND` (since Linux 4.16) - const APPEND = linux_raw_sys::general::RWF_APPEND; - - /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags> - const _ = !0; - } -} - -#[cfg(not(target_os = "wasi"))] -bitflags! { - /// `O_*` constants for use with [`dup2`]. - /// - /// [`dup2`]: crate::io::dup2 - #[repr(transparent)] - #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)] - pub struct DupFlags: u32 { - /// `O_CLOEXEC` - #[cfg(not(any( - apple, - target_os = "aix", - target_os = "android", - target_os = "redox", - )))] // Android 5.0 has dup3, but libc doesn't have bindings - const CLOEXEC = bitcast!(c::O_CLOEXEC); - - /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags> - const _ = !0; - } -} diff --git a/vendor/rustix/src/backend/libc/io/windows_syscalls.rs b/vendor/rustix/src/backend/libc/io/windows_syscalls.rs deleted file mode 100644 index 049221d..0000000 --- a/vendor/rustix/src/backend/libc/io/windows_syscalls.rs +++ /dev/null @@ -1,30 +0,0 @@ -//! Windows system calls in the `io` module. - -use crate::backend::c; -use crate::backend::conv::{borrowed_fd, ret_c_int}; -use crate::backend::fd::LibcFd; -use crate::fd::{BorrowedFd, RawFd}; -use crate::io; -use crate::ioctl::{IoctlOutput, RawOpcode}; - -pub(crate) unsafe fn close(raw_fd: RawFd) { - let _ = c::close(raw_fd as LibcFd); -} - -#[inline] -pub(crate) unsafe fn ioctl( - fd: BorrowedFd<'_>, - request: RawOpcode, - arg: *mut c::c_void, -) -> io::Result<IoctlOutput> { - ret_c_int(c::ioctl(borrowed_fd(fd), request, arg.cast())) -} - -#[inline] -pub(crate) unsafe fn ioctl_readonly( - fd: BorrowedFd<'_>, - request: RawOpcode, - arg: *mut c::c_void, -) -> io::Result<IoctlOutput> { - ioctl(fd, request, arg) -} |