blob: a90fbca72b7965383b1733ef1b85e4e1220685c9 [file] [log] [blame]
Hu Taob42ffe62013-04-26 11:24:45 +08001PVPANIC DEVICE
2==============
3
4pvpanic device is a simulated ISA device, through which a guest panic
5event is sent to qemu, and a QMP event is generated. This allows
6management apps (e.g. libvirt) to be notified and respond to the event.
7
8The management app has the option of waiting for GUEST_PANICKED events,
9and/or polling for guest-panicked RunState, to learn when the pvpanic
10device has fired a panic event.
11
12ISA Interface
13-------------
14
15pvpanic exposes a single I/O port, by default 0x505. On read, the bits
16recognized by the device are set. Software should ignore bits it doesn't
17recognize. On write, the bits not recognized by the device are ignored.
18Software should set only bits both itself and the device recognize.
zhenwei pi600d7b42020-01-14 10:31:01 +080019
20Bit Definition
21--------------
zhenwei pi7dc58de2020-01-14 10:31:02 +080022bit 0: a guest panic has happened and should be processed by the host
23bit 1: a guest panic has happened and will be handled by the guest;
24 the host should record it or report it, but should not affect
25 the execution of the guest.
Hu Taob42ffe62013-04-26 11:24:45 +080026
27ACPI Interface
28--------------
29
30pvpanic device is defined with ACPI ID "QEMU0001". Custom methods:
31
32RDPT: To determine whether guest panic notification is supported.
33Arguments: None
zhenwei pi7dc58de2020-01-14 10:31:02 +080034Return: Returns a byte, with the same semantics as the I/O port
35 interface.
Hu Taob42ffe62013-04-26 11:24:45 +080036
37WRPT: To send a guest panic event
zhenwei pi7dc58de2020-01-14 10:31:02 +080038Arguments: Arg0 is a byte to be written, with the same semantics as
39 the I/O interface.
Hu Taob42ffe62013-04-26 11:24:45 +080040Return: None
41
42The ACPI device will automatically refer to the right port in case it
43is modified.