7 class Mmio_register_block
10 Mmio_register_block() {}
11 explicit Mmio_register_block(Address base) : _base(base) {}
13 template< typename T >
14 void write(T t, Address reg) const
15 { *reinterpret_cast<T volatile *>(_base + reg) = t; }
17 template< typename T >
18 T read(Address reg) const
19 { return *reinterpret_cast<T volatile const *>(_base + reg); }
21 template< typename T >
22 void modify(T enable, T disable, Address reg) const
24 Mword tmp = read<T>(reg);
30 Address get_mmio_base() const { return _base; }
31 void set_mmio_base(Address base) { _base = base; }