|
|
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 * |
|
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 > |