|  | PVPANIC DEVICE | 
|  | ============== | 
|  |  | 
|  | pvpanic device is a simulated device, through which a guest panic | 
|  | event is sent to qemu, and a QMP event is generated. This allows | 
|  | management apps (e.g. libvirt) to be notified and respond to the event. | 
|  |  | 
|  | The management app has the option of waiting for GUEST_PANICKED events, | 
|  | and/or polling for guest-panicked RunState, to learn when the pvpanic | 
|  | device has fired a panic event. | 
|  |  | 
|  | The pvpanic device can be implemented as an ISA device (using IOPORT) or as a | 
|  | PCI device. | 
|  |  | 
|  | ISA Interface | 
|  | ------------- | 
|  |  | 
|  | pvpanic exposes a single I/O port, by default 0x505. On read, the bits | 
|  | recognized by the device are set. Software should ignore bits it doesn't | 
|  | recognize. On write, the bits not recognized by the device are ignored. | 
|  | Software should set only bits both itself and the device recognize. | 
|  |  | 
|  | Bit Definition | 
|  | ~~~~~~~~~~~~~~ | 
|  |  | 
|  | bit 0 | 
|  | a guest panic has happened and should be processed by the host | 
|  | bit 1 | 
|  | a guest panic has happened and will be handled by the guest; | 
|  | the host should record it or report it, but should not affect | 
|  | the execution of the guest. | 
|  | bit 2 (to be implemented) | 
|  | a regular guest shutdown has happened and should be processed by the host | 
|  |  | 
|  | PCI Interface | 
|  | ------------- | 
|  |  | 
|  | The PCI interface is similar to the ISA interface except that it uses an MMIO | 
|  | address space provided by its BAR0, 1 byte long. Any machine with a PCI bus | 
|  | can enable a pvpanic device by adding ``-device pvpanic-pci`` to the command | 
|  | line. | 
|  |  | 
|  | ACPI Interface | 
|  | -------------- | 
|  |  | 
|  | pvpanic device is defined with ACPI ID "QEMU0001". Custom methods: | 
|  |  | 
|  | RDPT | 
|  | ~~~~ | 
|  |  | 
|  | To determine whether guest panic notification is supported. | 
|  |  | 
|  | Arguments | 
|  | None | 
|  | Return | 
|  | Returns a byte, with the same semantics as the I/O port interface. | 
|  |  | 
|  | WRPT | 
|  | ~~~~ | 
|  |  | 
|  | To send a guest panic event. | 
|  |  | 
|  | Arguments | 
|  | Arg0 is a byte to be written, with the same semantics as the I/O interface. | 
|  | Return | 
|  | None | 
|  |  | 
|  | The ACPI device will automatically refer to the right port in case it | 
|  | is modified. |