-gboolean parse_event(void *hook_data, void *call_data){
-
- LttTime event_time;
- LttEvent *e;
- LttField *field;
- LttEventType *event_type;
- unsigned cpu_id;
- irq_entry entry;
- irq_entry *element;
- guint i;
- // g_info("interrupts: parse_event() \n");
- InterruptEventData *event_data = (InterruptEventData *)hook_data;
- GArray* active_irq_entry = event_data->active_irq_entry;
- LttvTracefileContext *tfc = (LttvTracefileContext *)call_data;
- LttvTracefileState *tfs = (LttvTracefileState *)call_data;
- //e = tfc->e;
- e = ltt_tracefile_get_event(tfc->tf);
-
- field = ltt_event_field(e);
- event_time = ltt_event_time(e);
- event_type = ltt_event_eventtype(e);
- cpu_id = ltt_event_cpu_id(e);
- GString * detail_event = g_string_new("");
- if ((ltt_time_compare(event_time,event_data->time_window.start_time) == TRUE) &&
- (ltt_time_compare(event_data->time_window.end_time,event_time) == TRUE)){
- if (strcmp( g_quark_to_string(ltt_eventtype_name(event_type)),"irq_entry") == 0) {
- entry.id = get_event_detail(e, field);
- entry.cpu_id = cpu_id;
- entry.event_time = event_time;
- g_array_append_val (active_irq_entry, entry);
-
- }
- if(strcmp( g_quark_to_string(ltt_eventtype_name(event_type)),"irq_exit") == 0) {
- //printf("event_time: %ld.%ld\n",event_time.tv_sec,event_time.tv_nsec);
- calcul_duration( event_time, cpu_id, event_data);
- }
- }
- g_string_free(detail_event, TRUE);
- return FALSE;
-}
-
-static void request_event( InterruptEventData *event_data){
-
- event_data->event_hooks = lttv_hooks_new();
- lttv_hooks_add(event_data->event_hooks, parse_event, event_data, LTTV_PRIO_DEFAULT);
-
- event_data->hooks_trace_after = lttv_hooks_new();
- lttv_hooks_add(event_data->hooks_trace_after, interrupt_show, event_data, LTTV_PRIO_DEFAULT);
-
- event_data->hooks_trace_before = lttv_hooks_new();
- lttv_hooks_add(event_data->hooks_trace_before, trace_header, event_data, LTTV_PRIO_DEFAULT);
-
- EventsRequest *events_request = g_new(EventsRequest, 1);
- events_request->owner = event_data;
- events_request->viewer_data = event_data;
- events_request->servicing = FALSE;
- events_request->start_time = event_data->time_window.start_time;
- events_request->start_position = NULL;
- events_request->stop_flag = FALSE;
- events_request->end_time = event_data->time_window.end_time;
- events_request->num_events = G_MAXUINT;
- events_request->end_position = NULL;
- events_request->trace = 0;
- events_request->hooks = NULL;
- events_request->before_chunk_traceset = NULL;
- events_request->before_chunk_trace = event_data->hooks_trace_before;
- events_request->before_chunk_tracefile= NULL;
- events_request->event = event_data->event_hooks;
- events_request->event_by_id = NULL;
- events_request->after_chunk_tracefile = NULL;
- events_request->after_chunk_trace = NULL;
- events_request->after_chunk_traceset = NULL;
- events_request->before_request = NULL;
- events_request->after_request = event_data->hooks_trace_after;
-
- lttvwindow_events_request(event_data->tab, events_request);
-}