X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt%2Fmarker.c;h=8e07b326311b2b348edd3d95694808017b168057;hb=f972ab5e81be30df0ef5d690a55a6876c27b1d40;hp=07b5c08efe41a0b17873cf6f552bb277be5c0fe1;hpb=e3bf857c22b9c1871cb9356e9d1c3b1320ee7f94;p=lttv.git diff --git a/ltt/marker.c b/ltt/marker.c index 07b5c08e..8e07b326 100644 --- a/ltt/marker.c +++ b/ltt/marker.c @@ -421,21 +421,16 @@ int marker_parse_format(const char *format, struct marker_info *info) return 0; } -int marker_format_event(LttTrace *trace, GQuark channel, GQuark name, - const char *format) +static +int marker_format_tf_event(LttTrace *trace, LttTracefile *tf, + GQuark channel, GQuark name, const char *format) { struct marker_info *info; struct marker_data *mdata; char *fquery; char *fcopy; - GArray *group; - - group = g_datalist_id_get_data(&trace->tracefiles, channel); - if (!group) - return -ENOENT; - g_assert(group->len > 0); - mdata = g_array_index (group, LttTracefile, 0).mdata; + mdata = tf->mdata; fquery = marker_get_format_from_name(mdata, name); if (fquery) { if (strcmp(fquery, format) != 0) @@ -460,23 +455,36 @@ int marker_format_event(LttTrace *trace, GQuark channel, GQuark name, return 0; } -int marker_id_event(LttTrace *trace, GQuark channel, GQuark name, guint16 id, - uint8_t int_size, uint8_t long_size, uint8_t pointer_size, - uint8_t size_t_size, uint8_t alignment) +int marker_format_event(LttTrace *trace, GQuark channel, GQuark name, + const char *format) { - struct marker_data *mdata; - struct marker_info *info, *head; - int found = 0; GArray *group; - - g_debug("Add channel %s event %s %hu\n", g_quark_to_string(channel), - g_quark_to_string(name), id); + int i, ret; + LttTracefile *tf; group = g_datalist_id_get_data(&trace->tracefiles, channel); if (!group) return -ENOENT; g_assert(group->len > 0); - mdata = g_array_index (group, LttTracefile, 0).mdata; + for (i = 0; i < group->len; i++) { + tf = &g_array_index (group, LttTracefile, i); + ret = marker_format_tf_event(trace, tf, channel, name, format); + if (ret) + g_error("Error in marker_format_event"); + } + return 0; +} + +int marker_id_tf_event(LttTrace *trace, LttTracefile *tf, + GQuark channel, GQuark name, guint16 id, + uint8_t int_size, uint8_t long_size, uint8_t pointer_size, + uint8_t size_t_size, uint8_t alignment) +{ + struct marker_data *mdata; + struct marker_info *info, *head; + int found = 0; + + mdata = tf->mdata; if (mdata->markers->len <= id) mdata->markers = g_array_set_size(mdata->markers, @@ -513,6 +521,31 @@ int marker_id_event(LttTrace *trace, GQuark channel, GQuark name, guint16 id, return 0; } +int marker_id_event(LttTrace *trace, GQuark channel, GQuark name, guint16 id, + uint8_t int_size, uint8_t long_size, uint8_t pointer_size, + uint8_t size_t_size, uint8_t alignment) +{ + GArray *group; + int i, ret; + LttTracefile *tf; + + g_debug("Add channel %s event %s %hu\n", g_quark_to_string(channel), + g_quark_to_string(name), id); + + group = g_datalist_id_get_data(&trace->tracefiles, channel); + if (!group) + return -ENOENT; + g_assert(group->len > 0); + for (i = 0; i < group->len; i++) { + tf = &g_array_index (group, LttTracefile, i); + ret = marker_id_tf_event(trace, tf, channel, name, id, int_size, long_size, + pointer_size, size_t_size, alignment); + if (ret) + g_error("Error in marker_id_event"); + } + return 0; +} + struct marker_data *allocate_marker_data(void) { struct marker_data *data;