#[repr(C)]pub struct BasicMemoryInfoTag { /* private fields */ }
Expand description
Basic memory info tag.
This tag includes “basic memory information”. This means (legacy) lower and upper memory: In Real Mode (modeled after the 8086), only the first 1MB of memory is accessible. Typically, the region between 640KB and 1MB is not freely usable, because it is used for memory-mapped IO, for instance. The term “lower memory” refers to those first 640KB of memory that are freely usable for an application in Real Mode. “Upper memory” then refers to the next freely usable chunk of memory, starting at 1MB up to about 10MB, in practice. This is the memory an application running on a 286 (which had a 24-bit address bus) could use, historically.
Nowadays, much bigger chunks of continuous memory are available at higher addresses, but the Multiboot standard still references those two terms.
Implementations§
Source§impl BasicMemoryInfoTag
impl BasicMemoryInfoTag
Sourcepub const fn memory_lower(&self) -> u32
pub const fn memory_lower(&self) -> u32
Returns the lower memory bound.
Sourcepub const fn memory_upper(&self) -> u32
pub const fn memory_upper(&self) -> u32
Returns the upper memory bound.
Trait Implementations§
Source§impl Clone for BasicMemoryInfoTag
impl Clone for BasicMemoryInfoTag
Source§fn clone(&self) -> BasicMemoryInfoTag
fn clone(&self) -> BasicMemoryInfoTag
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for BasicMemoryInfoTag
impl Debug for BasicMemoryInfoTag
Source§impl Hash for BasicMemoryInfoTag
impl Hash for BasicMemoryInfoTag
Source§impl MaybeDynSized for BasicMemoryInfoTag
impl MaybeDynSized for BasicMemoryInfoTag
Source§const BASE_SIZE: usize = 16usize
const BASE_SIZE: usize = 16usize
size_of::<T>()
isn’t sufficient, as for example
the type could have three u32
fields, which would add an implicit
u32
padding. However, this constant must always fulfill
BASE_SIZE >= size_of::<Self::Header>()
. Read moreSource§fn dst_len(_: &TagHeader)
fn dst_len(_: &TagHeader)
Source§fn payload(&self) -> &[u8]
fn payload(&self) -> &[u8]
Header
of the type.Source§impl Ord for BasicMemoryInfoTag
impl Ord for BasicMemoryInfoTag
Source§impl PartialEq for BasicMemoryInfoTag
impl PartialEq for BasicMemoryInfoTag
Source§impl PartialOrd for BasicMemoryInfoTag
impl PartialOrd for BasicMemoryInfoTag
Source§fn partial_cmp(&self, other: &BasicMemoryInfoTag) -> Option<Ordering>
fn partial_cmp(&self, other: &BasicMemoryInfoTag) -> Option<Ordering>
Source§impl Tag for BasicMemoryInfoTag
impl Tag for BasicMemoryInfoTag
impl Copy for BasicMemoryInfoTag
impl Eq for BasicMemoryInfoTag
impl StructuralPartialEq for BasicMemoryInfoTag
Auto Trait Implementations§
impl Freeze for BasicMemoryInfoTag
impl RefUnwindSafe for BasicMemoryInfoTag
impl Send for BasicMemoryInfoTag
impl Sync for BasicMemoryInfoTag
impl Unpin for BasicMemoryInfoTag
impl UnwindSafe for BasicMemoryInfoTag
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, dst: *mut u8)
unsafe fn clone_to_uninit(&self, dst: *mut u8)
clone_to_uninit
)