1 INTERFACE[ia32,amd64,ux]:
2 #include "std_macros.h"
5 IMPLEMENTATION[ia32,amd64,ux]:
10 #include "globalconfig.h"
14 #include "std_macros.h"
18 // screen spinner for debugging purposes
19 static inline void irq_spinners(int irqnum)
21 #ifdef CONFIG_IRQ_SPINNER
22 Unsigned16 *p = (Unsigned16 *)Mem_layout::Adap_vram_cga_beg;
23 p += (20 + cxx::int_value<Cpu_number>(current_cpu())) * 80 + irqnum;
24 if (p < (Unsigned16 *)Mem_layout::Adap_vram_cga_end)
31 /** Hardware interrupt entry point. Calls corresponding Dirq instance's
33 @param irqobj hardware-interrupt object
35 extern "C" FIASCO_FASTCALL
37 irq_interrupt(Mword _irqobj, Mword ip)
39 Mword irqobj = (Smword)((Signed32)_irqobj);
40 Thread::assert_irq_entry();
45 // we're entered with disabled irqs
46 Irq_base *i = (Irq_base*)irqobj;
48 irq_spinners(i->pin());