11#include <l4/drivers/hw_register_block>
12#include <l4/drivers/asm_access.h>
16class Mmio_register_block_base
24 : _base(base), _shift(shift) {}
26 template<
typename T >
28 {
return Asm_access::read(
reinterpret_cast<T
const *
>(_base + (reg << _shift))); }
30 template<
typename T >
32 { Asm_access::write(value,
reinterpret_cast<T *
>(_base + (reg << _shift))); }
34 void set_base(
l4_addr_t base) { _base = base; }
35 void set_shift(
l4_addr_t shift) { _shift = shift; }
42template<
unsigned MAX_BITS = 32 >
43struct Mmio_register_block
45 Mmio_register_block_base
48 : Mmio_register_block_base(base, shift) {}
unsigned long l4_addr_t
Address type.
Implementation helper for register blocks.