//! 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 { 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 { ioctl(fd, request, arg) }