libyggdrasil  v1.0.0
bsp::Register< BaseAddress, Offset, SizeType > Struct Template Reference

MMIO Register abstraction. Gives access to bitfields within the register as well as a reference to the register value itself. More...

#include <registers.hpp>

Public Types

template<u8 From, u8 To>
using Field = BitField< BaseAddress+static_cast< addr_t >(Offset), SizeType, From, To >
 Bitfield access. More...
 

Static Public Attributes

static auto & Value = *reinterpret_cast<IO<SizeType>*>(BaseAddress + static_cast<addr_t>(Offset))
 Reference to the register value. More...
 

Detailed Description

template<addr_t BaseAddress, auto Offset, typename SizeType = reg_t>
struct bsp::Register< BaseAddress, Offset, SizeType >

MMIO Register abstraction. Gives access to bitfields within the register as well as a reference to the register value itself.

Template Parameters
BaseAddressRegister block base address
OffsetRegister offset from register block base address
SizeTypeRegister size

Member Typedef Documentation

◆ Field

template<addr_t BaseAddress, auto Offset, typename SizeType = reg_t>
template<u8 From, u8 To>
using bsp::Register< BaseAddress, Offset, SizeType >::Field = BitField<BaseAddress + static_cast<addr_t>(Offset), SizeType, From, To>

Bitfield access.

Template Parameters
FromFirst bit to include in bitfield
ToLast bit to include in bitfield

Member Data Documentation

◆ Value

template<addr_t BaseAddress, auto Offset, typename SizeType = reg_t>
auto& bsp::Register< BaseAddress, Offset, SizeType >::Value = *reinterpret_cast<IO<SizeType>*>(BaseAddress + static_cast<addr_t>(Offset))
inlinestatic

Reference to the register value.


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