ZXFoundation™ 26h2
Loading...
Searching...
No Matches
lib::mmio_structure_ref< Extent, Alignment, StructEndian, FieldOrExts > Class Template Referenceexport
Inheritance diagram for lib::mmio_structure_ref< Extent, Alignment, StructEndian, FieldOrExts >:
[legend]
Collaboration diagram for lib::mmio_structure_ref< Extent, Alignment, StructEndian, FieldOrExts >:
[legend]

Public Types

using Layout = structure_layout_info<Extent, Alignment, StructEndian, FieldOrExts...>

Public Member Functions

template<fixed_string Name, class ValT>
auto atomic_compare_exchange (ValT &expected, ValT desired, std::memory_order success=std::memory_order_seq_cst, std::memory_order failure=std::memory_order_seq_cst) const noexcept -> bool
template<fixed_string Name>
auto atomic_load (std::memory_order order=std::memory_order_seq_cst) const noexcept
template<fixed_string Name, class ValT>
auto atomic_store (ValT &&val, std::memory_order order=std::memory_order_seq_cst) const noexcept -> void
constexpr mmio_structure_ref (volatile void *ptr) noexcept
constexpr auto raw_ptr () const noexcept -> const u8 *
constexpr auto raw_ptr () noexcept -> u8 *
Public Member Functions inherited from lib::structure_impl< Extent, Alignment, StructEndian, true, FieldOrExts... >
constexpr void apply_default_values () noexcept
 Materialize init<>/fixed<> default values into raw storage.
constexpr auto as_bytes (this auto &self) noexcept -> std::span< u8, extent >
constexpr decltype(auto) get (this auto &&self) noexcept
constexpr decltype(auto) operator[] (this auto &&self, field_tag< Name >) noexcept
constexpr auto raw_read (this const auto &self, usize byte_offset) noexcept -> T
constexpr auto raw_write (this auto &&self, usize byte_offset, T val) noexcept -> void
constexpr decltype(auto) set (this auto &&self, ValT &&val) noexcept
constexpr auto try_raw_read (this const auto &self, usize byte_offset) noexcept -> std::expected< T, kernel_error >
constexpr auto try_raw_write (this auto &&self, usize byte_offset, T val) noexcept -> std::expected< void, kernel_error >

Additional Inherited Members

Static Public Member Functions inherited from lib::structure_impl< Extent, Alignment, StructEndian, true, FieldOrExts... >
static consteval auto offset_of () noexcept -> usize
static consteval auto size_of () noexcept -> usize
Static Public Attributes inherited from lib::structure_impl< Extent, Alignment, StructEndian, true, FieldOrExts... >
static constexpr usize alignment
static constexpr usize extent
static constexpr usize field_count
static constexpr auto layout_meta

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