}
-void legend_destructor(GtkWindow *legend)
-{
- g_legend_list = g_slist_remove(g_legend_list, legend);
-}
-
-/* Create a popup legend */
-GtkWidget *
-h_legend(LttvPlugin *plugin)
-{
- LttvPluginTab *ptab = LTTV_PLUGIN_TAB(plugin);
- Tab *tab = ptab->tab;
- g_info("h_legend, %p", tab);
-
- GtkWindow *legend = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
-
- g_legend_list = g_slist_append(
- g_legend_list,
- legend);
-
- g_object_set_data_full(
- G_OBJECT(legend),
- "legend",
- legend,
- (GDestroyNotify)legend_destructor);
-
- gtk_window_set_title(legend, "Control Flow View Legend");
-
- GtkWidget *pixmap = create_pixmap(GTK_WIDGET(legend), "lttv-color-list.png");
-
- // GtkImage *image = GTK_IMAGE(gtk_image_new_from_pixmap(
- // GDK_PIXMAP(pixmap), NULL));
-
- gtk_container_add(GTK_CONTAINER(legend), GTK_WIDGET(pixmap));
-
- gtk_widget_show(GTK_WIDGET(pixmap));
- gtk_widget_show(GTK_WIDGET(legend));
-
-
- return NULL; /* This is a popup window */
-}
-
-
int event_selected_hook(void *hook_data, void *call_data)
{
ControlFlowData *control_flow_data = (ControlFlowData*) hook_data;
guint pid_out;
guint pid_in;
{
- pid_out = ltt_event_get_long_unsigned(e, th->f1);
- pid_in = ltt_event_get_long_unsigned(e, th->f2);
+ pid_out = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 0));
+ pid_in = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 1));
}
tfc->target_pid = pid_out;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
guint pid_in;
{
guint pid_out;
- pid_out = ltt_event_get_long_unsigned(e, th->f1);
- pid_in = ltt_event_get_long_unsigned(e, th->f2);
+ pid_out = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 0));
+ pid_in = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 1));
}
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
guint pid;
{
- pid = ltt_event_get_long_unsigned(e, th->f1);
+ pid = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 0));
}
/* Add process to process list (if not present) */
&birth,
trace_num);
if(unlikely(hashed_process_data == NULL))
- {
- g_assert(pid == 0 || pid != process->ppid);
- /* Process not present */
- Drawing_t *drawing = control_flow_data->drawing;
- ProcessInfo *process_info;
- processlist_add(process_list,
- drawing,
- pid,
- process->tgid,
- process->cpu,
- process->ppid,
- &birth,
- trace_num,
- process->name,
- process->brand,
- &pl_height,
- &process_info,
- &hashed_process_data);
- gtk_widget_set_size_request(drawing->drawing_area,
- -1,
- pl_height);
- gtk_widget_queue_draw(drawing->drawing_area);
- }
+ /*
+ * Process already been scheduled out EXIT_DEAD, not in the process list
+ * anymore. Just return.
+ */
+ return FALSE;
/* Now, the process is in the state hash and our own process hash.
* We definitely can draw the items related to the ending state.
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
guint child_pid;
{
- child_pid = ltt_event_get_long_unsigned(e, th->f2);
+ child_pid = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 1));
}
/* Add process to process list (if not present) */
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
hashed_process_data_child->x.under_marked = FALSE;
}
}
- return 0;
+ return FALSE;
}
#ifdef EXTRA_CHECK
if(ltt_time_compare(evtime, time_window.start_time) == -1
|| ltt_time_compare(evtime, time_window.end_time) == 1)
- return;
+ return FALSE;
#endif //EXTRA_CHECK
Drawing_t *drawing = control_flow_data->drawing;
guint width = drawing->width;
}
}
- return 0;
+ return FALSE;
}
guint pid_in;
{
- pid_in = ltt_event_get_long_unsigned(e, th->f1);
+ pid_in = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 0));
}
if(pid_in == 0) {