diff options
author | Mihai Carabas | 2021-01-27 15:59:27 +0100 |
---|---|---|
committer | Peter Maydell | 2021-01-29 11:47:28 +0100 |
commit | 677726ef1ebc567e4f5081f68623debc68f958d9 (patch) | |
tree | 2dc3e9c9d2963d99f0906600b5bc7c6c56ba507b /include/hw/misc/pvpanic.h | |
parent | hvf: Add hypervisor entitlement to output binaries (diff) | |
download | qemu-677726ef1ebc567e4f5081f68623debc68f958d9.tar.gz qemu-677726ef1ebc567e4f5081f68623debc68f958d9.tar.xz qemu-677726ef1ebc567e4f5081f68623debc68f958d9.zip |
hw/misc/pvpanic: split-out generic and bus dependent code
To ease the PCI device addition in next patches, split the code as follows:
- generic code (read/write/setup) is being kept in pvpanic.c
- ISA dependent code moved to pvpanic-isa.c
Also, rename:
- ISA_PVPANIC_DEVICE -> PVPANIC_ISA_DEVICE.
- TYPE_PVPANIC -> TYPE_PVPANIC_ISA.
- MemoryRegion io -> mr.
- pvpanic_ioport_* in pvpanic_*.
Update the build system with the new files and config structure.
Signed-off-by: Mihai Carabas <mihai.carabas@oracle.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include/hw/misc/pvpanic.h')
-rw-r--r-- | include/hw/misc/pvpanic.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/include/hw/misc/pvpanic.h b/include/hw/misc/pvpanic.h index ae0c8188ce..abc9dde34b 100644 --- a/include/hw/misc/pvpanic.h +++ b/include/hw/misc/pvpanic.h @@ -17,13 +17,32 @@ #include "qom/object.h" -#define TYPE_PVPANIC "pvpanic" +#define TYPE_PVPANIC_ISA_DEVICE "pvpanic" #define PVPANIC_IOPORT_PROP "ioport" +/* The bit of supported pv event, TODO: include uapi header and remove this */ +#define PVPANIC_F_PANICKED 0 +#define PVPANIC_F_CRASHLOADED 1 + +/* The pv event value */ +#define PVPANIC_PANICKED (1 << PVPANIC_F_PANICKED) +#define PVPANIC_CRASHLOADED (1 << PVPANIC_F_CRASHLOADED) + +/* + * PVPanicState for any device type + */ +typedef struct PVPanicState PVPanicState; +struct PVPanicState { + MemoryRegion mr; + uint8_t events; +}; + +void pvpanic_setup_io(PVPanicState *s, DeviceState *dev, unsigned size); + static inline uint16_t pvpanic_port(void) { - Object *o = object_resolve_path_type("", TYPE_PVPANIC, NULL); + Object *o = object_resolve_path_type("", TYPE_PVPANIC_ISA_DEVICE, NULL); if (!o) { return 0; } |