Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file holds some functions that do not need to be generated. Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
- Loading branch information
Wenchao Xia
authored and
Luiz Capitulino
committed
Jun 23, 2014
1 parent
be13d46
commit f882126
Showing
3 changed files
with
102 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/* | ||
* 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. | ||
* | ||
*/ | ||
|
||
#ifndef QMP_EVENT_H | ||
#define QMP_EVENT_H | ||
|
||
#include "qapi/error.h" | ||
#include "qapi/qmp/qdict.h" | ||
|
||
typedef void (*QMPEventFuncEmit)(unsigned event, QDict *dict, Error **errp); | ||
|
||
void qmp_event_set_func_emit(QMPEventFuncEmit emit); | ||
|
||
QMPEventFuncEmit qmp_event_get_func_emit(void); | ||
|
||
QDict *qmp_event_build_dict(const char *event_name); | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
/* | ||
* 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 <inttypes.h> | ||
|
||
#include "qemu-common.h" | ||
#include "qapi/qmp-event.h" | ||
#include "qapi/qmp/qstring.h" | ||
#include "qapi/qmp/qjson.h" | ||
|
||
#ifdef _WIN32 | ||
#include "sysemu/os-win32.h" | ||
#endif | ||
|
||
#ifdef CONFIG_POSIX | ||
#include "sysemu/os-posix.h" | ||
#endif | ||
|
||
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; | ||
} | ||
|
||
obj = qobject_from_jsonf("{ 'seconds': %" PRId64 ", " | ||
"'microseconds': %" PRId64 " }", | ||
sec, usec); | ||
qdict_put_obj(qdict, "timestamp", obj); | ||
} | ||
|
||
/* | ||
* 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(dict, "event", qstring_from_str(event_name)); | ||
timestamp_put(dict); | ||
return dict; | ||
} |