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