yanix/sys/linux/
fadvise.rs

1use crate::from_success_code;
2use std::io::Result;
3use std::os::unix::prelude::*;
4
5#[derive(Debug, Copy, Clone)]
6#[repr(i32)]
7pub enum PosixFadviseAdvice {
8    Normal = libc::POSIX_FADV_NORMAL,
9    Sequential = libc::POSIX_FADV_SEQUENTIAL,
10    Random = libc::POSIX_FADV_RANDOM,
11    NoReuse = libc::POSIX_FADV_NOREUSE,
12    WillNeed = libc::POSIX_FADV_WILLNEED,
13    DontNeed = libc::POSIX_FADV_DONTNEED,
14}
15
16pub unsafe fn posix_fadvise(
17    fd: RawFd,
18    offset: libc::off_t,
19    len: libc::off_t,
20    advice: PosixFadviseAdvice,
21) -> Result<()> {
22    from_success_code(libc::posix_fadvise(fd, offset, len, advice as libc::c_int))
23}