mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-11 03:24:58 -06:00
vl, qapi: offset calculation in RTC_CHANGE event reverted
Return value of qemu_timedate_diff(), used for calculation offset in QAPI 'RTC_CHANGE' event, restored to keep compatibility. Since it wasn't documented that difference is relative to host clock advancement, this change also adds important note to 'RTC_CHANGE' event description to highlight established implementation specifics. Signed-off-by: Artem Pisarenko <artem.k.pisarenko@gmail.com> Message-Id: <1fc12c77e8b7115d3842919a8b586d9cbe4efca6.1539846575.git.artem.k.pisarenko@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
eb6a520991
commit
ac0989f53d
2 changed files with 7 additions and 6 deletions
|
@ -3070,7 +3070,8 @@
|
||||||
# Emitted when the guest changes the RTC time.
|
# Emitted when the guest changes the RTC time.
|
||||||
#
|
#
|
||||||
# @offset: offset between base RTC clock (as specified by -rtc base), and
|
# @offset: offset between base RTC clock (as specified by -rtc base), and
|
||||||
# new RTC clock value
|
# new RTC clock value. Note that value will be different depending
|
||||||
|
# on clock chosen to drive RTC (specified by -rtc clock).
|
||||||
#
|
#
|
||||||
# Note: This event is rate-limited.
|
# Note: This event is rate-limited.
|
||||||
#
|
#
|
||||||
|
|
10
vl.c
10
vl.c
|
@ -789,10 +789,10 @@ void qemu_system_vmstop_request(RunState state)
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
/* RTC reference time/date access */
|
/* RTC reference time/date access */
|
||||||
static time_t qemu_ref_timedate(void)
|
static time_t qemu_ref_timedate(QEMUClockType clock)
|
||||||
{
|
{
|
||||||
time_t value = qemu_clock_get_ms(rtc_clock) / 1000;
|
time_t value = qemu_clock_get_ms(clock) / 1000;
|
||||||
switch (rtc_clock) {
|
switch (clock) {
|
||||||
case QEMU_CLOCK_REALTIME:
|
case QEMU_CLOCK_REALTIME:
|
||||||
value -= rtc_realtime_clock_offset;
|
value -= rtc_realtime_clock_offset;
|
||||||
/* no break */
|
/* no break */
|
||||||
|
@ -812,7 +812,7 @@ static time_t qemu_ref_timedate(void)
|
||||||
|
|
||||||
void qemu_get_timedate(struct tm *tm, int offset)
|
void qemu_get_timedate(struct tm *tm, int offset)
|
||||||
{
|
{
|
||||||
time_t ti = qemu_ref_timedate();
|
time_t ti = qemu_ref_timedate(rtc_clock);
|
||||||
|
|
||||||
ti += offset;
|
ti += offset;
|
||||||
|
|
||||||
|
@ -847,7 +847,7 @@ int qemu_timedate_diff(struct tm *tm)
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
return seconds - qemu_ref_timedate();
|
return seconds - qemu_ref_timedate(QEMU_CLOCK_HOST);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void configure_rtc_base_datetime(const char *startdate)
|
static void configure_rtc_base_datetime(const char *startdate)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue