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>13pub 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