All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] ppc: spapr-rtas - implement os-term rtas call
@ 2014-06-12 12:09 Nikunj A Dadhania
  2014-06-17  9:13 ` Alexander Graf
  0 siblings, 1 reply; 15+ messages in thread
From: Nikunj A Dadhania @ 2014-06-12 12:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: aik, qemu-ppc, agraf, nikunj

PAPR compliant guest calls this in absence of kdump. After
receiving this call qemu could trigger a guest dump. This guest dump
can be used to analyse using crash tool.

Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
---

v2: indentation fixes

 hw/ppc/spapr_rtas.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index ea4a2b2..f030e73 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -29,6 +29,8 @@
 #include "sysemu/char.h"
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
+#include "qapi/qmp/qjson.h"
+#include "monitor/monitor.h"
 
 #include "hw/ppc/spapr.h"
 #include "hw/ppc/spapr_vio.h"
@@ -267,6 +269,34 @@ static void rtas_ibm_set_system_parameter(PowerPCCPU *cpu,
     rtas_st(rets, 0, ret);
 }
 
+static void rtas_ibm_os_term(PowerPCCPU *cpu,
+                             sPAPREnvironment *spapr,
+                             uint32_t token, uint32_t nargs,
+                             target_ulong args,
+                             uint32_t nret, target_ulong rets)
+{
+    target_ulong ret = 0;
+    QObject *data;
+
+    data = qobject_from_jsonf("{ 'action': %s }", "pause");
+    monitor_protocol_event(QEVENT_GUEST_PANICKED, data);
+    qobject_decref(data);
+    vm_stop(RUN_STATE_GUEST_PANICKED);
+
+    rtas_st(rets, 0, ret);
+}
+
+static void rtas_ibm_ext_os_term(PowerPCCPU *cpu,
+                                 sPAPREnvironment *spapr,
+                                 uint32_t token, uint32_t nargs,
+                                 target_ulong args,
+                                 uint32_t nret, target_ulong rets)
+{
+    target_ulong ret = 0;
+
+    rtas_st(rets, 0, ret);
+}
+
 static struct rtas_call {
     const char *name;
     spapr_rtas_fn fn;
@@ -392,6 +422,8 @@ static void core_rtas_register_types(void)
                         rtas_ibm_get_system_parameter);
     spapr_rtas_register("ibm,set-system-parameter",
                         rtas_ibm_set_system_parameter);
+    spapr_rtas_register("ibm,os-term", rtas_ibm_os_term);
+    spapr_rtas_register("ibm,extended-os-term", rtas_ibm_ext_os_term);
 }
 
 type_init(core_rtas_register_types)
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2014-06-26  9:23 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-12 12:09 [Qemu-devel] [PATCH v2] ppc: spapr-rtas - implement os-term rtas call Nikunj A Dadhania
2014-06-17  9:13 ` Alexander Graf
2014-06-17  9:30   ` Nikunj A Dadhania
2014-06-17  9:53     ` Alexander Graf
2014-06-17  9:59       ` Nikunj A Dadhania
2014-06-17 10:02         ` Alexander Graf
2014-06-17 10:19           ` Nikunj A Dadhania
2014-06-25  4:36             ` Nikunj A Dadhania
2014-06-25 11:03               ` Alexander Graf
2014-06-25 11:27                 ` Nikunj A Dadhania
2014-06-25 11:32                   ` Alexander Graf
2014-06-26  7:55                     ` Nikunj A Dadhania
2014-06-26  8:04                       ` Alexander Graf
2014-06-26  9:05                         ` Nikunj A Dadhania
2014-06-26  9:22                           ` Alexander Graf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.