Fix IO Port code again

This commit is contained in:
2023-01-08 13:56:26 +01:00
parent 5e7aa29e9c
commit 2d174dc79a
3 changed files with 26 additions and 19 deletions

View File

@@ -17,19 +17,27 @@ namespace JabyEngine {
static constexpr auto Controller = Bit<uint32_t>(10);
static constexpr auto LightPen = Controller;
__declare_io_port_global(ComplexBitMap<uint32_t>, Status, 0x1F801070);
__declare_io_port_global(ComplexBitMap<uint32_t>, Mask, 0x1F801074);
struct __no_align IRQStatus : public ComplexBitMap<uint32_t> {
__io_port_inherit_complex_bit_map(IRQStatus);
};
struct __no_align IRQMask : public ComplexBitMap<uint32_t> {
__io_port_inherit_complex_bit_map(IRQMask);
};
__declare_io_port_global(IRQStatus, Status, 0x1F801070);
__declare_io_port_global(IRQMask, Mask, 0x1F801074);
static bool is_irq(Bit<uint32_t> irq) {
return Status.read().is_bit_set(irq);
}
static void ack_irg(Bit<uint32_t> irq) {
//Status.write(Status.read().clear_bit(irq));
Status.write(Status.read().clear_bit(irq));
}
static void enable_irq(Bit<uint32_t> irq) {
//Mask.write(Mask.read().set_bit(irq));
Mask.write(Mask.read().set_bit(irq));
}
}
}