30enum class GuestProtect : u8 {
48 GuestMemory(
const GuestMemory&) =
delete;
49 GuestMemory& operator=(
const GuestMemory&) =
delete;
83 requires std::is_trivially_copyable_v<T>
93 requires std::is_trivially_copyable_v<T>
153 friend class TitleRuntime;
155 friend class kernel::TitleState;
161 State* state_ =
nullptr;
170 requires std::is_trivially_copyable_v<T>
183 requires std::is_trivially_copyable_v<T>
185 return CopyTo(address, std::as_bytes(std::span(&value, 1)));
Definition guest_allocator.h:49
Result< u32 > HostToGuest(const void *host) const
Result< std::span< std::byte > > GetWritableSpan(u32 address, u32 length)
kernel::MemoryView GetView() const
Result< void > Protect(u32 address, u32 length, GuestProtect protect)
Result< std::u16string > ReadString16(u32 address, u32 max_length=4096) const
Result< T > Load(u32 address) const
Definition guest_memory.h:171
Result< void > CopyFrom(u32 address, std::span< std::byte > out) const
Result< u32 > Allocate(u32 size, u32 alignment, GuestProtect protect, GuestHeap heap=GuestHeap::kTitle)
Result< std::span< const std::byte > > GetReadOnlySpan(u32 address, u32 length) const
Result< void > Store(u32 address, const T &value)
Definition guest_memory.h:184
Result< void > Free(u32 address)
Result< std::string > ReadString(u32 address, u32 max_length=4096) const
Result< void > CopyTo(u32 address, std::span< const std::byte > data)
Definition memory_view.h:38
GuestHeap
Definition guest_memory.h:35
@ kTitle
Definition guest_memory.h:36
@ kPhysical
Definition guest_memory.h:38
std::expected< T, Error > Result
Definition result.h:98
#define REX_TRY_VOID(expr)
Definition result.h:192
Integer types, byte order wrappers and size literals.