#pragma once #include namespace weee::core { struct mem; struct serial_interface { serial_interface(mem &); ircolib::u32 read32(ircolib::u32); void write32(ircolib::u32, ircolib::u32); union { struct { unsigned vbcpy : 4; unsigned en : 4; unsigned y : 8; unsigned x : 8; unsigned : 8; }; ircolib::u32 raw; } sipoll; union { struct { unsigned tstart : 1; unsigned channel : 2; unsigned cben : 1; unsigned cmden : 1; unsigned inlength : 7; unsigned : 1; unsigned outlength : 7; unsigned : 1; unsigned chen : 1; unsigned chnum : 2; unsigned rdstintmsk : 1; unsigned rdstint : 1; unsigned comerr : 1; unsigned tcintmsk : 1; unsigned tcint : 1; }; ircolib::u32 raw; } sicomcsr; union { struct { unsigned : 31; unsigned lock : 1; }; ircolib::u32 raw; } clock_lk; union { struct { unsigned joy3 : 6; unsigned : 2; unsigned joy2 : 6; unsigned : 2; unsigned joy1 : 6; unsigned : 2; unsigned unrun : 1; unsigned ovrun0 : 1; unsigned coll0 : 1; unsigned norep0 : 1; unsigned wrst0 : 1; unsigned rdst0 : 1; unsigned : 1; unsigned wr : 1; }; ircolib::u32 raw; } sisr; }; } // namespace weee::core