use crate::{backend, io}; use backend::fd::AsFd; /// `fcntl(fd, F_RDADVISE, radvisory { offset, len })` /// /// # References /// - [Apple] /// /// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html #[doc(alias = "F_RDADVISE")] #[inline] pub fn fcntl_rdadvise(fd: Fd, offset: u64, len: u64) -> io::Result<()> { backend::fs::syscalls::fcntl_rdadvise(fd.as_fd(), offset, len) } /// `fcntl(fd, F_FULLFSYNC)` /// /// # References /// - [Apple] /// /// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html #[doc(alias = "F_FULLSYNC")] #[inline] pub fn fcntl_fullfsync(fd: Fd) -> io::Result<()> { backend::fs::syscalls::fcntl_fullfsync(fd.as_fd()) } /// `fcntl(fd, F_NOCACHE, value)`—Turn data caching off or on for a file /// descriptor. /// /// See [this mailing list post] for additional information about the meanings /// of `F_NOCACHE` and `F_GLOBAL_NOCACHE`. /// /// [this mailing list post]: https://lists.apple.com/archives/filesystem-dev/2007/Sep/msg00010.html /// /// See also [`fcntl_global_nocache`]. /// /// # References /// - [Apple] /// /// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html #[doc(alias = "F_NOCACHE")] #[inline] pub fn fcntl_nocache(fd: Fd, value: bool) -> io::Result<()> { backend::fs::syscalls::fcntl_nocache(fd.as_fd(), value) } /// `fcntl(fd, F_GLOBAL_NOCACHE, value)`—Turn data caching off or on for all /// file descriptors. /// /// See [this mailing list post] for additional information about the meanings /// of `F_NOCACHE` and `F_GLOBAL_NOCACHE`. /// /// [this mailing list post]: https://lists.apple.com/archives/filesystem-dev/2007/Sep/msg00010.html /// /// See also [`fcntl_nocache`]. /// /// # References /// - [Apple] /// /// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html #[doc(alias = "F_GLOBAL_NOCACHE")] #[inline] pub fn fcntl_global_nocache(fd: Fd, value: bool) -> io::Result<()> { backend::fs::syscalls::fcntl_global_nocache(fd.as_fd(), value) }