Merge tag 'pull-ppc-20220526' of https://gitlab.com/danielhb/qemu into staging
[qemu.git] / include / hw / misc / pvpanic.h
1 /*
2 * QEMU simulated pvpanic device.
3 *
4 * Copyright Fujitsu, Corp. 2013
5 *
6 * Authors:
7 * Wen Congyang <wency@cn.fujitsu.com>
8 * Hu Tao <hutao@cn.fujitsu.com>
9 *
10 * This work is licensed under the terms of the GNU GPL, version 2 or later.
11 * See the COPYING file in the top-level directory.
12 *
13 */
14
15 #ifndef HW_MISC_PVPANIC_H
16 #define HW_MISC_PVPANIC_H
17
18 #include "qom/object.h"
19
20 #define TYPE_PVPANIC_ISA_DEVICE "pvpanic"
21 #define TYPE_PVPANIC_PCI_DEVICE "pvpanic-pci"
22
23 #define PVPANIC_IOPORT_PROP "ioport"
24
25 /*
26 * PVPanicState for any device type
27 */
28 typedef struct PVPanicState PVPanicState;
29 struct PVPanicState {
30 MemoryRegion mr;
31 uint8_t events;
32 };
33
34 void pvpanic_setup_io(PVPanicState *s, DeviceState *dev, unsigned size);
35
36 static inline uint16_t pvpanic_port(void)
37 {
38 Object *o = object_resolve_path_type("", TYPE_PVPANIC_ISA_DEVICE, NULL);
39 if (!o) {
40 return 0;
41 }
42 return object_property_get_uint(o, PVPANIC_IOPORT_PROP, NULL);
43 }
44
45 #endif