Merge tag 'pull-loongarch-20241016' of https://gitlab.com/gaosong/qemu into staging
[qemu/armbru.git] / docs / specs / pvpanic.rst
blob61a80480edb8be693b5e1b6393ccca251bc3d843
1 PVPANIC DEVICE
2 ==============
4 pvpanic device is a simulated device, through which a guest panic
5 event is sent to qemu, and a QMP event is generated. This allows
6 management apps (e.g. libvirt) to be notified and respond to the event.
8 The management app has the option of waiting for GUEST_PANICKED events,
9 and/or polling for guest-panicked RunState, to learn when the pvpanic
10 device has fired a panic event.
12 The pvpanic device can be implemented as an ISA device (using IOPORT) or as a
13 PCI device.
15 ISA Interface
16 -------------
18 pvpanic exposes a single I/O port, by default 0x505. On read, the bits
19 recognized by the device are set. Software should ignore bits it doesn't
20 recognize. On write, the bits not recognized by the device are ignored.
21 Software should set only bits both itself and the device recognize.
23 Bit Definition
24 ~~~~~~~~~~~~~~
26 bit 0
27   a guest panic has happened and should be processed by the host
28 bit 1
29   a guest panic has happened and will be handled by the guest;
30   the host should record it or report it, but should not affect
31   the execution of the guest.
32 bit 2
33   a regular guest shutdown has happened and should be processed by the host
35 PCI Interface
36 -------------
38 The PCI interface is similar to the ISA interface except that it uses an MMIO
39 address space provided by its BAR0, 1 byte long. Any machine with a PCI bus
40 can enable a pvpanic device by adding ``-device pvpanic-pci`` to the command
41 line.
43 ACPI Interface
44 --------------
46 pvpanic device is defined with ACPI ID "QEMU0001". Custom methods:
48 RDPT
49 ~~~~
51 To determine whether guest panic notification is supported.
53 Arguments
54   None
55 Return
56   Returns a byte, with the same semantics as the I/O port interface.
58 WRPT
59 ~~~~
61 To send a guest panic event.
63 Arguments
64   Arg0 is a byte to be written, with the same semantics as the I/O interface.
65 Return
66   None
68 The ACPI device will automatically refer to the right port in case it
69 is modified.