diff --git a/kernel/trunk/core/sys32.inc b/kernel/trunk/core/sys32.inc index d94d39a2d9..a08292c704 100644 --- a/kernel/trunk/core/sys32.inc +++ b/kernel/trunk/core/sys32.inc @@ -183,12 +183,20 @@ macro irqh [num] { forward p_irq#num : + save_ring3_context mov edi, num - jmp irqhandler + jmp irq_c } irqh 2,3,4,5,7,8,9,10,11 +irq_c: + mov ax, app_data + mov ds, ax + mov es, ax + call irqhandler + restore_ring3_context + iret p_irq6: save_ring3_context