Struct good_os_framework::memory::GeneralPageTable
source · pub struct GeneralPageTable {
pub inner: OffsetPageTable<'static>,
pub physical_address: PhysAddr,
}Fields§
§inner: OffsetPageTable<'static>§physical_address: PhysAddrImplementations§
source§impl GeneralPageTable
impl GeneralPageTable
pub unsafe fn switch(&self)
pub unsafe fn new_from_address( frame_allocator: &mut BitmapFrameAllocator, physical_address: PhysAddr, ) -> GeneralPageTable
pub unsafe fn ref_from_current() -> Self
Trait Implementations§
source§impl CleanUp for GeneralPageTable
impl CleanUp for GeneralPageTable
source§unsafe fn clean_up<D>(&mut self, frame_deallocator: &mut D)where
D: FrameDeallocator<Size4KiB>,
unsafe fn clean_up<D>(&mut self, frame_deallocator: &mut D)where
D: FrameDeallocator<Size4KiB>,
Remove all empty P1-P3 tables Read more
source§unsafe fn clean_up_addr_range<D>(
&mut self,
range: PageRangeInclusive,
frame_deallocator: &mut D,
)where
D: FrameDeallocator<Size4KiB>,
unsafe fn clean_up_addr_range<D>(
&mut self,
range: PageRangeInclusive,
frame_deallocator: &mut D,
)where
D: FrameDeallocator<Size4KiB>,
Remove all empty P1-P3 tables in a certain range Read more
source§impl Debug for GeneralPageTable
impl Debug for GeneralPageTable
source§impl Mapper<Size4KiB> for GeneralPageTable
impl Mapper<Size4KiB> for GeneralPageTable
source§unsafe fn map_to_with_table_flags<A>(
&mut self,
page: Page<Size4KiB>,
frame: PhysFrame<Size4KiB>,
flags: PageTableFlags,
parent_table_flags: PageTableFlags,
allocator: &mut A,
) -> Result<MapperFlush<Size4KiB>, MapToError<Size4KiB>>
unsafe fn map_to_with_table_flags<A>( &mut self, page: Page<Size4KiB>, frame: PhysFrame<Size4KiB>, flags: PageTableFlags, parent_table_flags: PageTableFlags, allocator: &mut A, ) -> Result<MapperFlush<Size4KiB>, MapToError<Size4KiB>>
Creates a new mapping in the page table. Read more
source§fn unmap(
&mut self,
page: Page<Size4KiB>,
) -> Result<(PhysFrame<Size4KiB>, MapperFlush<Size4KiB>), UnmapError>
fn unmap( &mut self, page: Page<Size4KiB>, ) -> Result<(PhysFrame<Size4KiB>, MapperFlush<Size4KiB>), UnmapError>
Removes a mapping from the page table and returns the frame that used to be mapped. Read more
source§unsafe fn update_flags(
&mut self,
page: Page<Size4KiB>,
flags: PageTableFlags,
) -> Result<MapperFlush<Size4KiB>, FlagUpdateError>
unsafe fn update_flags( &mut self, page: Page<Size4KiB>, flags: PageTableFlags, ) -> Result<MapperFlush<Size4KiB>, FlagUpdateError>
Updates the flags of an existing mapping. Read more
source§unsafe fn set_flags_p4_entry(
&mut self,
page: Page<Size4KiB>,
flags: PageTableFlags,
) -> Result<MapperFlushAll, FlagUpdateError>
unsafe fn set_flags_p4_entry( &mut self, page: Page<Size4KiB>, flags: PageTableFlags, ) -> Result<MapperFlushAll, FlagUpdateError>
Set the flags of an existing page level 4 table entry Read more
source§unsafe fn set_flags_p3_entry(
&mut self,
page: Page<Size4KiB>,
flags: PageTableFlags,
) -> Result<MapperFlushAll, FlagUpdateError>
unsafe fn set_flags_p3_entry( &mut self, page: Page<Size4KiB>, flags: PageTableFlags, ) -> Result<MapperFlushAll, FlagUpdateError>
Set the flags of an existing page table level 3 entry Read more
source§unsafe fn set_flags_p2_entry(
&mut self,
page: Page<Size4KiB>,
flags: PageTableFlags,
) -> Result<MapperFlushAll, FlagUpdateError>
unsafe fn set_flags_p2_entry( &mut self, page: Page<Size4KiB>, flags: PageTableFlags, ) -> Result<MapperFlushAll, FlagUpdateError>
Set the flags of an existing page table level 2 entry Read more
source§fn translate_page(
&self,
page: Page<Size4KiB>,
) -> Result<PhysFrame<Size4KiB>, TranslateError>
fn translate_page( &self, page: Page<Size4KiB>, ) -> Result<PhysFrame<Size4KiB>, TranslateError>
Return the frame that the specified page is mapped to. Read more
source§unsafe fn map_to<A>(
&mut self,
page: Page<S>,
frame: PhysFrame<S>,
flags: PageTableFlags,
frame_allocator: &mut A,
) -> Result<MapperFlush<S>, MapToError<S>>
unsafe fn map_to<A>( &mut self, page: Page<S>, frame: PhysFrame<S>, flags: PageTableFlags, frame_allocator: &mut A, ) -> Result<MapperFlush<S>, MapToError<S>>
Creates a new mapping in the page table. Read more
source§unsafe fn identity_map<A>(
&mut self,
frame: PhysFrame<S>,
flags: PageTableFlags,
frame_allocator: &mut A,
) -> Result<MapperFlush<S>, MapToError<S>>
unsafe fn identity_map<A>( &mut self, frame: PhysFrame<S>, flags: PageTableFlags, frame_allocator: &mut A, ) -> Result<MapperFlush<S>, MapToError<S>>
Maps the given frame to the virtual page with the same address. Read more
source§impl Translate for GeneralPageTable
impl Translate for GeneralPageTable
Auto Trait Implementations§
impl Freeze for GeneralPageTable
impl RefUnwindSafe for GeneralPageTable
impl Send for GeneralPageTable
impl Sync for GeneralPageTable
impl Unpin for GeneralPageTable
impl !UnwindSafe for GeneralPageTable
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Colorize for Twhere
T: ?Sized,
impl<T> Colorize for Twhere
T: ?Sized,
source§fn into_style(self) -> StyledValue<Self>where
Self: Sized,
fn into_style(self) -> StyledValue<Self>where
Self: Sized,
Convert a value to a
StyledValuesource§fn style(&self) -> StyledValue<&Self>
fn style(&self) -> StyledValue<&Self>
Convert a value to a
StyledValuesource§fn into_style_with<F, B, U>(
self,
style: Style<F, B, U>,
) -> StyledValue<Self, F, B, U>where
Self: Sized,
fn into_style_with<F, B, U>(
self,
style: Style<F, B, U>,
) -> StyledValue<Self, F, B, U>where
Self: Sized,
Convert a value to a
StyledValue and applies the given stylesource§fn style_with<F, B, U>(
&self,
style: Style<F, B, U>,
) -> StyledValue<&Self, F, B, U>
fn style_with<F, B, U>( &self, style: Style<F, B, U>, ) -> StyledValue<&Self, F, B, U>
Convert a value to a
StyledValue and applies the given stylesource§fn fg<C>(&self, color: C) -> StyledValue<&Self, C>
fn fg<C>(&self, color: C) -> StyledValue<&Self, C>
Changes the foreground color
source§fn into_fg<C>(self, color: C) -> StyledValue<Self, C>where
Self: Sized,
fn into_fg<C>(self, color: C) -> StyledValue<Self, C>where
Self: Sized,
Changes the foreground color
source§fn into_bg<C>(self, color: C) -> StyledValue<Self, NoColor, C>where
Self: Sized,
fn into_bg<C>(self, color: C) -> StyledValue<Self, NoColor, C>where
Self: Sized,
Changes the background color
source§fn underline_color<C>(
&self,
color: C,
) -> StyledValue<&Self, NoColor, NoColor, C>
fn underline_color<C>( &self, color: C, ) -> StyledValue<&Self, NoColor, NoColor, C>
Changes the underline color
source§fn into_underline_color<C>(
self,
color: C,
) -> StyledValue<Self, NoColor, NoColor, C>where
Self: Sized,
fn into_underline_color<C>(
self,
color: C,
) -> StyledValue<Self, NoColor, NoColor, C>where
Self: Sized,
Changes the underline color
source§fn bright_black(&self) -> StyledValue<&Self, BrightBlack>
fn bright_black(&self) -> StyledValue<&Self, BrightBlack>
Changes the foreground to bright black
source§fn bright_red(&self) -> StyledValue<&Self, BrightRed>
fn bright_red(&self) -> StyledValue<&Self, BrightRed>
Changes the foreground to bright red
source§fn bright_green(&self) -> StyledValue<&Self, BrightGreen>
fn bright_green(&self) -> StyledValue<&Self, BrightGreen>
Changes the foreground to bright green
source§fn bright_yellow(&self) -> StyledValue<&Self, BrightYellow>
fn bright_yellow(&self) -> StyledValue<&Self, BrightYellow>
Changes the foreground to bright yellow
source§fn bright_blue(&self) -> StyledValue<&Self, BrightBlue>
fn bright_blue(&self) -> StyledValue<&Self, BrightBlue>
Changes the foreground to bright blue
source§fn bright_magenta(&self) -> StyledValue<&Self, BrightMagenta>
fn bright_magenta(&self) -> StyledValue<&Self, BrightMagenta>
Changes the foreground to bright magenta
source§fn bright_cyan(&self) -> StyledValue<&Self, BrightCyan>
fn bright_cyan(&self) -> StyledValue<&Self, BrightCyan>
Changes the foreground to bright cyan
source§fn bright_white(&self) -> StyledValue<&Self, BrightWhite>
fn bright_white(&self) -> StyledValue<&Self, BrightWhite>
Changes the foreground to bright white
source§fn on_magenta(&self) -> StyledValue<&Self, NoColor, Magenta>
fn on_magenta(&self) -> StyledValue<&Self, NoColor, Magenta>
Changes the background to magenta
source§fn on_bright_black(&self) -> StyledValue<&Self, NoColor, BrightBlack>
fn on_bright_black(&self) -> StyledValue<&Self, NoColor, BrightBlack>
Changes the background to bright black
source§fn on_bright_red(&self) -> StyledValue<&Self, NoColor, BrightRed>
fn on_bright_red(&self) -> StyledValue<&Self, NoColor, BrightRed>
Changes the background to bright red
source§fn on_bright_green(&self) -> StyledValue<&Self, NoColor, BrightGreen>
fn on_bright_green(&self) -> StyledValue<&Self, NoColor, BrightGreen>
Changes the background to bright green
source§fn on_bright_yellow(&self) -> StyledValue<&Self, NoColor, BrightYellow>
fn on_bright_yellow(&self) -> StyledValue<&Self, NoColor, BrightYellow>
Changes the background to bright yellow
source§fn on_bright_blue(&self) -> StyledValue<&Self, NoColor, BrightBlue>
fn on_bright_blue(&self) -> StyledValue<&Self, NoColor, BrightBlue>
Changes the background to bright blue
source§fn on_bright_magenta(&self) -> StyledValue<&Self, NoColor, BrightMagenta>
fn on_bright_magenta(&self) -> StyledValue<&Self, NoColor, BrightMagenta>
Changes the background to bright magenta
source§fn on_bright_cyan(&self) -> StyledValue<&Self, NoColor, BrightCyan>
fn on_bright_cyan(&self) -> StyledValue<&Self, NoColor, BrightCyan>
Changes the background to bright cyan
source§fn on_bright_white(&self) -> StyledValue<&Self, NoColor, BrightWhite>
fn on_bright_white(&self) -> StyledValue<&Self, NoColor, BrightWhite>
Changes the background to bright white
source§fn into_black(self) -> StyledValue<Self, Black>where
Self: Sized,
fn into_black(self) -> StyledValue<Self, Black>where
Self: Sized,
Changes the foreground to black
source§fn into_green(self) -> StyledValue<Self, Green>where
Self: Sized,
fn into_green(self) -> StyledValue<Self, Green>where
Self: Sized,
Changes the foreground to green
source§fn into_yellow(self) -> StyledValue<Self, Yellow>where
Self: Sized,
fn into_yellow(self) -> StyledValue<Self, Yellow>where
Self: Sized,
Changes the foreground to yellow
source§fn into_blue(self) -> StyledValue<Self, Blue>where
Self: Sized,
fn into_blue(self) -> StyledValue<Self, Blue>where
Self: Sized,
Changes the foreground to blue
source§fn into_magenta(self) -> StyledValue<Self, Magenta>where
Self: Sized,
fn into_magenta(self) -> StyledValue<Self, Magenta>where
Self: Sized,
Changes the foreground to magenta
source§fn into_cyan(self) -> StyledValue<Self, Cyan>where
Self: Sized,
fn into_cyan(self) -> StyledValue<Self, Cyan>where
Self: Sized,
Changes the foreground to cyan
source§fn into_white(self) -> StyledValue<Self, White>where
Self: Sized,
fn into_white(self) -> StyledValue<Self, White>where
Self: Sized,
Changes the foreground to white
source§fn into_bright_black(self) -> StyledValue<Self, BrightBlack>where
Self: Sized,
fn into_bright_black(self) -> StyledValue<Self, BrightBlack>where
Self: Sized,
Changes the foreground to bright black
source§fn into_bright_red(self) -> StyledValue<Self, BrightRed>where
Self: Sized,
fn into_bright_red(self) -> StyledValue<Self, BrightRed>where
Self: Sized,
Changes the foreground to bright red
source§fn into_bright_green(self) -> StyledValue<Self, BrightGreen>where
Self: Sized,
fn into_bright_green(self) -> StyledValue<Self, BrightGreen>where
Self: Sized,
Changes the foreground to bright green
source§fn into_bright_yellow(self) -> StyledValue<Self, BrightYellow>where
Self: Sized,
fn into_bright_yellow(self) -> StyledValue<Self, BrightYellow>where
Self: Sized,
Changes the foreground to bright yellow
source§fn into_bright_blue(self) -> StyledValue<Self, BrightBlue>where
Self: Sized,
fn into_bright_blue(self) -> StyledValue<Self, BrightBlue>where
Self: Sized,
Changes the foreground to bright blue
source§fn into_bright_magenta(self) -> StyledValue<Self, BrightMagenta>where
Self: Sized,
fn into_bright_magenta(self) -> StyledValue<Self, BrightMagenta>where
Self: Sized,
Changes the foreground to bright magenta
source§fn into_bright_cyan(self) -> StyledValue<Self, BrightCyan>where
Self: Sized,
fn into_bright_cyan(self) -> StyledValue<Self, BrightCyan>where
Self: Sized,
Changes the foreground to bright cyan
source§fn into_bright_white(self) -> StyledValue<Self, BrightWhite>where
Self: Sized,
fn into_bright_white(self) -> StyledValue<Self, BrightWhite>where
Self: Sized,
Changes the foreground to bright white
source§fn into_on_black(self) -> StyledValue<Self, NoColor, Black>where
Self: Sized,
fn into_on_black(self) -> StyledValue<Self, NoColor, Black>where
Self: Sized,
Changes the background to black
source§fn into_on_red(self) -> StyledValue<Self, NoColor, Red>where
Self: Sized,
fn into_on_red(self) -> StyledValue<Self, NoColor, Red>where
Self: Sized,
Changes the background to red
source§fn into_on_green(self) -> StyledValue<Self, NoColor, Green>where
Self: Sized,
fn into_on_green(self) -> StyledValue<Self, NoColor, Green>where
Self: Sized,
Changes the background to green
source§fn into_on_yellow(self) -> StyledValue<Self, NoColor, Yellow>where
Self: Sized,
fn into_on_yellow(self) -> StyledValue<Self, NoColor, Yellow>where
Self: Sized,
Changes the background to yellow
source§fn into_on_blue(self) -> StyledValue<Self, NoColor, Blue>where
Self: Sized,
fn into_on_blue(self) -> StyledValue<Self, NoColor, Blue>where
Self: Sized,
Changes the background to blue
source§fn into_on_magenta(self) -> StyledValue<Self, NoColor, Magenta>where
Self: Sized,
fn into_on_magenta(self) -> StyledValue<Self, NoColor, Magenta>where
Self: Sized,
Changes the background to magenta
source§fn into_on_cyan(self) -> StyledValue<Self, NoColor, Cyan>where
Self: Sized,
fn into_on_cyan(self) -> StyledValue<Self, NoColor, Cyan>where
Self: Sized,
Changes the background to cyan
source§fn into_on_white(self) -> StyledValue<Self, NoColor, White>where
Self: Sized,
fn into_on_white(self) -> StyledValue<Self, NoColor, White>where
Self: Sized,
Changes the background to white
source§fn into_on_bright_black(self) -> StyledValue<Self, NoColor, BrightBlack>where
Self: Sized,
fn into_on_bright_black(self) -> StyledValue<Self, NoColor, BrightBlack>where
Self: Sized,
Changes the background to bright black
source§fn into_on_bright_red(self) -> StyledValue<Self, NoColor, BrightRed>where
Self: Sized,
fn into_on_bright_red(self) -> StyledValue<Self, NoColor, BrightRed>where
Self: Sized,
Changes the background to bright red
source§fn into_on_bright_green(self) -> StyledValue<Self, NoColor, BrightGreen>where
Self: Sized,
fn into_on_bright_green(self) -> StyledValue<Self, NoColor, BrightGreen>where
Self: Sized,
Changes the background to bright green
source§fn into_on_bright_yellow(self) -> StyledValue<Self, NoColor, BrightYellow>where
Self: Sized,
fn into_on_bright_yellow(self) -> StyledValue<Self, NoColor, BrightYellow>where
Self: Sized,
Changes the background to bright yellow
source§fn into_on_bright_blue(self) -> StyledValue<Self, NoColor, BrightBlue>where
Self: Sized,
fn into_on_bright_blue(self) -> StyledValue<Self, NoColor, BrightBlue>where
Self: Sized,
Changes the background to bright blue
source§fn into_on_bright_magenta(self) -> StyledValue<Self, NoColor, BrightMagenta>where
Self: Sized,
fn into_on_bright_magenta(self) -> StyledValue<Self, NoColor, BrightMagenta>where
Self: Sized,
Changes the background to bright magenta
source§fn into_on_bright_cyan(self) -> StyledValue<Self, NoColor, BrightCyan>where
Self: Sized,
fn into_on_bright_cyan(self) -> StyledValue<Self, NoColor, BrightCyan>where
Self: Sized,
Changes the background to bright cyan
source§fn into_on_bright_white(self) -> StyledValue<Self, NoColor, BrightWhite>where
Self: Sized,
fn into_on_bright_white(self) -> StyledValue<Self, NoColor, BrightWhite>where
Self: Sized,
Changes the background to bright white
source§fn bold(&self) -> StyledValue<&Self>
fn bold(&self) -> StyledValue<&Self>
Applies the bold effect
source§fn dimmed(&self) -> StyledValue<&Self>
fn dimmed(&self) -> StyledValue<&Self>
Applies the dimmed effect
source§fn italics(&self) -> StyledValue<&Self>
fn italics(&self) -> StyledValue<&Self>
Applies the italics effect
source§fn underline(&self) -> StyledValue<&Self>
fn underline(&self) -> StyledValue<&Self>
Applies the underline effect
source§fn double_underline(&self) -> StyledValue<&Self>
fn double_underline(&self) -> StyledValue<&Self>
Applies the double underline effect
source§fn blink(&self) -> StyledValue<&Self>
fn blink(&self) -> StyledValue<&Self>
Applies the blink effect
source§fn blink_fast(&self) -> StyledValue<&Self>
fn blink_fast(&self) -> StyledValue<&Self>
Applies the blink fast effect
source§fn reverse(&self) -> StyledValue<&Self>
fn reverse(&self) -> StyledValue<&Self>
Applies the reverse effect
source§fn hide(&self) -> StyledValue<&Self>
fn hide(&self) -> StyledValue<&Self>
Applies the hide effect
source§fn strikethrough(&self) -> StyledValue<&Self>
fn strikethrough(&self) -> StyledValue<&Self>
Applies the strikethrough effect
source§fn overline(&self) -> StyledValue<&Self>
fn overline(&self) -> StyledValue<&Self>
Applies the overline effect
source§fn superscript(&self) -> StyledValue<&Self>
fn superscript(&self) -> StyledValue<&Self>
Applies the superscript effect
source§fn subscript(&self) -> StyledValue<&Self>
fn subscript(&self) -> StyledValue<&Self>
Applies the subscript effect
source§fn into_bold(self) -> StyledValue<Self>where
Self: Sized,
fn into_bold(self) -> StyledValue<Self>where
Self: Sized,
Applies the bold effect
source§fn into_dimmed(self) -> StyledValue<Self>where
Self: Sized,
fn into_dimmed(self) -> StyledValue<Self>where
Self: Sized,
Applies the dimmed effect
source§fn into_italics(self) -> StyledValue<Self>where
Self: Sized,
fn into_italics(self) -> StyledValue<Self>where
Self: Sized,
Applies the italics effect
source§fn into_underline(self) -> StyledValue<Self>where
Self: Sized,
fn into_underline(self) -> StyledValue<Self>where
Self: Sized,
Applies the underline effect
source§fn into_double_underline(self) -> StyledValue<Self>where
Self: Sized,
fn into_double_underline(self) -> StyledValue<Self>where
Self: Sized,
Applies the double underline effect
source§fn into_blink(self) -> StyledValue<Self>where
Self: Sized,
fn into_blink(self) -> StyledValue<Self>where
Self: Sized,
Applies the blink effect
source§fn into_blink_fast(self) -> StyledValue<Self>where
Self: Sized,
fn into_blink_fast(self) -> StyledValue<Self>where
Self: Sized,
Applies the blink fast effect
source§fn into_reverse(self) -> StyledValue<Self>where
Self: Sized,
fn into_reverse(self) -> StyledValue<Self>where
Self: Sized,
Applies the reverse effect
source§fn into_hide(self) -> StyledValue<Self>where
Self: Sized,
fn into_hide(self) -> StyledValue<Self>where
Self: Sized,
Applies the hide effect
source§fn into_strikethrough(self) -> StyledValue<Self>where
Self: Sized,
fn into_strikethrough(self) -> StyledValue<Self>where
Self: Sized,
Applies the strikethrough effect
source§fn into_overline(self) -> StyledValue<Self>where
Self: Sized,
fn into_overline(self) -> StyledValue<Self>where
Self: Sized,
Applies the overline effect
source§fn into_superscript(self) -> StyledValue<Self>where
Self: Sized,
fn into_superscript(self) -> StyledValue<Self>where
Self: Sized,
Applies the superscript effect
source§fn into_subscript(self) -> StyledValue<Self>where
Self: Sized,
fn into_subscript(self) -> StyledValue<Self>where
Self: Sized,
Applies the subscript effect
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more