Commit e010ad8f authored by Wenchao Xia's avatar Wenchao Xia Committed by Luiz Capitulino
Browse files

qapi event: convert RTC_CHANGE



This patch also eliminates build time warning caused by no caller
of monitor_qapi_event_throttle().

Signed-off-by: default avatarWenchao Xia <wenchaoqemu@gmail.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
parent 7a906f7f
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -274,22 +274,6 @@ Example:
     "data": { "node-name": "1.raw", "sector-num": 345435, "sector-count": 5 },
     "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }

RTC_CHANGE
----------

Emitted when the guest changes the RTC time.

Data:

- "offset": Offset between base RTC clock (as specified by -rtc base), and
new RTC clock value (json-number)

Example:

{ "event": "RTC_CHANGE",
    "data": { "offset": 78 },
    "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }

SPICE_CONNECTED, SPICE_DISCONNECTED
-----------------------------------

+2 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@

#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_vio.h"
#include "qapi-event.h"

#include <libfdt.h>

@@ -93,7 +94,7 @@ static void rtas_set_time_of_day(PowerPCCPU *cpu, sPAPREnvironment *spapr,
    tm.tm_sec = rtas_ld(args, 5);

    /* Just generate a monitor event for the change */
    rtc_change_mon_event(&tm);
    qapi_event_send_rtc_change(qemu_timedate_diff(&tm), &error_abort);
    spapr->rtc_offset = qemu_timedate_diff(&tm);

    rtas_st(rets, 0, RTAS_OUT_SUCCESS);
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include "sysemu/sysemu.h"
#include "hw/timer/mc146818rtc.h"
#include "qapi/visitor.h"
#include "qapi-event.h"

#ifdef TARGET_I386
#include "hw/i386/apic.h"
@@ -530,7 +531,7 @@ static void rtc_set_time(RTCState *s)
    s->base_rtc = mktimegm(&tm);
    s->last_update = qemu_clock_get_ns(rtc_clock);

    rtc_change_mon_event(&tm);
    qapi_event_send_rtc_change(qemu_timedate_diff(&tm), &error_abort);
}

static void rtc_set_cmos(RTCState *s, const struct tm *tm)
+0 −2
Original line number Diff line number Diff line
@@ -202,8 +202,6 @@ void do_usb_add(Monitor *mon, const QDict *qdict);
void do_usb_del(Monitor *mon, const QDict *qdict);
void usb_info(Monitor *mon, const QDict *qdict);

void rtc_change_mon_event(struct tm *tm);

void add_boot_device_path(int32_t bootindex, DeviceState *dev,
                          const char *suffix);
char *get_boot_devices_list(size_t *size, bool ignore_suffixes);
+3 −1
Original line number Diff line number Diff line
@@ -614,6 +614,9 @@ monitor_qapi_event_throttle(QAPIEvent event, int64_t rate)

static void monitor_qapi_event_init(void)
{
    /* Limit guest-triggerable events to 1 per second */
    monitor_qapi_event_throttle(QAPI_EVENT_RTC_CHANGE, 1000);

    qmp_event_set_func_emit(monitor_qapi_event_queue);
}

@@ -740,7 +743,6 @@ monitor_protocol_event_throttle(MonitorEvent event,
static void monitor_protocol_event_init(void)
{
    /* Limit RTC & BALLOON events to 1 per second */
    monitor_protocol_event_throttle(QEVENT_RTC_CHANGE, 1000);
    monitor_protocol_event_throttle(QEVENT_BALLOON_CHANGE, 1000);
    monitor_protocol_event_throttle(QEVENT_WATCHDOG, 1000);
    /* limit the rate of quorum events to avoid hammering the management */
Loading