[−][src]Module sunrise_bootstrap::paging
Paging on i386
Modules
entry | i386 page table entry |
table | i386 page table / directory |
Structs
ActivePageTables | The page tables set currently in use. |
EntryFlags | The flags of a table entry |
InactivePageTables | A set of PageTables that are not the ones currently in use. We can't use recursive mapping to modify them, so instead we have to temporarily map the directory and tables to make changes to them. |
KernelLand | The virtual memory belonging to kernel. |
PagingOffPageSet | Used at startup when paging is off to create and initialized the first page tables |
UserLand | The virtual memory belonging to user. |
Enums
MappingType | The type of a Virtual Memory mapping. Can either be Present, in which case it is linked to a Frame and some flags, or Guard. |
Constants
ENTRY_COUNT | |
PAGE_SIZE | The size of a single page. |
Statics
ACTIVE_PAGE_TABLES | Currently active page tables. |
Traits
PageTablesSet | |
VirtualSpaceLand | A trait describing the splitting of virtual memory between Kernel and User. Implemented by UserLand and KernelLand |
Functions
enable_paging⚠ | |
flush_tlb | Flush the Translation Lookaside Buffer [https://wiki.osdev.org/TLB] |
get_page | Creates a mapping in the page tables with the given flags. Allocates the pointed page and chooses the virtual address. |
is_paging_on | Check if the paging is currently active. |
map_bootstrap⚠ | Creates a set of page tables identity mapping the Bootstrap. |
swap_cr3 | Changes the content of the cr3 register, and returns the value before the change was made |