pub struct Page {
inner: ContigPages,
}Expand description
A representation of a memory page.
The Page struct encapsulates a single memory page, providing methods to
allocate, access, and manipulate the underlying page’s contents.
This page internally holds the reference counts. This counter increases on a
calling of Page::clone, and decreases when the page instance is dropped.
§Example:
let page = Page::new().unwrap();
let va = page.va(); // Get the virtual address of the page.
let pa = page.pa(); // Get the physical address of the page.Fields§
§inner: ContigPagesImplementations§
Source§impl Page
impl Page
Sourcepub fn into_raw(self) -> Pa
pub fn into_raw(self) -> Pa
Consumes the page, returning its physical address.
This method “consumes” the Page and returns its physical address.
After calling this function, the caller is responsible for managing
the memory previously associated with the page. It is important to
properly release the page, which can be done using Page::from_pa.
§Returns
- The physical address (
Pa) of the page.
Sourcepub unsafe fn from_pa(pa: Pa) -> Self
pub unsafe fn from_pa(pa: Pa) -> Self
Constructs a page from a given physical address.
This method reconstructs a Page from a physical address (Pa). It
should be used only after consuming a Page with
Page::into_raw. The physical address passed must be valid.
§Safety
- This function is unsafe because incorrect usage could result in memory issues such as a double-free.
- Ensure that the physical address passed is valid and is being used correctly.
§Arguments
pa: The physical address of the page.
§Returns
- A
Pagereconstructed from the physical address.
Sourcepub fn inner(&self) -> &[u8]
pub fn inner(&self) -> &[u8]
Get a reference to the underlying slice of the page (read-only).
This method allows access to the contents of the page as a byte slice. The caller can read from the page’s memory, but cannot modify it.
§Returns
- A reference to the byte slice representing the contents of the page.
Sourcepub fn inner_mut(&mut self) -> &mut [u8]
pub fn inner_mut(&mut self) -> &mut [u8]
Get a mutable reference to the underlying slice of the page.
This method allows modification of the contents of the page as a byte slice. The caller can read from and write to the page’s memory.
§Returns
- A mutable reference to the byte slice representing the contents of the page.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Page
impl RefUnwindSafe for Page
impl Send for Page
impl Sync for Page
impl Unpin for Page
impl UnwindSafe for Page
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)