Lines Matching refs:MmapVec
35 pub enum MmapVec { enum
52 impl MmapVec { implementation
59 fn new_mmap<M>(mmap: M, len: usize) -> MmapVec in new_mmap()
65 MmapVec::Mmap { mmap, len } in new_mmap()
69 fn new_alloc(len: usize, alignment: usize) -> Result<MmapVec, OutOfMemory> { in new_alloc() argument
75 Ok(MmapVec::Alloc { base, layout }) in new_alloc()
81 fn new_externally_owned(memory: NonNull<[u8]>) -> MmapVec { in new_externally_owned() argument
83 MmapVec::ExternallyOwned { memory } in new_externally_owned()
92 pub fn with_capacity_and_alignment(size: usize, alignment: usize) -> Result<MmapVec> { in with_capacity_and_alignment() argument
96 return Ok(MmapVec::new_mmap(Mmap::with_at_least(size)?, size)); in with_capacity_and_alignment()
100 return Ok(MmapVec::new_alloc(size, alignment)?); in with_capacity_and_alignment()
109 pub fn from_slice(slice: &[u8]) -> Result<MmapVec> { in from_slice() argument
110 MmapVec::from_slice_with_alignment(slice, 1) in from_slice()
128 pub unsafe fn from_raw(memory: NonNull<[u8]>) -> Result<MmapVec> { in from_raw() argument
129 Ok(MmapVec::new_externally_owned(memory)) in from_raw()
142 pub fn from_slice_with_alignment(slice: &[u8], align: usize) -> Result<MmapVec> { in from_slice_with_alignment() argument
143 let mut result = MmapVec::with_capacity_and_alignment(slice.len(), align)?; in from_slice_with_alignment()
160 MmapVec::Mmap { .. } => true, in supports_virtual_memory()
161 MmapVec::ExternallyOwned { .. } => false, in supports_virtual_memory()
163 MmapVec::Alloc { .. } => false, in supports_virtual_memory()
176 MmapVec::Mmap { .. } => false, in is_always_readonly()
177 MmapVec::ExternallyOwned { .. } => true, in is_always_readonly()
179 MmapVec::Alloc { .. } => false, in is_always_readonly()
193 pub fn from_file(file: File) -> Result<MmapVec> { in from_file() argument
198 Ok(MmapVec::new_mmap(mmap, len)) in from_file()
209 MmapVec::Mmap { mmap, len } => (mmap, *len), in make_executable()
210 MmapVec::ExternallyOwned { .. } => { in make_executable()
223 MmapVec::Mmap { mmap, len } => (mmap, *len), in make_readonly()
224 MmapVec::ExternallyOwned { .. } => { in make_readonly()
238 MmapVec::Mmap { mmap, len } => (mmap, *len), in make_readwrite()
239 MmapVec::ExternallyOwned { .. } => { in make_readwrite()
253 MmapVec::Alloc { .. } => None, in original_file()
254 MmapVec::ExternallyOwned { .. } => None, in original_file()
256 MmapVec::Mmap { mmap, .. } => mmap.original_file(), in original_file()
282 MmapVec::Alloc { base, layout } => unsafe { in as_mut_slice()
285 MmapVec::ExternallyOwned { .. } => { in as_mut_slice()
289 MmapVec::Mmap { mmap, len } => unsafe { mmap.slice_mut(0..*len) }, in as_mut_slice()
296 pub(crate) fn deep_clone(&self) -> Result<MmapVec> { in deep_clone() argument
299 MmapVec::Alloc { layout, .. } => { in deep_clone()
300 MmapVec::from_slice_with_alignment(&self[..], layout.align()) in deep_clone()
302 MmapVec::ExternallyOwned { .. } => { in deep_clone()
310 MmapVec::Mmap { mmap, len } => { in deep_clone()
314 return Ok(MmapVec::Mmap { mmap, len: *len }); in deep_clone()
316 MmapVec::from_slice_with_alignment(&self[..], crate::runtime::vm::host_page_size()) in deep_clone()
322 impl Deref for MmapVec { implementation
329 MmapVec::Alloc { base, layout } => unsafe { in deref()
332 MmapVec::ExternallyOwned { memory } => unsafe { memory.as_ref() }, in deref()
334 MmapVec::Mmap { mmap, len } => { in deref()
343 impl Drop for MmapVec { implementation
347 MmapVec::Alloc { base, layout, .. } => unsafe { in drop()
350 MmapVec::ExternallyOwned { .. } => { in drop()
354 MmapVec::Mmap { .. } => { in drop()
363 use super::MmapVec;
367 let mut mmap = MmapVec::with_capacity_and_alignment(10, 1).unwrap(); in smoke()
382 let mmap = MmapVec::with_capacity_and_alignment(10, 4096).unwrap(); in alignment()