flex-alloc-secure 0.0.1

Secured allocations for flex-alloc
Documentation
use flex_alloc_secure::alloc::{
    alloc_pages, dealloc_pages, default_page_size, lock_pages, unlock_pages,
};

#[test]
fn check_default_page_size() {
    let psize = default_page_size();
    assert!(psize >= 4096);
}

#[test]
fn check_alloc_aligned() {
    let psize = default_page_size();
    let len = 24;
    let mut page = alloc_pages(len).expect("error allocating");
    let addr = page.as_ptr().cast::<u8>() as usize;
    assert!(addr % psize == 0);
    assert!(page.len() >= 24);
    unsafe { page.as_mut() }.fill(1u8);
    dealloc_pages(page.as_ptr().cast(), len);
}

#[test]
fn check_lock_aligned() {
    let len = 256;
    let mut page = alloc_pages(len).expect("error allocating");
    lock_pages(page.as_ptr().cast(), page.len()).expect("error locking page");
    unlock_pages(page.as_ptr().cast(), page.len()).expect("error unlocking page");
    unsafe { page.as_mut() }.fill(1u8);
    dealloc_pages(page.as_ptr().cast(), len);
}