summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/src/backend/libc/io/windows_syscalls.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/backend/libc/io/windows_syscalls.rs')
-rw-r--r--vendor/rustix/src/backend/libc/io/windows_syscalls.rs29
1 files changed, 16 insertions, 13 deletions
diff --git a/vendor/rustix/src/backend/libc/io/windows_syscalls.rs b/vendor/rustix/src/backend/libc/io/windows_syscalls.rs
index c87a2a247..049221d2f 100644
--- a/vendor/rustix/src/backend/libc/io/windows_syscalls.rs
+++ b/vendor/rustix/src/backend/libc/io/windows_syscalls.rs
@@ -1,27 +1,30 @@
//! Windows system calls in the `io` module.
use crate::backend::c;
-use crate::backend::conv::{borrowed_fd, ret};
+use crate::backend::conv::{borrowed_fd, ret_c_int};
use crate::backend::fd::LibcFd;
use crate::fd::{BorrowedFd, RawFd};
use crate::io;
-use core::mem::MaybeUninit;
+use crate::ioctl::{IoctlOutput, RawOpcode};
pub(crate) unsafe fn close(raw_fd: RawFd) {
let _ = c::close(raw_fd as LibcFd);
}
-pub(crate) fn ioctl_fionread(fd: BorrowedFd<'_>) -> io::Result<u64> {
- let mut nread = MaybeUninit::<c::c_ulong>::uninit();
- unsafe {
- ret(c::ioctl(borrowed_fd(fd), c::FIONREAD, nread.as_mut_ptr()))?;
- Ok(u64::from(nread.assume_init()))
- }
+#[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()))
}
-pub(crate) fn ioctl_fionbio(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
- unsafe {
- let mut data = value as c::c_uint;
- ret(c::ioctl(borrowed_fd(fd), c::FIONBIO, &mut data))
- }
+#[inline]
+pub(crate) unsafe fn ioctl_readonly(
+ fd: BorrowedFd<'_>,
+ request: RawOpcode,
+ arg: *mut c::c_void,
+) -> io::Result<IoctlOutput> {
+ ioctl(fd, request, arg)
}