[][src]Module sunrise_kernel::paging

Paging.

j-------------------------------j j---------------------j
|        Process Memory         | |    Kernel Memory    |
j-------------------------------j j---------------------j
                |                            |
    j-----------------------j                |
    | Userspace Bookkeeping |                |
    j-----------------------j                |
                |                            |
j--------------------------------+----------------~-----j
|           User Land            |   Kernel Land  | RTL |
j--------------------------------+----------------~-----j
                        Page tables

Modules

arch

Arch-specific implementations of paging

bookkeeping

Bookkeeping of mappings in UserLand

cross_process

Cross Process Mapping

hierarchical_table

Arch-independent traits for architectures that implement paging as a hierarchy of page tables

kernel_memory

The management of kernel memory

lands

Module describing the split between the UserSpace and KernelSpace, and a few functions to work with it.

mapping

Mapping

process_memory

The management of a process' memory

Structs

InactiveHierarchy

A currently inactive hierarchy of directory and tables.

MappingAccessRights

The flags of a mapping.

Enums

PageState

A hierarchical paging is composed of entries. An entry can be in the following states:

Constants

PAGE_SIZE

The page size. Dictated by the MMU. In simple, elegant, sane i386 paging, a page is 4kB.

Traits

InactiveHierarchyTrait

A trait implemented by inactive table hierarchies.

Functions

read_cr2

Reads the value of cr2, retrieving the address that caused a page fault

read_cr3

Reads the value of cr3, retrieving the current page directory's physical address