]> git.proxmox.com Git - mirror_qemu.git/blobdiff - qapi/qmp-event.c
qapi/block-core: turn BlockJobInfo into a union
[mirror_qemu.git] / qapi / qmp-event.c
index 8bba165bfb770985df55b67ca46e1f785d8caf3b..0fe0d0a5a6e5abdf318046dcd7a7f9d55921d144 100644 (file)
 
 #include "qemu/osdep.h"
 
-#include "qemu-common.h"
 #include "qapi/qmp-event.h"
 #include "qapi/qmp/qstring.h"
+#include "qapi/qmp/qdict.h"
 #include "qapi/qmp/qjson.h"
 
-static QMPEventFuncEmit qmp_emit;
-
-void qmp_event_set_func_emit(QMPEventFuncEmit emit)
-{
-    qmp_emit = emit;
-}
-
-QMPEventFuncEmit qmp_event_get_func_emit(void)
-{
-    return qmp_emit;
-}
-
 static void timestamp_put(QDict *qdict)
 {
-    int err;
-    QObject *obj;
-    qemu_timeval tv;
-    int64_t sec, usec;
-
-    err = qemu_gettimeofday(&tv);
-    if (err < 0) {
-        /* Put -1 to indicate failure of getting host time */
-        sec = -1;
-        usec = -1;
-    } else {
-        sec = tv.tv_sec;
-        usec = tv.tv_usec;
-    }
+    QDict *ts;
+    int64_t rt = g_get_real_time();
 
-    obj = qobject_from_jsonf("{ 'seconds': %" PRId64 ", "
-                             "'microseconds': %" PRId64 " }",
-                             sec, usec);
-    qdict_put_obj(qdict, "timestamp", obj);
+    ts = qdict_from_jsonf_nofail("{ 'seconds': %lld, 'microseconds': %lld }",
+                                 (long long)rt / G_USEC_PER_SEC,
+                                 (long long)rt % G_USEC_PER_SEC);
+    qdict_put(qdict, "timestamp", ts);
 }
 
 /*
@@ -60,7 +36,7 @@ static void timestamp_put(QDict *qdict)
 QDict *qmp_event_build_dict(const char *event_name)
 {
     QDict *dict = qdict_new();
-    qdict_put(dict, "event", qstring_from_str(event_name));
+    qdict_put_str(dict, "event", event_name);
     timestamp_put(dict);
     return dict;
 }