xserver: Branch 'master'
Juliusz Chroboczek
jch at kemper.freedesktop.org
Mon Nov 6 03:30:28 EET 2006
hw/kdrive/vesa/vm86.c | 31 ++++++++++++++++---------------
1 files changed, 16 insertions(+), 15 deletions(-)
New commits:
diff-tree aa0261a98e9d5b1349b33e2639bd83c556dd4000 (from 6b2c65fdd169037c6ede250d4a8fec3d29a080ae)
Author: Juliusz Chroboczek <jch at pps.jussieu.fr>
Date: Mon Nov 6 02:29:49 2006 +0100
Improve vm86 error handling in Xvesa.
diff --git a/hw/kdrive/vesa/vm86.c b/hw/kdrive/vesa/vm86.c
index c4aadbd..d09a36d 100644
--- a/hw/kdrive/vesa/vm86.c
+++ b/hw/kdrive/vesa/vm86.c
@@ -235,13 +235,9 @@ Vm86DoInterrupt(Vm86InfoPtr vi, int num)
OsBlockSignals ();
code = vm86_loop(vi);
OsReleaseSignals ();
- if(code < 0) {
- ErrorF("vm86 failed (errno %d)\n", errno);
+ if(code != 0)
return -1;
- } else if(code != 0) {
- ErrorF("vm86 returned 0x%04X\n", code);
- return -1;
- } else
+ else
return 0;
}
@@ -269,14 +265,10 @@ Vm86DoPOST(Vm86InfoPtr vi)
OsBlockSignals ();
code = vm86_loop(vi);
OsReleaseSignals ();
- if(code < 0) {
- ErrorF("vm86 failed (errno %d)\n", errno);
- return -1;
- } else if(code != 0) {
- ErrorF("vm86 returned 0x%04X\n", code);
+ if(code != 0)
return -1;
- } else
- return 0;
+ else
+ return 0;
}
#define DEBUG_VBE 0
@@ -573,8 +565,17 @@ vm86_loop(Vm86InfoPtr vi)
Vm86Debug(vi);
return -1;
default:
- ErrorF("Unexpected result code 0x%X from vm86\n", code);
- Vm86Debug(vi);
+ if(code < 0) {
+ 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;
}
}
More information about the xorg-commit
mailing list