Iros
 
Loading...
Searching...
No Matches
iris::mm::AddressSpace Class Reference

#include <iris/mm/address_space.h>

Inheritance diagram for iris::mm::AddressSpace:
[legend]

Public Member Functions

 AddressSpace ()=default
 
 ~AddressSpace ()
 
auto architecture_page_table_base () const -> PhysicalAddress
 
void set_architecture_page_table_base (PhysicalAddress value)
 
void set_kernel ()
 
auto is_kernel () const -> bool
 
void load ()
 
auto resident_pages () const -> u64
 
auto structure_pages () const -> u64
 
auto allocate_region (di::Arc< BackingObject > backing_object, usize page_aligned_length, RegionFlags flags) -> Expected< VirtualAddress >
 
auto allocate_region_at (di::Arc< BackingObject > backing_object, VirtualAddress location, usize page_aligned_length, RegionFlags flags) -> Expected< void >
 
- Public Member Functions inherited from di::sync::Synchronized< Value, Lock >
 Synchronized ()=default
 
template<typename U>
requires (!concepts::SameAs<U, InPlace> && !concepts::RemoveCVRefSameAs<U, Synchronized> && concepts::ConstructibleFrom<Value, U>)
constexpr Synchronized (U &&value)
 
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
constexpr Synchronized (InPlace, Args &&... args)
 
 Synchronized (Synchronized &&)=delete
 
template<concepts::Invocable< Value & > Fun>
constexpr auto with_lock (Fun &&function) -> meta::InvokeResult< Fun, Value & >
 
constexpr auto lock ()
 
constexpr auto get_assuming_no_concurrent_accesses () -> Value &
 
constexpr auto get_const_assuming_no_concurrent_mutations () const -> Value const &
 
constexpr auto read () const -> Value requires(concepts::CopyConstructible< Value >)
 
auto get_lock () -> Lock &
 
- Public Member Functions inherited from di::vocab::IntrusiveRefCount< T >
template<typename = void>
constexpr auto arc_from_this ()
 
- Public Member Functions inherited from di::util::Immovable
 Immovable ()=default
 
 Immovable (Immovable &&)=delete
 

Friends

class LockedAddressSpace
 

Additional Inherited Members

- Protected Member Functions inherited from di::vocab::IntrusiveRefCount< T >
 IntrusiveRefCount ()=default
 

Constructor & Destructor Documentation

◆ AddressSpace()

iris::mm::AddressSpace::AddressSpace ( )
default

◆ ~AddressSpace()

iris::mm::AddressSpace::~AddressSpace ( )

Member Function Documentation

◆ allocate_region()

auto iris::mm::AddressSpace::allocate_region ( di::Arc< BackingObject > backing_object,
usize page_aligned_length,
RegionFlags flags ) -> Expected<VirtualAddress>

◆ allocate_region_at()

auto iris::mm::AddressSpace::allocate_region_at ( di::Arc< BackingObject > backing_object,
VirtualAddress location,
usize page_aligned_length,
RegionFlags flags ) -> Expected<void>

◆ architecture_page_table_base()

auto iris::mm::AddressSpace::architecture_page_table_base ( ) const -> PhysicalAddress
inline

◆ is_kernel()

auto iris::mm::AddressSpace::is_kernel ( ) const -> bool
inline

◆ load()

void iris::mm::AddressSpace::load ( )

◆ resident_pages()

auto iris::mm::AddressSpace::resident_pages ( ) const -> u64
inline

◆ set_architecture_page_table_base()

void iris::mm::AddressSpace::set_architecture_page_table_base ( PhysicalAddress value)
inline

◆ set_kernel()

void iris::mm::AddressSpace::set_kernel ( )
inline

◆ structure_pages()

auto iris::mm::AddressSpace::structure_pages ( ) const -> u64
inline

Friends And Related Symbol Documentation

◆ LockedAddressSpace

friend class LockedAddressSpace
friend

The documentation for this class was generated from the following files: