#ifndef __INTERRUPT_SUPPRESSION_AH__ #define __INTERRUPT_SUPPRESSION_AH__ #include "config/AspectConfig.hpp" #ifdef CONFIG_SUPPRESS_INTERRUPTS #include "../../../bochs/bochs.h" #include "../../../bochs/cpu/cpu.h" #include "../SALInst.hpp" aspect Interrupt_FI { pointcut interrupt_method() = "void bx_cpu_c::interrupt(...)"; advice execution (interrupt_method()) : around () { unsigned type = *(tjp->arg<1>()); if(!sal::simulator.isSuppressedInterrupt(type)){ tjp->proceed(); } } }; #endif // CONFIG_SUPPRESS_INTERRUPTS #endif /* __INTERRUPT_SUPPRESSION_AH__ */