public:
auto mmio_read(uint addr, uint8 data) -> uint8;
auto mmio_write(uint addr, uint8 data) -> void;

privileged:
auto mmio_power() -> void;
auto mmio_reset() -> void;

auto mmio_r2180() -> uint8;
auto mmio_r4016() -> uint8;
auto mmio_r4017() -> uint8;
auto mmio_r4210() -> uint8;
auto mmio_r4211() -> uint8;
auto mmio_r4212() -> uint8;
auto mmio_r4213() -> uint8;
auto mmio_r4214() -> uint8;
auto mmio_r4215() -> uint8;
auto mmio_r4216() -> uint8;
auto mmio_r4217() -> uint8;
auto mmio_r4218() -> uint8;
auto mmio_r4219() -> uint8;
auto mmio_r421a() -> uint8;
auto mmio_r421b() -> uint8;
auto mmio_r421c() -> uint8;
auto mmio_r421d() -> uint8;
auto mmio_r421e() -> uint8;
auto mmio_r421f() -> uint8;
auto mmio_r43x0(uint8 i) -> uint8;
auto mmio_r43x1(uint8 i) -> uint8;
auto mmio_r43x2(uint8 i) -> uint8;
auto mmio_r43x3(uint8 i) -> uint8;
auto mmio_r43x4(uint8 i) -> uint8;
auto mmio_r43x5(uint8 i) -> uint8;
auto mmio_r43x6(uint8 i) -> uint8;
auto mmio_r43x7(uint8 i) -> uint8;
auto mmio_r43x8(uint8 i) -> uint8;
auto mmio_r43x9(uint8 i) -> uint8;
auto mmio_r43xa(uint8 i) -> uint8;
auto mmio_r43xb(uint8 i) -> uint8;

auto mmio_w2180(uint8 data) -> void;
auto mmio_w2181(uint8 data) -> void;
auto mmio_w2182(uint8 data) -> void;
auto mmio_w2183(uint8 data) -> void;
auto mmio_w4016(uint8 data) -> void;
auto mmio_w4200(uint8 data) -> void;
auto mmio_w4201(uint8 data) -> void;
auto mmio_w4202(uint8 data) -> void;
auto mmio_w4203(uint8 data) -> void;
auto mmio_w4204(uint8 data) -> void;
auto mmio_w4205(uint8 data) -> void;
auto mmio_w4206(uint8 data) -> void;
auto mmio_w4207(uint8 data) -> void;
auto mmio_w4208(uint8 data) -> void;
auto mmio_w4209(uint8 data) -> void;
auto mmio_w420a(uint8 data) -> void;
auto mmio_w420b(uint8 data) -> void;
auto mmio_w420c(uint8 data) -> void;
auto mmio_w420d(uint8 data) -> void;
auto mmio_w43x0(uint8 i, uint8 data) -> void;
auto mmio_w43x1(uint8 i, uint8 data) -> void;
auto mmio_w43x2(uint8 i, uint8 data) -> void;
auto mmio_w43x3(uint8 i, uint8 data) -> void;
auto mmio_w43x4(uint8 i, uint8 data) -> void;
auto mmio_w43x5(uint8 i, uint8 data) -> void;
auto mmio_w43x6(uint8 i, uint8 data) -> void;
auto mmio_w43x7(uint8 i, uint8 data) -> void;
auto mmio_w43x8(uint8 i, uint8 data) -> void;
auto mmio_w43x9(uint8 i, uint8 data) -> void;
auto mmio_w43xa(uint8 i, uint8 data) -> void;
auto mmio_w43xb(uint8 i, uint8 data) -> void;
