pub type VBox<T> = Box<T, Vmalloc>;
Expand description
Aliased Type§
pub struct VBox<T>(/* private fields */);
Trait Implementations§
Source§impl<T> AsPageIter for VBox<T>
§Examples
use kernel::alloc::allocator::VmallocPageIter;
use kernel::page::{AsPageIter, PAGE_SIZE};
let mut vbox = VBox::new((), GFP_KERNEL)?;
assert!(vbox.page_iter().next().is_none());
let mut vbox = VBox::<[u8; PAGE_SIZE]>::new_uninit(GFP_KERNEL)?;
let page = vbox.page_iter().next().expect("At least one page should be available.\n");
// SAFETY: There is no concurrent read or write to the same page.
unsafe { page.fill_zero_raw(0, PAGE_SIZE)? };
impl<T> AsPageIter for VBox<T>
§Examples
use kernel::alloc::allocator::VmallocPageIter;
use kernel::page::{AsPageIter, PAGE_SIZE};
let mut vbox = VBox::new((), GFP_KERNEL)?;
assert!(vbox.page_iter().next().is_none());
let mut vbox = VBox::<[u8; PAGE_SIZE]>::new_uninit(GFP_KERNEL)?;
let page = vbox.page_iter().next().expect("At least one page should be available.\n");
// SAFETY: There is no concurrent read or write to the same page.
unsafe { page.fill_zero_raw(0, PAGE_SIZE)? };
Source§type Iter<'a> = VmallocPageIter<'a>
where
T: 'a
type Iter<'a> = VmallocPageIter<'a> where T: 'a
The
Iterator
type, e.g. VmallocPageIter
.