Namespaces | |
namespace | detail |
Classes | |
class | AddressSpace |
struct | AddressSpaceRegionListTag |
struct | BackedPhysicalPage |
A physical page of memory tracked by a backing object. More... | |
struct | BackedPhysicalPagePtrTag |
struct | BackedPhysicalPageTreeTag |
class | BackingObject |
class | LockedAddressSpace |
class | LockedBackingObject |
struct | PageStructurePhysicalPage |
A physical page of memory used for the page tables themselves. More... | |
struct | PhysicalAddressMapping |
struct | PhysicalAddressTag |
struct | PhysicalPage |
A physical page of memory. More... | |
class | Region |
struct | TempPage |
struct | VirtualAddressTag |
Typedefs | |
using | PhysicalAddress = di::StrongInt<PhysicalAddressTag> |
using | VirtualAddress = di::StrongInt<VirtualAddressTag> |
Enumerations | |
enum class | RegionFlags { None = 0 , Readable = 1 , Writable = 2 , Executable = 4 , User = 8 } |
Variables | |
constexpr auto | physical_page_base |
constexpr auto | physical_address = detail::PhysicalAddressFunction {} |
constexpr auto | bump_page = detail::BumpPage {} |
constexpr auto | drop_page = iris::mm::detail::DropPageFunction {} |
constexpr usize | physical_page_count = 4LLU * 1024U * 1024U * 1024U / 4096U |
|
strong |
auto iris::mm::allocate_page_frame | ( | ) | -> Expected<PhysicalAddress> |
auto iris::mm::allocate_physically_contiguous_page_frames | ( | usize | page_count | ) | -> Expected<PhysicalAddress> |
|
inline |
auto iris::mm::create_empty_user_address_space | ( | ) | -> Expected< di::Arc< AddressSpace > > |
void iris::mm::deallocate_page_frame | ( | PhysicalAddress | address | ) |
auto iris::mm::init_and_load_initial_kernel_address_space | ( | PhysicalAddress | kernel_physical_start, |
VirtualAddress | kernel_virtual_start, | ||
PhysicalAddress | max_physical_address ) -> Expected<void> |
auto iris::mm::map_physical_address | ( | PhysicalAddress | address, |
usize | byte_size ) -> Expected< PhysicalAddressMapping > |
|
inline |
|
inline |
void iris::mm::reserve_page_frames | ( | PhysicalAddress | base_address, |
usize | page_count ) |
void iris::mm::unmap_temp_page | ( | void * | ) |
void iris::mm::unreserve_page_frames | ( | PhysicalAddress | base_address, |
usize | page_count ) |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexpr |