Type Alias VVec

Source
pub type VVec<T> = Vec<T, Vmalloc>;
Expand description

Type alias for Vec with a Vmalloc allocator.

§Examples

let mut v = VVec::new();
v.push(1, GFP_KERNEL)?;
assert_eq!(&v, &[1]);

Aliased Type§

pub struct VVec<T> { /* private fields */ }

Trait Implementations§

Source§

impl<T> AsPageIter for VVec<T>

§Examples

use kernel::alloc::allocator::VmallocPageIter;
use kernel::page::{AsPageIter, PAGE_SIZE};

let mut vec = VVec::<u8>::new();

assert!(vec.page_iter().next().is_none());

vec.reserve(PAGE_SIZE, GFP_KERNEL)?;

let page = vec.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

The Iterator type, e.g. VmallocPageIter.
Source§

fn page_iter(&mut self) -> Self::Iter<'_>

Returns an Iterator of BorrowedPage items over all pages owned by self.