mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
qemu: Introduce qemuMonitorGetRTCTime
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
de7703917d
commit
b1e2f2d84d
@ -3726,3 +3726,14 @@ qemuMonitorMigrateStartPostCopy(qemuMonitorPtr mon)
|
||||
|
||||
return qemuMonitorJSONMigrateStartPostCopy(mon);
|
||||
}
|
||||
|
||||
int
|
||||
qemuMonitorGetRTCTime(qemuMonitorPtr mon,
|
||||
struct tm *tm)
|
||||
{
|
||||
VIR_DEBUG("mon=%p", mon);
|
||||
|
||||
QEMU_CHECK_MONITOR_JSON(mon);
|
||||
|
||||
return qemuMonitorJSONGetRTCTime(mon, tm);
|
||||
}
|
||||
|
@ -933,4 +933,7 @@ int qemuMonitorMigrateIncoming(qemuMonitorPtr mon,
|
||||
|
||||
int qemuMonitorMigrateStartPostCopy(qemuMonitorPtr mon);
|
||||
|
||||
int qemuMonitorGetRTCTime(qemuMonitorPtr mon,
|
||||
struct tm *tm);
|
||||
|
||||
#endif /* QEMU_MONITOR_H */
|
||||
|
@ -6905,3 +6905,44 @@ qemuMonitorJSONMigrateStartPostCopy(qemuMonitorPtr mon)
|
||||
virJSONValueFree(reply);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
|
||||
struct tm *tm)
|
||||
{
|
||||
int ret = -1;
|
||||
virJSONValuePtr cmd;
|
||||
virJSONValuePtr reply = NULL;
|
||||
virJSONValuePtr data;
|
||||
|
||||
if (!(cmd = qemuMonitorJSONMakeCommand("qom-get",
|
||||
"s:path", "/machine",
|
||||
"s:property", "rtc-time",
|
||||
NULL)))
|
||||
return -1;
|
||||
|
||||
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (qemuMonitorJSONCheckError(cmd, reply) < 0)
|
||||
goto cleanup;
|
||||
|
||||
data = virJSONValueObjectGet(reply, "return");
|
||||
|
||||
if (virJSONValueObjectGetNumberInt(data, "tm_year", &tm->tm_year) < 0 ||
|
||||
virJSONValueObjectGetNumberInt(data, "tm_mon", &tm->tm_mon) < 0 ||
|
||||
virJSONValueObjectGetNumberInt(data, "tm_mday", &tm->tm_mday) < 0 ||
|
||||
virJSONValueObjectGetNumberInt(data, "tm_hour", &tm->tm_hour) < 0 ||
|
||||
virJSONValueObjectGetNumberInt(data, "tm_min", &tm->tm_min) < 0 ||
|
||||
virJSONValueObjectGetNumberInt(data, "tm_sec", &tm->tm_sec) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("qemu returned malformed time"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
virJSONValueFree(cmd);
|
||||
virJSONValueFree(reply);
|
||||
return ret;
|
||||
}
|
||||
|
@ -483,4 +483,7 @@ int qemuMonitorJSONMigrateIncoming(qemuMonitorPtr mon,
|
||||
int qemuMonitorJSONMigrateStartPostCopy(qemuMonitorPtr mon)
|
||||
ATTRIBUTE_NONNULL(1);
|
||||
|
||||
int qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
|
||||
struct tm *tm)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||
#endif /* QEMU_MONITOR_JSON_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user