FreeBSD/sys/contrib/x86emu/x86emu.c
/*
 * REMARKS:
 * Handles any pending asychronous interrupts.
 */
Handles any pending asychronous interrupts.
Handles any pending asychronous interrupts .
static void
x86emu_intr_dispatch(struct x86emu *emu, uint8_t intno)
{
	if (emu->_x86emu_intrTab[intno]) {
		(*emu->_x86emu_intrTab[intno]) (emu, intno);
	} else {
		push_word(emu, (uint16_t) emu->x86.R_FLG);
		CLEAR_FLAG(F_IF);
		CLEAR_FLAG(F_TF);
		push_word(emu, emu->x86.R_CS);
		emu->x86.R_CS = fetch_word(emu, 0, intno * 4 + 2);
		push_word(emu, emu->x86.R_IP);
		emu->x86.R_IP = fetch_word(emu, 0, intno * 4);
	}
}
static void x86emu_intr_dispatch ( struct x86emu * emu , uint8_t intno ) { if ( emu -> _x86emu_intrTab [ intno ] ) { ( * emu -> _x86emu_intrTab [ intno ] ) ( emu , intno ) ; } else { push_word ( emu , ( uint16_t ) emu -> x86 . R_FLG ) ; CLEAR_FLAG ( F_IF ) ; CLEAR_FLAG ( F_TF ) ; push_word ( emu , emu -> x86 . R_CS ) ; emu -> x86 . R_CS = fetch_word ( emu , 0 , intno * 4 + 2 ) ; push_word ( emu , emu -> x86 . R_IP ) ; emu -> x86 . R_IP = fetch_word ( emu , 0 , intno * 4 ) ; } }
REMARKS:
 Handles any pending asychronous interrupts.
REMARKS : Handles any pending asychronous interrupts .