On 06/10/2014 05:56 PM, Nikunj A Dadhania wrote: > 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 <nik...@linux.vnet.ibm.com> > --- > hw/ppc/spapr_rtas.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c > index ea4a2b2..5ed8a0e 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)
Indentation is broken here, should be 1 char right to align to "(". > +{ > + 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) Same here, shift 5 chars to the right > +{ > + target_ulong ret = 0; > + > + rtas_st(rets, 0, ret); > +} > + > static struct rtas_call { > const char *name; > spapr_rtas_fn fn; > @@ -392,6 +422,10 @@ 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); While we are here, why to wrap these two? > } > > type_init(core_rtas_register_types) > -- Alexey