mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2018-08-28' into staging
QAPI patches for 2018-08-28
# gpg: Signature made Tue 28 Aug 2018 17:23:32 BST
# gpg: using RSA key 3870B400EB918653
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
# gpg: aka "Markus Armbruster <armbru@pond.sub.org>"
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653
* remotes/armbru/tags/pull-qapi-2018-08-28:
qapi: Add comments to aid debugging generated introspection
qapi: Minor introspect.py cleanups
qapi: Update docs for generator changes since commit 9ee86b8526
qapi: Emit a blank line before dummy declaration
qapi: Drop qapi_event_send_FOO()'s Error ** argument
qapi: Fix build_params() for empty parameter list
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
@@ -980,8 +980,7 @@ void blk_dev_change_media_cb(BlockBackend *blk, bool load, Error **errp)
|
||||
|
||||
if (tray_was_open != tray_is_open) {
|
||||
char *id = blk_get_attached_dev_id(blk);
|
||||
qapi_event_send_device_tray_moved(blk_name(blk), id, tray_is_open,
|
||||
&error_abort);
|
||||
qapi_event_send_device_tray_moved(blk_name(blk), id, tray_is_open);
|
||||
g_free(id);
|
||||
}
|
||||
}
|
||||
@@ -1665,8 +1664,7 @@ static void send_qmp_error_event(BlockBackend *blk,
|
||||
qapi_event_send_block_io_error(blk_name(blk), !!bs,
|
||||
bs ? bdrv_get_node_name(bs) : NULL, optype,
|
||||
action, blk_iostatus_is_enabled(blk),
|
||||
error == ENOSPC, strerror(error),
|
||||
&error_abort);
|
||||
error == ENOSPC, strerror(error));
|
||||
}
|
||||
|
||||
/* This is done by device models because, while the block layer knows
|
||||
@@ -1782,7 +1780,7 @@ void blk_eject(BlockBackend *blk, bool eject_flag)
|
||||
* the frontend experienced a tray event. */
|
||||
id = blk_get_attached_dev_id(blk);
|
||||
qapi_event_send_device_tray_moved(blk_name(blk), id,
|
||||
eject_flag, &error_abort);
|
||||
eject_flag);
|
||||
g_free(id);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -4659,7 +4659,7 @@ void qcow2_signal_corruption(BlockDriverState *bs, bool fatal, int64_t offset,
|
||||
*node_name != '\0', node_name,
|
||||
message, offset >= 0, offset,
|
||||
size >= 0, size,
|
||||
fatal, &error_abort);
|
||||
fatal);
|
||||
g_free(message);
|
||||
|
||||
if (fatal) {
|
||||
|
||||
+2
-2
@@ -199,7 +199,7 @@ static void quorum_report_bad(QuorumOpType type, uint64_t offset,
|
||||
}
|
||||
|
||||
qapi_event_send_quorum_report_bad(type, !!msg, msg, node_name, start_sector,
|
||||
end_sector - start_sector, &error_abort);
|
||||
end_sector - start_sector);
|
||||
}
|
||||
|
||||
static void quorum_report_failure(QuorumAIOCB *acb)
|
||||
@@ -210,7 +210,7 @@ static void quorum_report_failure(QuorumAIOCB *acb)
|
||||
BDRV_SECTOR_SIZE);
|
||||
|
||||
qapi_event_send_quorum_failure(reference, start_sector,
|
||||
end_sector - start_sector, &error_abort);
|
||||
end_sector - start_sector);
|
||||
}
|
||||
|
||||
static int quorum_vote_error(QuorumAIOCB *acb);
|
||||
|
||||
@@ -63,8 +63,7 @@ static int coroutine_fn before_write_notify(NotifierWithReturn *notifier,
|
||||
qapi_event_send_block_write_threshold(
|
||||
bs->node_name,
|
||||
amount,
|
||||
bs->write_threshold_offset,
|
||||
&error_abort);
|
||||
bs->write_threshold_offset);
|
||||
|
||||
/* autodisable to avoid flooding the monitor */
|
||||
write_threshold_disable(bs);
|
||||
|
||||
+5
-8
@@ -315,8 +315,7 @@ static void block_job_event_cancelled(Notifier *n, void *opaque)
|
||||
job->job.id,
|
||||
job->job.progress_total,
|
||||
job->job.progress_current,
|
||||
job->speed,
|
||||
&error_abort);
|
||||
job->speed);
|
||||
}
|
||||
|
||||
static void block_job_event_completed(Notifier *n, void *opaque)
|
||||
@@ -338,8 +337,7 @@ static void block_job_event_completed(Notifier *n, void *opaque)
|
||||
job->job.progress_current,
|
||||
job->speed,
|
||||
!!msg,
|
||||
msg,
|
||||
&error_abort);
|
||||
msg);
|
||||
}
|
||||
|
||||
static void block_job_event_pending(Notifier *n, void *opaque)
|
||||
@@ -351,8 +349,7 @@ static void block_job_event_pending(Notifier *n, void *opaque)
|
||||
}
|
||||
|
||||
qapi_event_send_block_job_pending(job_type(&job->job),
|
||||
job->job.id,
|
||||
&error_abort);
|
||||
job->job.id);
|
||||
}
|
||||
|
||||
static void block_job_event_ready(Notifier *n, void *opaque)
|
||||
@@ -367,7 +364,7 @@ static void block_job_event_ready(Notifier *n, void *opaque)
|
||||
job->job.id,
|
||||
job->job.progress_total,
|
||||
job->job.progress_current,
|
||||
job->speed, &error_abort);
|
||||
job->speed);
|
||||
}
|
||||
|
||||
|
||||
@@ -494,7 +491,7 @@ BlockErrorAction block_job_error_action(BlockJob *job, BlockdevOnError on_err,
|
||||
qapi_event_send_block_job_error(job->job.id,
|
||||
is_read ? IO_OPERATION_TYPE_READ :
|
||||
IO_OPERATION_TYPE_WRITE,
|
||||
action, &error_abort);
|
||||
action);
|
||||
}
|
||||
if (action == BLOCK_ERROR_ACTION_STOP) {
|
||||
job_pause(&job->job);
|
||||
|
||||
@@ -1053,7 +1053,7 @@ static int do_vm_stop(RunState state, bool send_stop)
|
||||
runstate_set(state);
|
||||
vm_state_notify(0, state);
|
||||
if (send_stop) {
|
||||
qapi_event_send_stop(&error_abort);
|
||||
qapi_event_send_stop();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2107,13 +2107,13 @@ int vm_prepare_start(void)
|
||||
* the STOP event.
|
||||
*/
|
||||
if (runstate_is_running()) {
|
||||
qapi_event_send_stop(&error_abort);
|
||||
qapi_event_send_resume(&error_abort);
|
||||
qapi_event_send_stop();
|
||||
qapi_event_send_resume();
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* We are sending this now, but the CPUs will be resumed shortly later */
|
||||
qapi_event_send_resume(&error_abort);
|
||||
qapi_event_send_resume();
|
||||
|
||||
replay_enable_events();
|
||||
cpu_enable_ticks();
|
||||
|
||||
+106
-36
@@ -1035,7 +1035,7 @@ Example:
|
||||
#ifndef EXAMPLE_QAPI_TYPES_H
|
||||
#define EXAMPLE_QAPI_TYPES_H
|
||||
|
||||
[Built-in types omitted...]
|
||||
#include "qapi/qapi-builtin-types.h"
|
||||
|
||||
typedef struct UserDefOne UserDefOne;
|
||||
|
||||
@@ -1062,7 +1062,7 @@ Example:
|
||||
UserDefOneList *arg1;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif /* EXAMPLE_QAPI_TYPES_H */
|
||||
$ cat qapi-generated/example-qapi-types.c
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
@@ -1092,6 +1092,8 @@ Example:
|
||||
visit_free(v);
|
||||
}
|
||||
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
=== Code generated for visiting QAPI types ===
|
||||
|
||||
These are the visitor functions used to walk through and convert
|
||||
@@ -1118,7 +1120,9 @@ Example:
|
||||
#ifndef EXAMPLE_QAPI_VISIT_H
|
||||
#define EXAMPLE_QAPI_VISIT_H
|
||||
|
||||
[Visitors for built-in types omitted...]
|
||||
#include "qapi/qapi-builtin-visit.h"
|
||||
#include "example-qapi-types.h"
|
||||
|
||||
|
||||
void visit_type_UserDefOne_members(Visitor *v, UserDefOne *obj, Error **errp);
|
||||
void visit_type_UserDefOne(Visitor *v, const char *name, UserDefOne **obj, Error **errp);
|
||||
@@ -1126,7 +1130,7 @@ Example:
|
||||
|
||||
void visit_type_q_obj_my_command_arg_members(Visitor *v, q_obj_my_command_arg *obj, Error **errp);
|
||||
|
||||
#endif
|
||||
#endif /* EXAMPLE_QAPI_VISIT_H */
|
||||
$ cat qapi-generated/example-qapi-visit.c
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
@@ -1219,6 +1223,8 @@ Example:
|
||||
error_propagate(errp, err);
|
||||
}
|
||||
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
=== Code generated for commands ===
|
||||
|
||||
These are the marshaling/dispatch functions for the commands defined
|
||||
@@ -1238,18 +1244,17 @@ Example:
|
||||
$ cat qapi-generated/example-qapi-commands.h
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
#ifndef EXAMPLE_QMP_COMMANDS_H
|
||||
#define EXAMPLE_QMP_COMMANDS_H
|
||||
#ifndef EXAMPLE_QAPI_COMMANDS_H
|
||||
#define EXAMPLE_QAPI_COMMANDS_H
|
||||
|
||||
#include "example-qapi-types.h"
|
||||
#include "qapi/qmp/qdict.h"
|
||||
#include "qapi/qmp/dispatch.h"
|
||||
|
||||
void example_qmp_init_marshal(QmpCommandList *cmds);
|
||||
UserDefOne *qmp_my_command(UserDefOneList *arg1, Error **errp);
|
||||
void qmp_marshal_my_command(QDict *args, QObject **ret, Error **errp);
|
||||
void example_qmp_init_marshal(QmpCommandList *cmds);
|
||||
|
||||
#endif
|
||||
#endif /* EXAMPLE_QAPI_COMMANDS_H */
|
||||
$ cat qapi-generated/example-qapi-commands.c
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
@@ -1316,6 +1321,8 @@ Example:
|
||||
qmp_marshal_my_command, QCO_NO_OPTIONS);
|
||||
}
|
||||
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
=== Code generated for events ===
|
||||
|
||||
This is the code related to events defined in the schema, providing
|
||||
@@ -1333,14 +1340,14 @@ Example:
|
||||
$ cat qapi-generated/example-qapi-events.h
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
#ifndef EXAMPLE_QAPI_EVENT_H
|
||||
#define EXAMPLE_QAPI_EVENT_H
|
||||
#ifndef EXAMPLE_QAPI_EVENTS_H
|
||||
#define EXAMPLE_QAPI_EVENTS_H
|
||||
|
||||
#include "qapi/qmp/qdict.h"
|
||||
#include "qapi/util.h"
|
||||
#include "example-qapi-types.h"
|
||||
|
||||
|
||||
void qapi_event_send_my_event(Error **errp);
|
||||
void qapi_event_send_my_event(void);
|
||||
|
||||
typedef enum example_QAPIEvent {
|
||||
EXAMPLE_QAPI_EVENT_MY_EVENT = 0,
|
||||
@@ -1348,18 +1355,17 @@ Example:
|
||||
} example_QAPIEvent;
|
||||
|
||||
#define example_QAPIEvent_str(val) \
|
||||
qapi_enum_lookup(example_QAPIEvent_lookup, (val))
|
||||
qapi_enum_lookup(&example_QAPIEvent_lookup, (val))
|
||||
|
||||
extern const char *const example_QAPIEvent_lookup[];
|
||||
extern const QEnumLookup example_QAPIEvent_lookup;
|
||||
|
||||
#endif
|
||||
#endif /* EXAMPLE_QAPI_EVENTS_H */
|
||||
$ cat qapi-generated/example-qapi-events.c
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
void qapi_event_send_my_event(Error **errp)
|
||||
void qapi_event_send_my_event(void)
|
||||
{
|
||||
QDict *qmp;
|
||||
Error *err = NULL;
|
||||
QMPEventFuncEmit emit;
|
||||
|
||||
emit = qmp_event_get_func_emit();
|
||||
@@ -1369,9 +1375,8 @@ Example:
|
||||
|
||||
qmp = qmp_event_build_dict("MY_EVENT");
|
||||
|
||||
emit(EXAMPLE_QAPI_EVENT_MY_EVENT, qmp, &err);
|
||||
emit(EXAMPLE_QAPI_EVENT_MY_EVENT, qmp);
|
||||
|
||||
error_propagate(errp, err);
|
||||
qobject_unref(qmp);
|
||||
}
|
||||
|
||||
@@ -1382,6 +1387,8 @@ Example:
|
||||
.size = EXAMPLE_QAPI_EVENT__MAX
|
||||
};
|
||||
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
=== Code generated for introspection ===
|
||||
|
||||
The following files are created:
|
||||
@@ -1396,30 +1403,93 @@ Example:
|
||||
$ cat qapi-generated/example-qapi-introspect.h
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
#ifndef EXAMPLE_QMP_INTROSPECT_H
|
||||
#define EXAMPLE_QMP_INTROSPECT_H
|
||||
#ifndef EXAMPLE_QAPI_INTROSPECT_H
|
||||
#define EXAMPLE_QAPI_INTROSPECT_H
|
||||
|
||||
extern const QLitObject qmp_schema_qlit;
|
||||
#include "qapi/qmp/qlit.h"
|
||||
|
||||
#endif
|
||||
extern const QLitObject example_qmp_schema_qlit;
|
||||
|
||||
#endif /* EXAMPLE_QAPI_INTROSPECT_H */
|
||||
$ cat qapi-generated/example-qapi-introspect.c
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
const QLitObject example_qmp_schema_qlit = QLIT_QLIST(((QLitObject[]) {
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "arg-type", QLIT_QSTR("0") },
|
||||
{ "meta-type", QLIT_QSTR("event") },
|
||||
{ "name", QLIT_QSTR("Event") },
|
||||
{ }
|
||||
{ "arg-type", QLIT_QSTR("0"), },
|
||||
{ "meta-type", QLIT_QSTR("command"), },
|
||||
{ "name", QLIT_QSTR("my-command"), },
|
||||
{ "ret-type", QLIT_QSTR("1"), },
|
||||
{}
|
||||
})),
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "members", QLIT_QLIST(((QLitObject[]) {
|
||||
{ }
|
||||
})) },
|
||||
{ "meta-type", QLIT_QSTR("object") },
|
||||
{ "name", QLIT_QSTR("0") },
|
||||
{ }
|
||||
{ "arg-type", QLIT_QSTR("2"), },
|
||||
{ "meta-type", QLIT_QSTR("event"), },
|
||||
{ "name", QLIT_QSTR("MY_EVENT"), },
|
||||
{}
|
||||
})),
|
||||
...
|
||||
{ }
|
||||
/* "0" = q_obj_my-command-arg */
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "members", QLIT_QLIST(((QLitObject[]) {
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "name", QLIT_QSTR("arg1"), },
|
||||
{ "type", QLIT_QSTR("[1]"), },
|
||||
{}
|
||||
})),
|
||||
{}
|
||||
})), },
|
||||
{ "meta-type", QLIT_QSTR("object"), },
|
||||
{ "name", QLIT_QSTR("0"), },
|
||||
{}
|
||||
})),
|
||||
/* "1" = UserDefOne */
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "members", QLIT_QLIST(((QLitObject[]) {
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "name", QLIT_QSTR("integer"), },
|
||||
{ "type", QLIT_QSTR("int"), },
|
||||
{}
|
||||
})),
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "default", QLIT_QNULL, },
|
||||
{ "name", QLIT_QSTR("string"), },
|
||||
{ "type", QLIT_QSTR("str"), },
|
||||
{}
|
||||
})),
|
||||
{}
|
||||
})), },
|
||||
{ "meta-type", QLIT_QSTR("object"), },
|
||||
{ "name", QLIT_QSTR("1"), },
|
||||
{}
|
||||
})),
|
||||
/* "2" = q_empty */
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "members", QLIT_QLIST(((QLitObject[]) {
|
||||
{}
|
||||
})), },
|
||||
{ "meta-type", QLIT_QSTR("object"), },
|
||||
{ "name", QLIT_QSTR("2"), },
|
||||
{}
|
||||
})),
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "element-type", QLIT_QSTR("1"), },
|
||||
{ "meta-type", QLIT_QSTR("array"), },
|
||||
{ "name", QLIT_QSTR("[1]"), },
|
||||
{}
|
||||
})),
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "json-type", QLIT_QSTR("int"), },
|
||||
{ "meta-type", QLIT_QSTR("builtin"), },
|
||||
{ "name", QLIT_QSTR("int"), },
|
||||
{}
|
||||
})),
|
||||
QLIT_QDICT(((QLitDictEntry[]) {
|
||||
{ "json-type", QLIT_QSTR("string"), },
|
||||
{ "meta-type", QLIT_QSTR("builtin"), },
|
||||
{ "name", QLIT_QSTR("str"), },
|
||||
{}
|
||||
})),
|
||||
{}
|
||||
}));
|
||||
|
||||
[Uninteresting stuff omitted...]
|
||||
|
||||
@@ -1890,8 +1890,7 @@ static void dump_process(DumpState *s, Error **errp)
|
||||
/* should never fail */
|
||||
assert(result);
|
||||
qapi_event_send_dump_completed(result, !!local_err, (local_err ? \
|
||||
error_get_pretty(local_err) : NULL),
|
||||
&error_abort);
|
||||
error_get_pretty(local_err) : NULL));
|
||||
qapi_free_DumpQueryResult(result);
|
||||
|
||||
error_propagate(errp, local_err);
|
||||
|
||||
+1
-1
@@ -570,7 +570,7 @@ static void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t val)
|
||||
break;
|
||||
default:
|
||||
if (sus_typ == ar->pm1.cnt.s4_val) { /* S4 request */
|
||||
qapi_event_send_suspend_disk(&error_abort);
|
||||
qapi_event_send_suspend_disk();
|
||||
qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN);
|
||||
}
|
||||
break;
|
||||
|
||||
+1
-1
@@ -160,7 +160,7 @@ static void cpu_hotplug_wr(void *opaque, hwaddr addr, uint64_t data,
|
||||
cdev = &cpu_st->devs[cpu_st->selector];
|
||||
cdev->ost_status = data;
|
||||
info = acpi_cpu_device_status(cpu_st->selector, cdev);
|
||||
qapi_event_send_acpi_device_ost(info, &error_abort);
|
||||
qapi_event_send_acpi_device_ost(info);
|
||||
qapi_free_ACPIOSTInfo(info);
|
||||
trace_cpuhp_acpi_write_ost_status(cpu_st->selector,
|
||||
cdev->ost_status);
|
||||
|
||||
@@ -161,7 +161,7 @@ static void acpi_memory_hotplug_write(void *opaque, hwaddr addr, uint64_t data,
|
||||
/* TODO: implement memory removal on guest signal */
|
||||
|
||||
info = acpi_memory_device_status(mem_st->selector, mdev);
|
||||
qapi_event_send_acpi_device_ost(info, &error_abort);
|
||||
qapi_event_send_acpi_device_ost(info);
|
||||
qapi_free_ACPIOSTInfo(info);
|
||||
break;
|
||||
case 0x14: /* set is_* fields */
|
||||
@@ -185,8 +185,7 @@ static void acpi_memory_hotplug_write(void *opaque, hwaddr addr, uint64_t data,
|
||||
if (local_err) {
|
||||
trace_mhp_acpi_pc_dimm_delete_failed(mem_st->selector);
|
||||
qapi_event_send_mem_unplug_error(dev->id,
|
||||
error_get_pretty(local_err),
|
||||
&error_abort);
|
||||
error_get_pretty(local_err));
|
||||
error_free(local_err);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -114,8 +114,7 @@ static void set_guest_connected(VirtIOSerialPort *port, int guest_connected)
|
||||
}
|
||||
|
||||
if (dev->id) {
|
||||
qapi_event_send_vserport_change(dev->id, guest_connected,
|
||||
&error_abort);
|
||||
qapi_event_send_vserport_change(dev->id, guest_connected);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -1000,8 +1000,7 @@ static void device_finalize(Object *obj)
|
||||
if (dev->pending_deleted_event) {
|
||||
g_assert(dev->canonical_path);
|
||||
|
||||
qapi_event_send_device_deleted(!!dev->id, dev->id, dev->canonical_path,
|
||||
&error_abort);
|
||||
qapi_event_send_device_deleted(!!dev->id, dev->id, dev->canonical_path);
|
||||
g_free(dev->canonical_path);
|
||||
dev->canonical_path = NULL;
|
||||
}
|
||||
|
||||
+1
-1
@@ -329,7 +329,7 @@ static void rxfilter_notify(NetClientState *nc)
|
||||
if (nc->rxfilter_notify_enabled) {
|
||||
gchar *path = object_get_canonical_path(OBJECT(n->qdev));
|
||||
qapi_event_send_nic_rx_filter_changed(!!n->netclient_name,
|
||||
n->netclient_name, path, &error_abort);
|
||||
n->netclient_name, path);
|
||||
g_free(path);
|
||||
|
||||
/* disable event notification to avoid events flooding */
|
||||
|
||||
+1
-1
@@ -118,7 +118,7 @@ static void rtas_set_time_of_day(PowerPCCPU *cpu, sPAPRMachineState *spapr,
|
||||
}
|
||||
|
||||
/* Generate a monitor event for the change */
|
||||
qapi_event_send_rtc_change(qemu_timedate_diff(&tm), &error_abort);
|
||||
qapi_event_send_rtc_change(qemu_timedate_diff(&tm));
|
||||
|
||||
host_ns = qemu_clock_get_ns(rtc_clock);
|
||||
|
||||
|
||||
@@ -635,7 +635,7 @@ static void rtc_set_time(RTCState *s)
|
||||
s->base_rtc = mktimegm(&tm);
|
||||
s->last_update = qemu_clock_get_ns(rtc_clock);
|
||||
|
||||
qapi_event_send_rtc_change(qemu_timedate_diff(&tm), &error_abort);
|
||||
qapi_event_send_rtc_change(qemu_timedate_diff(&tm));
|
||||
}
|
||||
|
||||
static void rtc_set_cmos(RTCState *s, const struct tm *tm)
|
||||
|
||||
@@ -365,8 +365,7 @@ static void virtio_balloon_set_config(VirtIODevice *vdev,
|
||||
dev->actual = le32_to_cpu(config.actual);
|
||||
if (dev->actual != oldactual) {
|
||||
qapi_event_send_balloon_change(vm_ram_size -
|
||||
((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT),
|
||||
&error_abort);
|
||||
((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT));
|
||||
}
|
||||
trace_virtio_balloon_set_config(dev->actual, oldactual);
|
||||
}
|
||||
|
||||
@@ -102,17 +102,17 @@ void watchdog_perform_action(void)
|
||||
{
|
||||
switch (watchdog_action) {
|
||||
case WATCHDOG_ACTION_RESET: /* same as 'system_reset' in monitor */
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_RESET, &error_abort);
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_RESET);
|
||||
qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
|
||||
break;
|
||||
|
||||
case WATCHDOG_ACTION_SHUTDOWN: /* same as 'system_powerdown' in monitor */
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_SHUTDOWN, &error_abort);
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_SHUTDOWN);
|
||||
qemu_system_powerdown_request();
|
||||
break;
|
||||
|
||||
case WATCHDOG_ACTION_POWEROFF: /* same as 'quit' command in monitor */
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_POWEROFF, &error_abort);
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_POWEROFF);
|
||||
exit(0);
|
||||
|
||||
case WATCHDOG_ACTION_PAUSE: /* same as 'stop' command in monitor */
|
||||
@@ -120,22 +120,21 @@ void watchdog_perform_action(void)
|
||||
* you would get a deadlock. Bypass the problem.
|
||||
*/
|
||||
qemu_system_vmstop_request_prepare();
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_PAUSE, &error_abort);
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_PAUSE);
|
||||
qemu_system_vmstop_request(RUN_STATE_WATCHDOG);
|
||||
break;
|
||||
|
||||
case WATCHDOG_ACTION_DEBUG:
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_DEBUG, &error_abort);
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_DEBUG);
|
||||
fprintf(stderr, "watchdog: timer fired\n");
|
||||
break;
|
||||
|
||||
case WATCHDOG_ACTION_NONE:
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_NONE, &error_abort);
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_NONE);
|
||||
break;
|
||||
|
||||
case WATCHDOG_ACTION_INJECT_NMI:
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_INJECT_NMI,
|
||||
&error_abort);
|
||||
qapi_event_send_watchdog(WATCHDOG_ACTION_INJECT_NMI);
|
||||
nmi_monitor_handle(0, NULL);
|
||||
break;
|
||||
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
#ifndef QMP_EVENT_H
|
||||
#define QMP_EVENT_H
|
||||
|
||||
|
||||
typedef void (*QMPEventFuncEmit)(unsigned event, QDict *dict, Error **errp);
|
||||
typedef void (*QMPEventFuncEmit)(unsigned event, QDict *dict);
|
||||
|
||||
void qmp_event_set_func_emit(QMPEventFuncEmit emit);
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ static void job_state_transition(Job *job, JobStatus s1)
|
||||
job->status = s1;
|
||||
|
||||
if (!job_is_internal(job) && s1 != s0) {
|
||||
qapi_event_send_job_status_change(job->id, job->status, &error_abort);
|
||||
qapi_event_send_job_status_change(job->id, job->status);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user