Home | History | Annotate | Download | only in target-i386

Lines Matching full:intno

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