Lines Matching refs:intno
598 static int exeption_has_error_code(int intno) in exeption_has_error_code() argument
600 switch(intno) { in exeption_has_error_code()
657 static void do_interrupt_protected(int intno, int is_int, int error_code, in do_interrupt_protected() argument
669 has_error_code = exeption_has_error_code(intno); in do_interrupt_protected()
676 if (intno * 8 + 7 > dt->limit) in do_interrupt_protected()
677 raise_exception_err(EXCP0D_GPF, intno * 8 + 2); in do_interrupt_protected()
678 ptr = dt->base + intno * 8; in do_interrupt_protected()
687 raise_exception_err(EXCP0B_NOSEG, intno * 8 + 2); in do_interrupt_protected()
688 switch_tss(intno * 8, e1, e2, SWITCH_TSS_CALL, old_eip); in do_interrupt_protected()
714 raise_exception_err(EXCP0D_GPF, intno * 8 + 2); in do_interrupt_protected()
721 raise_exception_err(EXCP0D_GPF, intno * 8 + 2); in do_interrupt_protected()
724 raise_exception_err(EXCP0B_NOSEG, intno * 8 + 2); in do_interrupt_protected()
882 static void do_interrupt64(int intno, int is_int, int error_code, in do_interrupt64() argument
894 has_error_code = exeption_has_error_code(intno); in do_interrupt64()
901 if (intno * 16 + 15 > dt->limit) in do_interrupt64()
902 raise_exception_err(EXCP0D_GPF, intno * 16 + 2); in do_interrupt64()
903 ptr = dt->base + intno * 16; in do_interrupt64()
914 raise_exception_err(EXCP0D_GPF, intno * 16 + 2); in do_interrupt64()
921 raise_exception_err(EXCP0D_GPF, intno * 16 + 2); in do_interrupt64()
924 raise_exception_err(EXCP0B_NOSEG, intno * 16 + 2); in do_interrupt64()
1127 static void do_interrupt_real(int intno, int is_int, int error_code, in do_interrupt_real() argument
1138 if (intno * 4 + 3 > dt->limit) in do_interrupt_real()
1139 raise_exception_err(EXCP0D_GPF, intno * 8 + 2); in do_interrupt_real()
1140 ptr = dt->base + intno * 4; in do_interrupt_real()
1164 void do_interrupt_user(int intno, int is_int, int error_code, in do_interrupt_user() argument
1178 ptr = dt->base + (intno << shift); in do_interrupt_user()
1185 raise_exception_err(EXCP0D_GPF, (intno << shift) + 2); in do_interrupt_user()
1195 static void handle_even_inj(int intno, int is_int, int error_code, in handle_even_inj() argument
1205 event_inj = intno | type | SVM_EVTINJ_VALID; in handle_even_inj()
1206 if (!rm && exeption_has_error_code(intno)) { in handle_even_inj()
1220 void do_interrupt(int intno, int is_int, int error_code, in do_interrupt() argument
1227 count, intno, error_code, is_int, in do_interrupt()
1232 if (intno == 0x0e) { in do_interrupt()
1257 handle_even_inj(intno, is_int, error_code, is_hw, 0); in do_interrupt()
1261 do_interrupt64(intno, is_int, error_code, next_eip, is_hw); in do_interrupt()
1265 do_interrupt_protected(intno, is_int, error_code, next_eip, is_hw); in do_interrupt()
1270 handle_even_inj(intno, is_int, error_code, is_hw, 1); in do_interrupt()
1272 do_interrupt_real(intno, is_int, error_code, next_eip); in do_interrupt()
1291 static int check_exception(int intno, int *error_code) in check_exception() argument
1296 int second_contributory = intno == 0 || in check_exception()
1297 (intno >= 10 && intno <= 13); in check_exception()
1300 env->old_exception, intno); in check_exception()
1316 (second_contributory || (intno == EXCP0E_PAGE)))) { in check_exception()
1317 intno = EXCP08_DBLE; in check_exception()
1321 if (second_contributory || (intno == EXCP0E_PAGE) || in check_exception()
1322 (intno == EXCP08_DBLE)) in check_exception()
1323 env->old_exception = intno; in check_exception()
1325 return intno; in check_exception()
1334 static void QEMU_NORETURN raise_interrupt(int intno, int is_int, int error_code, in raise_interrupt() argument
1338 helper_svm_check_intercept_param(SVM_EXIT_EXCP_BASE + intno, error_code); in raise_interrupt()
1339 intno = check_exception(intno, &error_code); in raise_interrupt()
1344 env->exception_index = intno; in raise_interrupt()
4730 void helper_raise_interrupt(int intno, int next_eip_addend) in helper_raise_interrupt() argument
4732 raise_interrupt(intno, 1, 0, next_eip_addend); in helper_raise_interrupt()