|  | /* | 
|  | * QMP Event related | 
|  | * | 
|  | * Copyright (c) 2014 Wenchao Xia | 
|  | * | 
|  | * Authors: | 
|  | *  Wenchao Xia   <wenchaoqemu@gmail.com> | 
|  | * | 
|  | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. | 
|  | * See the COPYING.LIB file in the top-level directory. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #include "qemu/osdep.h" | 
|  |  | 
|  | #include "qapi/qmp-event.h" | 
|  | #include "qapi/qmp/qstring.h" | 
|  | #include "qapi/qmp/qdict.h" | 
|  | #include "qapi/qmp/qjson.h" | 
|  |  | 
|  | static void timestamp_put(QDict *qdict) | 
|  | { | 
|  | QDict *ts; | 
|  | int64_t rt = g_get_real_time(); | 
|  |  | 
|  | 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); | 
|  | } | 
|  |  | 
|  | /* | 
|  | * Build a QDict, then fill event name and time stamp, caller should free the | 
|  | * QDict after usage. | 
|  | */ | 
|  | QDict *qmp_event_build_dict(const char *event_name) | 
|  | { | 
|  | QDict *dict = qdict_new(); | 
|  | qdict_put_str(dict, "event", event_name); | 
|  | timestamp_put(dict); | 
|  | return dict; | 
|  | } |