yanix/sys/linux/
fadvise.rs1use 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}