summaryrefslogtreecommitdiffstats
path: root/include/hw
diff options
context:
space:
mode:
authorTyrel Datwyler2015-05-07 07:33:50 +0200
committerAlexander Graf2015-06-03 23:56:53 +0200
commit79853e18d904b0a4bcef62701d48559688007c93 (patch)
treed55e1583422d1888c5e7d6f696fac3c33b1d9c8a /include/hw
parentspapr_events: re-use EPOW event infrastructure for hotplug events (diff)
downloadqemu-79853e18d904b0a4bcef62701d48559688007c93.tar.gz
qemu-79853e18d904b0a4bcef62701d48559688007c93.tar.xz
qemu-79853e18d904b0a4bcef62701d48559688007c93.zip
spapr_events: event-scan RTAS interface
We don't actually rely on this interface to surface hotplug events, and instead rely on the similar-but-interrupt-driven check-exception RTAS interface used for EPOW events. However, the existence of this interface is needed to ensure guest kernels initialize the event-reporting interfaces which will in turn be used by userspace tools to handle these events, so we implement this interface here. Since events surfaced by this call are mutually exclusive to those surfaced via check-exception, we also update the RTAS event queue code to accept a boolean to mark/filter for events accordingly. Events of this sort are not currently generated by QEMU, but the interface has been tested by surfacing hotplug events via event-scan in place of check-exception. Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'include/hw')
-rw-r--r--include/hw/ppc/spapr.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 71b3e0876b..7b4b1bb3d7 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -514,6 +514,8 @@ int spapr_rtas_device_tree_setup(void *fdt, hwaddr rtas_addr,
#define RTAS_ERROR_LOG_MAX 2048
+#define RTAS_EVENT_SCAN_RATE 1
+
typedef struct sPAPRTCETable sPAPRTCETable;
#define TYPE_SPAPR_TCE_TABLE "spapr-tce-table"
@@ -539,6 +541,7 @@ sPAPRTCETable *spapr_tce_find_by_liobn(target_ulong liobn);
struct sPAPREventLogEntry {
int log_type;
+ bool exception;
void *data;
QTAILQ_ENTRY(sPAPREventLogEntry) next;
};