pub mod apic; pub mod exception_handlers; pub mod gdt; pub mod idt; pub mod interrupt_handlers; const INT_OFFSET: u8 = 32; #[repr(u8)] #[derive(PartialEq, Clone, Copy)] pub enum InterruptType { DivZero, Debug, NonMaskableInterrupt, Breakpoint, Overflow, BountRange, InvalidOptcode, DeviceNotAvailable, DoubleFault, CoprocessorOverrun, InvalidTTS, NotPresent, StackSegmentFault, GeneralProtectionFault, PageFault, x87Floating = 16, AlignmentCheck, MachineCheck, SIMD, Virtualization, Security, Timer = INT_OFFSET, Keyboard, ApicError, None = 255, } impl InterruptType { fn as_u8(self) -> u8 { self as u8 } fn as_usize(self) -> usize { usize::from(self.as_u8()) } }