Improve vm86 error handling in Xvesa.
This commit is contained in:
parent
6b2c65fdd1
commit
aa0261a98e
|
@ -235,13 +235,9 @@ Vm86DoInterrupt(Vm86InfoPtr vi, int num)
|
||||||
OsBlockSignals ();
|
OsBlockSignals ();
|
||||||
code = vm86_loop(vi);
|
code = vm86_loop(vi);
|
||||||
OsReleaseSignals ();
|
OsReleaseSignals ();
|
||||||
if(code < 0) {
|
if(code != 0)
|
||||||
ErrorF("vm86 failed (errno %d)\n", errno);
|
|
||||||
return -1;
|
return -1;
|
||||||
} else if(code != 0) {
|
else
|
||||||
ErrorF("vm86 returned 0x%04X\n", code);
|
|
||||||
return -1;
|
|
||||||
} else
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,14 +265,10 @@ Vm86DoPOST(Vm86InfoPtr vi)
|
||||||
OsBlockSignals ();
|
OsBlockSignals ();
|
||||||
code = vm86_loop(vi);
|
code = vm86_loop(vi);
|
||||||
OsReleaseSignals ();
|
OsReleaseSignals ();
|
||||||
if(code < 0) {
|
if(code != 0)
|
||||||
ErrorF("vm86 failed (errno %d)\n", errno);
|
|
||||||
return -1;
|
return -1;
|
||||||
} else if(code != 0) {
|
else
|
||||||
ErrorF("vm86 returned 0x%04X\n", code);
|
return 0;
|
||||||
return -1;
|
|
||||||
} else
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEBUG_VBE 0
|
#define DEBUG_VBE 0
|
||||||
|
@ -573,8 +565,17 @@ vm86_loop(Vm86InfoPtr vi)
|
||||||
Vm86Debug(vi);
|
Vm86Debug(vi);
|
||||||
return -1;
|
return -1;
|
||||||
default:
|
default:
|
||||||
ErrorF("Unexpected result code 0x%X from vm86\n", code);
|
if(code < 0) {
|
||||||
Vm86Debug(vi);
|
if(errno == ENOSYS) {
|
||||||
|
ErrorF("No vm86 support. Are you running on AMD64?\n");
|
||||||
|
} else {
|
||||||
|
ErrorF("vm86 failed (errno = %d).\n", errno);
|
||||||
|
Vm86Debug(vi);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ErrorF("Unexpected result code 0x%X from vm86\n", code);
|
||||||
|
Vm86Debug(vi);
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue