Revision f55761a0
b/target-i386/op_helper.c | ||
---|---|---|
1251 | 1251 |
} |
1252 | 1252 |
} |
1253 | 1253 |
|
1254 |
/* This should come from sysemu.h - if we could include it here... */ |
|
1255 |
void qemu_system_reset_request(void); |
|
1256 |
|
|
1254 | 1257 |
/* |
1255 | 1258 |
* Check nested exceptions and change to double or triple fault if |
1256 | 1259 |
* needed. It should only be called, if this is not an interrupt. |
... | ... | |
1267 | 1270 |
qemu_log_mask(CPU_LOG_INT, "check_exception old: 0x%x new 0x%x\n", |
1268 | 1271 |
env->old_exception, intno); |
1269 | 1272 |
|
1270 |
if (env->old_exception == EXCP08_DBLE) |
|
1271 |
cpu_abort(env, "triple fault"); |
|
1273 |
#if !defined(CONFIG_USER_ONLY) |
|
1274 |
if (env->old_exception == EXCP08_DBLE) { |
|
1275 |
if (env->hflags & HF_SVMI_MASK) |
|
1276 |
helper_vmexit(SVM_EXIT_SHUTDOWN, 0); /* does not return */ |
|
1277 |
|
|
1278 |
if (loglevel & CPU_LOG_RESET) |
|
1279 |
fprintf(logfile, "Triple fault\n"); |
|
1280 |
|
|
1281 |
qemu_system_reset_request(); |
|
1282 |
return EXCP_HLT; |
|
1283 |
} |
|
1284 |
#endif |
|
1272 | 1285 |
|
1273 | 1286 |
if ((first_contributory && second_contributory) |
1274 | 1287 |
|| (env->old_exception == EXCP0E_PAGE && |
Also available in: Unified diff