diff --git a/psx/src/hw/irq.rs b/psx/src/hw/irq.rs index 319490f..1c58659 100644 --- a/psx/src/hw/irq.rs +++ b/psx/src/hw/irq.rs @@ -1,14 +1,12 @@ //! Interrupt request and acknowledge use crate::hw::{MemRegister, Register}; -use crate::irq::{ALL_IRQS, IRQ}; -use core::mem::variant_count; +use crate::irq::{ALL_IRQS, IRQ, NUM_IRQS}; /// Interrupt status register pub type Status = MemRegister; /// Interrupt mask register pub type Mask = MemRegister; -const NUM_IRQS: usize = variant_count::(); const ALL_IRQS_BITS: u16 = (1 << NUM_IRQS) - 1; impl Status { diff --git a/psx/src/lib.rs b/psx/src/lib.rs index be1e90b..e2a9629 100644 --- a/psx/src/lib.rs +++ b/psx/src/lib.rs @@ -128,7 +128,13 @@ pub mod constants { /// Interrupt request types pub mod irq { + use core::mem::variant_count; + + /// The number of different interrupt requests + pub const NUM_IRQS: usize = variant_count::(); + /// An interrupt request + #[repr(u16)] #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub enum IRQ { /// vertical blank interrupt request (NTSC = 60Hz, PAL = 50Hz)