On 08/24/2011 04:47 AM, Avi Kivity wrote:
On 08/08/2011 10:31 PM, Anthony Liguori wrote:
We've always listened on port 501 for vgabios panic messages. In the
entire
time I've worked on QEMU, I've never actually seen a vgabios panic
message :-)

If we change the semantics of this port a little bit, it makes it
possible to
use it for more interesting use-cases. I chose this approach instead
of adding
a new I/O port because it avoids having a guest visible change.

This change allows single-byte access to port 501 and also uses the value
written to construct an exit code.

A little late to review but...


diff --git a/hw/pc.c b/hw/pc.c
index 1c9d89a..4b07b35 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -549,8 +549,7 @@ static void bochs_bios_write(void *opaque,
uint32_t addr, uint32_t val)
/* LGPL'ed VGA BIOS messages */
case 0x501:
case 0x502:
- fprintf(stderr, "VGA BIOS panic, line %d\n", val);
- exit(1);
+ exit((val<< 1) | 1);

This code (before the patch) circumvents -no-shutdown.

Indeed.  I believe that's a feature though?


Shifting val left is surprising. What's wrong with even exit codes?

Hrm, the '| 1' is wrong. My intention was to make the bottom bit of the exit code mean "if set to 0, this is an exit coming from a guest'.

I'll spin a patch.

Regards,

Anthony Liguori




Reply via email to