Struct kernel::mem::address::virtual_address::VirtualAddress
source · pub struct VirtualAddress {
bits: usize,
}
Expand description
The VirtualAddress
struct represents a 39-bit virtual address defined in the Sv39
page table format.
Fields§
§bits: usize
Implementations§
source§impl VirtualAddress
impl VirtualAddress
sourcepub fn floor(&self) -> PageNumber
pub fn floor(&self) -> PageNumber
Returns the PageNumber that represents the page that contains the virtual address.
sourcepub fn ceil(&self) -> PageNumber
pub fn ceil(&self) -> PageNumber
Returns the PageNumber that represents the page that contains the virtual address, rounding up to the next frame if the physical address is not aligned to a frame.
sourcepub fn page_offset(&self) -> usize
pub fn page_offset(&self) -> usize
Returns the byte offset of the virtual address within its containing page.
sourcepub fn is_aligned(&self) -> bool
pub fn is_aligned(&self) -> bool
Returns true
if the virtual address is aligned to a page.
sourcepub fn as_ptr_mut(&self) -> *mut u8
pub fn as_ptr_mut(&self) -> *mut u8
Returns a mutable raw pointer to the virtual address.
Trait Implementations§
source§impl Add<usize> for VirtualAddress
impl Add<usize> for VirtualAddress
source§impl AddAssign<usize> for VirtualAddress
impl AddAssign<usize> for VirtualAddress
source§fn add_assign(&mut self, rhs: usize)
fn add_assign(&mut self, rhs: usize)
Performs the
+=
operation. Read moresource§impl Clone for VirtualAddress
impl Clone for VirtualAddress
source§fn clone(&self) -> VirtualAddress
fn clone(&self) -> VirtualAddress
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl From<PageNumber> for VirtualAddress
impl From<PageNumber> for VirtualAddress
source§fn from(value: PageNumber) -> Self
fn from(value: PageNumber) -> Self
Converts to this type from the input type.
source§impl From<VirtualAddress> for PageNumber
impl From<VirtualAddress> for PageNumber
source§fn from(value: VirtualAddress) -> Self
fn from(value: VirtualAddress) -> Self
Converts to this type from the input type.
source§impl From<VirtualAddress> for usize
impl From<VirtualAddress> for usize
source§fn from(value: VirtualAddress) -> Self
fn from(value: VirtualAddress) -> Self
Converts to this type from the input type.
source§impl From<usize> for VirtualAddress
impl From<usize> for VirtualAddress
source§impl Ord for VirtualAddress
impl Ord for VirtualAddress
source§fn cmp(&self, other: &VirtualAddress) -> Ordering
fn cmp(&self, other: &VirtualAddress) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq<VirtualAddress> for VirtualAddress
impl PartialEq<VirtualAddress> for VirtualAddress
source§fn eq(&self, other: &VirtualAddress) -> bool
fn eq(&self, other: &VirtualAddress) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<VirtualAddress> for VirtualAddress
impl PartialOrd<VirtualAddress> for VirtualAddress
source§fn partial_cmp(&self, other: &VirtualAddress) -> Option<Ordering>
fn partial_cmp(&self, other: &VirtualAddress) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read more