/* Idle interrupt handler */ static void idleInterruptHandler (_go32_dpmi_registers *r) { if (!inInterrupt()) { inIdleInterrupt = 1; if (!setjmp(interruptContext)) longjmp(mainContext, 1); inIdleInterrupt = 0; } r->x.cs = origIdleSeginfo.rm_segment; r->x.ip = origIdleSeginfo.rm_offset; _go32_dpmi_simulate_fcall_iret(r); }
/* Idle interrupt handler */ static void idleInt(_go32_dpmi_registers *r) { if (!inIdle && !inInt) { inIdle = 1; if (!setjmp(intCtx)) longjmp(mainCtx, 1); inIdle = 0; } r->x.cs = origIdleSeginfo.rm_segment; r->x.ip = origIdleSeginfo.rm_offset; _go32_dpmi_simulate_fcall_iret(r); }