blob: 056e9e437a2cde3bfe5e02297f50e92dc2be486d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
use libc;
use std::os::unix::io::RawFd;
use {Errno, Result};
use std::ffi::CStr;
bitflags!(
pub struct MemFdCreateFlag: libc::c_uint {
const MFD_CLOEXEC = 0x0001;
const MFD_ALLOW_SEALING = 0x0002;
}
);
pub fn memfd_create(name: &CStr, flags: MemFdCreateFlag) -> Result<RawFd> {
let res = unsafe {
libc::syscall(libc::SYS_memfd_create, name.as_ptr(), flags.bits())
};
Errno::result(res).map(|r| r as RawFd)
}
|