From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59573) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLsJn-00050a-Na for qemu-devel@nongnu.org; Mon, 25 Aug 2014 07:20:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XLsJg-0004OX-Mx for qemu-devel@nongnu.org; Mon, 25 Aug 2014 07:20:11 -0400 Received: from roura.ac.upc.es ([147.83.33.10]:34334) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLsJg-0004Li-CO for qemu-devel@nongnu.org; Mon, 25 Aug 2014 07:20:04 -0400 From: =?utf-8?b?TGx1w61z?= Vilanova Date: Mon, 25 Aug 2014 13:20:03 +0200 Message-Id: <20140825112002.31112.60143.stgit@fimbulvetr.bsc.es> In-Reply-To: <20140825111951.31112.50251.stgit@fimbulvetr.bsc.es> References: <20140825111951.31112.50251.stgit@fimbulvetr.bsc.es> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v4 2/2] trace: [hmp] Reimplement "trace-event" and "info trace-events" using QMP List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Markus Armbruster , Stefan Hajnoczi , Luiz Capitulino Signed-off-by: Llu=C3=ADs Vilanova --- monitor.c | 27 ++++++++++++++------------- trace/control.c | 13 ------------- trace/control.h | 7 ------- 3 files changed, 14 insertions(+), 33 deletions(-) diff --git a/monitor.c b/monitor.c index cdbaa60..551dd0b 100644 --- a/monitor.c +++ b/monitor.c @@ -886,19 +886,12 @@ static void do_trace_event_set_state(Monitor *mon, = const QDict *qdict) { const char *tp_name =3D qdict_get_str(qdict, "name"); bool new_state =3D qdict_get_bool(qdict, "option"); + Error *local_err =3D NULL; =20 - bool found =3D false; - TraceEvent *ev =3D NULL; - while ((ev =3D trace_event_pattern(tp_name, ev)) !=3D NULL) { - found =3D true; - if (!trace_event_get_state_static(ev)) { - monitor_printf(mon, "event \"%s\" is not traceable\n", tp_na= me); - } else { - trace_event_set_state_dynamic(ev, new_state); - } - } - if (!trace_event_is_pattern(tp_name) && !found) { - monitor_printf(mon, "unknown event name \"%s\"\n", tp_name); + qmp_trace_event_set_state(tp_name, new_state, true, true, &local_err= ); + if (local_err) { + qerror_report_err(local_err); + error_free(local_err); } } =20 @@ -1079,7 +1072,15 @@ static void do_info_cpu_stats(Monitor *mon, const = QDict *qdict) =20 static void do_trace_print_events(Monitor *mon, const QDict *qdict) { - trace_print_events((FILE *)mon, &monitor_fprintf); + TraceEventInfoList *events =3D qmp_trace_event_get_state("*", NULL); + TraceEventInfoList *elem; + + for (elem =3D events; elem !=3D NULL; elem =3D elem->next) { + monitor_printf(mon, "%s : state %u\n", + elem->value->name, + elem->value->state =3D=3D TRACE_EVENT_STATE_ENABL= ED ? 1 : 0); + } + qapi_free_TraceEventInfoList(events); } =20 static int client_migrate_info(Monitor *mon, const QDict *qdict, diff --git a/trace/control.c b/trace/control.c index 9631a40..0d30801 100644 --- a/trace/control.c +++ b/trace/control.c @@ -85,19 +85,6 @@ TraceEvent *trace_event_pattern(const char *pat, Trace= Event *ev) return NULL; } =20 -void trace_print_events(FILE *stream, fprintf_function stream_printf) -{ - TraceEventID i; - - for (i =3D 0; i < trace_event_count(); i++) { - TraceEvent *ev =3D trace_event_id(i); - stream_printf(stream, "%s [Event ID %u] : state %u\n", - trace_event_get_name(ev), i, - trace_event_get_state_static(ev) && - trace_event_get_state_dynamic(ev)); - } -} - static void trace_init_events(const char *fname) { Location loc; diff --git a/trace/control.h b/trace/control.h index e1ec033..da9bb6b 100644 --- a/trace/control.h +++ b/trace/control.h @@ -149,13 +149,6 @@ static void trace_event_set_state_dynamic(TraceEvent= *ev, bool state); =20 =20 /** - * trace_print_events: - * - * Print the state of all events. - */ -void trace_print_events(FILE *stream, fprintf_function stream_printf); - -/** * trace_init_backends: * @events: Name of file with events to be enabled at startup; may be NU= LL. * Corresponds to commandline option "-trace events=3D...".