Iros
 
Loading...
Searching...
No Matches
map_physical_address.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/meta/trivial.h"
5#include "iris/core/error.h"
8
9namespace iris::mm {
11
13
15public:
17
19
24
25 template<typename T>
26 auto typed() const -> T& {
27 return *reinterpret_cast<T*>(m_data.data());
28 }
29
30 auto span() const { return m_data; }
31
32private:
33 di::Span<di::Byte> m_data;
34};
35}
Definition span_forward_declaration.h:10
size_t usize
Definition integers.h:33
constexpr auto data
Definition data.h:51
Definition address_space.cpp:20
di::StrongInt< PhysicalAddressTag > PhysicalAddress
Definition physical_address.h:12
auto map_physical_address(PhysicalAddress address, usize byte_size) -> Expected< PhysicalAddressMapping >
Definition map_physical_address.cpp:22
di::vocab::Expected< T, di::platform::GenericCode > Expected
Definition error.h:324
Definition map_physical_address.h:14
PhysicalAddressMapping(PhysicalAddressMapping &&)=default
auto typed() const -> T &
Definition map_physical_address.h:26
auto operator=(PhysicalAddressMapping const &) -> PhysicalAddressMapping &=delete
PhysicalAddressMapping(PhysicalAddressMapping const &)=delete
auto operator=(PhysicalAddressMapping &&) -> PhysicalAddressMapping &=default
PhysicalAddressMapping(di::Span< di::Byte > data)
Definition map_physical_address.h:16
auto span() const
Definition map_physical_address.h:30