void print_field(LttEvent *e, LttField *f, GString *s, gboolean field_names) {
LttType *type;
LttField *element;
void print_field(LttEvent *e, LttField *f, GString *s, gboolean field_names) {
LttType *type;
LttField *element;
g_string_append_printf(s, " %lld", ltt_event_get_long_int(e,f));
break;
case LTT_UINT:
g_string_append_printf(s, " %lld", ltt_event_get_long_int(e,f));
break;
case LTT_UINT:
g_string_append_printf(s, " %llu", ltt_event_get_long_unsigned(e,f));
break;
g_string_append_printf(s, " %llu", ltt_event_get_long_unsigned(e,f));
break;
g_string_append_printf(s, " %g", ltt_event_get_double(e,f));
break;
g_string_append_printf(s, " %g", ltt_event_get_double(e,f));
break;
case LTT_STRING:
g_string_append_printf(s, " \"%s\"", ltt_event_get_string(e,f));
break;
case LTT_STRING:
g_string_append_printf(s, " \"%s\"", ltt_event_get_string(e,f));
break;
element = ltt_field_member(f,i);
if(field_names) {
ltt_type_member_type(type, i, &name);
element = ltt_field_member(f,i);
if(field_names) {
ltt_type_member_type(type, i, &name);
}
print_field(e, element, s, field_names);
}
}
print_field(e, element, s, field_names);
}
element = ltt_field_member(f,i);
if(field_names) {
ltt_type_member_type(type, i, &name);
element = ltt_field_member(f,i);
if(field_names) {
ltt_type_member_type(type, i, &name);
}
print_field(e, element, s, field_names);
}
}
print_field(e, element, s, field_names);
}
if(mandatory_fields) {
time = ltt_event_time(e);
g_string_append_printf(s,"%s.%s: %ld.%09ld (%s)",
if(mandatory_fields) {
time = ltt_event_time(e);
g_string_append_printf(s,"%s.%s: %ld.%09ld (%s)",
- ltt_facility_name(facility),
- ltt_eventtype_name(event_type), (long)time.tv_sec, time.tv_nsec,
+ g_quark_to_string(ltt_facility_name(facility)),
+ g_quark_to_string(ltt_eventtype_name(event_type)),
+ (long)time.tv_sec, time.tv_nsec,
g_quark_to_string(tfs->cpu_name));
/* Print the process id and the state/interrupt type of the process */
g_string_append_printf(s,", %u, %u, %s", tfs->process->pid,
g_quark_to_string(tfs->cpu_name));
/* Print the process id and the state/interrupt type of the process */
g_string_append_printf(s,", %u, %u, %s", tfs->process->pid,
desc = ltt_trace_system_description(tcs->parent.parent.t);
LttTime start_time = ltt_trace_system_description_trace_start_time(desc);
fprintf(fp, "Trace on system %s at time %lu.%09lu :\n",
ltt_trace_system_description_node_name(desc),
start_time.tv_sec,
start_time.tv_nsec);
desc = ltt_trace_system_description(tcs->parent.parent.t);
LttTime start_time = ltt_trace_system_description_trace_start_time(desc);
fprintf(fp, "Trace on system %s at time %lu.%09lu :\n",
ltt_trace_system_description_node_name(desc),
start_time.tv_sec,
start_time.tv_nsec);
saved_length = indent->len;
g_string_append(indent, " ");
print_tree(fp, indent, tcs->stats);
saved_length = indent->len;
g_string_append(indent, " ");
print_tree(fp, indent, tcs->stats);
static gboolean write_trace_header(void *hook_data, void *call_data)
{
LttvTraceContext *tc = (LttvTraceContext *)call_data;
static gboolean write_trace_header(void *hook_data, void *call_data)
{
LttvTraceContext *tc = (LttvTraceContext *)call_data;
LttSystemDescription *system = ltt_trace_system_description(tc->t);
fprintf(a_file," Trace from %s in %s\n%s\n\n",
ltt_trace_system_description_node_name(system),
ltt_trace_system_description_domain_name(system),
ltt_trace_system_description_description(system));
LttSystemDescription *system = ltt_trace_system_description(tc->t);
fprintf(a_file," Trace from %s in %s\n%s\n\n",
ltt_trace_system_description_node_name(system),
ltt_trace_system_description_domain_name(system),
ltt_trace_system_description_description(system));
LttvTracefileContext *tfc = (LttvTracefileContext *)call_data;
LttvTracefileState *tfs = (LttvTracefileState *)call_data;
LttEvent *e;
LttvTracefileContext *tfc = (LttvTracefileContext *)call_data;
LttvTracefileState *tfs = (LttvTracefileState *)call_data;
LttEvent *e;
+ LttvAttributeValue value_filter;
+
+ LttvFilter *filter;
+
+ e = ltt_tracefile_get_event(tfc->tf);
+
+
+ g_assert(lttv_iattribute_find_by_path(attributes, "filter/lttv_filter",
+ LTTV_POINTER, &value_filter));
+ filter = (LttvFilter*)*(value_filter.v_pointer);
- lttv_filter_tree_parse(a_lttv_filter->head,e,NULL,NULL,NULL);
+ if(!lttv_filter_tree_parse(filter->head,e,tfc->tf,tfc->t_context->t,tfs->process,tfc)) {
+ return FALSE;
+ }
lttv_event_to_string(e, a_string, TRUE, a_field_names, tfs);
g_string_append_printf(a_string,"\n");
lttv_event_to_string(e, a_string, TRUE, a_field_names, tfs);
g_string_append_printf(a_string,"\n");