};
-/*
-RUN+USER MODE green
-RUN+SYSCALL
-RUN+TRAP
-RUN+IRQ
-WAIT+foncé
-WAIT CPU + WAIT FORK vert foncé ou jaune
-IRQ rouge
-TRAP: orange
-SYSCALL: bleu pâle
+GdkColor drawing_colors_cpu[NUM_COLORS_CPU] =
+{ /* Pixel, R, G, B */
+ { 0, 0x0000, 0x0000, 0x0000 }, /* COL_CPU_UNKNOWN */
+ { 0, 0xBBBB, 0xBBBB, 0xBBBB }, /* COL_CPU_IDLE */
+ { 0, 0xFFFF, 0xFFFF, 0xFFFF }, /* COL_CPU_BUSY */
+ { 0, 0xFFFF, 0x5E00, 0x0000 }, /* COL_CPU_IRQ */
+ { 0, 0xFF00, 0xFF00, 0x0100 }, /* COL_CPU_TRAP */
+};
-ZOMBIE + WAIT EXIT
-*/
+GdkColor drawing_colors_irq[NUM_COLORS_IRQ] =
+{ /* Pixel, R, G, B */
+ { 0, 0x0000, 0x0000, 0x0000 }, /* COL_IRQ_UNKNOWN */
+ { 0, 0xBBBB, 0xBBBB, 0xBBBB }, /* COL_IRQ_IDLE */
+ { 0, 0xFFFF, 0x5E00, 0x0000 }, /* COL_IRQ_BUSY */
+};
+GdkColor drawing_colors_bdev[NUM_COLORS_BDEV] =
+{ /* Pixel, R, G, B */
+ { 0, 0x0000, 0x0000, 0x0000 }, /* COL_BDEV_UNKNOWN */
+ { 0, 0xBBBB, 0xBBBB, 0xBBBB }, /* COL_BDEV_IDLE */
+ { 0, 0x0000, 0x0000, 0xFFFF }, /* COL_BDEV_BUSY_READING */
+ { 0, 0xFFFF, 0x0000, 0x0000 }, /* COL_BDEV_BUSY_WRITING */
+};
/*****************************************************************************
* drawing functions *
// &g_array_index(hooks, LttvTraceHook, before_hn++));
// if(ret) before_hn--;
//
-// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_TRAP_ENTRY,
-// LTT_FIELD_TRAP_ID, 0, 0,
-// before_execmode_hook,
-// events_request,
-// &g_array_index(hooks, LttvTraceHook, before_hn++));
-// if(ret) before_hn--;
-//
-// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_TRAP_EXIT,
-// 0, 0, 0,
-// before_execmode_hook,
-// events_request,
-// &g_array_index(hooks, LttvTraceHook, before_hn++));
-// if(ret) before_hn--;
-//
-// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY,
-// LTT_FIELD_IRQ_ID, 0, 0,
-// before_execmode_hook,
-// events_request,
-// &g_array_index(hooks, LttvTraceHook, before_hn++));
-// if(ret) before_hn--;
-//
-// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_EXIT,
-// 0, 0, 0,
-// before_execmode_hook,
-// events_request,
-// &g_array_index(hooks, LttvTraceHook, before_hn++));
-// if(ret) before_hn--;
+ ret = lttv_trace_find_hook(ts->parent.t,
+ LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_TRAP_ENTRY,
+ LTT_FIELD_TRAP_ID, 0, 0,
+ before_execmode_hook,
+ events_request,
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
+
+ ret = lttv_trace_find_hook(ts->parent.t,
+ LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_TRAP_EXIT,
+ 0, 0, 0,
+ before_execmode_hook,
+ events_request,
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
+
+ ret = lttv_trace_find_hook(ts->parent.t,
+ LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY,
+ LTT_FIELD_IRQ_ID, 0, 0,
+ before_execmode_hook,
+ events_request,
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
+
+ ret = lttv_trace_find_hook(ts->parent.t,
+ LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_EXIT,
+ 0, 0, 0,
+ before_execmode_hook,
+ events_request,
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
// LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_ENTRY,
// &g_array_index(hooks, LttvTraceHook, before_hn++));
// if(ret) before_hn--;
+ ret = lttv_trace_find_hook(ts->parent.t,
+ LTT_FACILITY_BLOCK, LTT_EVENT_REQUEST_ISSUE,
+ LTT_FIELD_MAJOR, LTT_FIELD_MINOR, LTT_FIELD_OPERATION,
+ before_bdev_event_hook,
+ events_request,
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
+
+ ret = lttv_trace_find_hook(ts->parent.t,
+ LTT_FACILITY_BLOCK, LTT_EVENT_REQUEST_COMPLETE,
+ LTT_FIELD_MAJOR, LTT_FIELD_MINOR, LTT_FIELD_OPERATION,
+ before_bdev_event_hook,
+ events_request,
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
+
#if 0
lttv_trace_find_hook(ts->parent.t,
"core", "process", "event_sub_id",
gboolean success[NUM_COLORS];
gdk_colormap_alloc_colors(colormap, drawing_colors, NUM_COLORS, FALSE,
TRUE, success);
+ gdk_colormap_alloc_colors(colormap, drawing_colors_cpu, NUM_COLORS_CPU, FALSE,
+ TRUE, success);
+ gdk_colormap_alloc_colors(colormap, drawing_colors_irq, NUM_COLORS_IRQ, FALSE,
+ TRUE, success);
+ gdk_colormap_alloc_colors(colormap, drawing_colors_bdev, NUM_COLORS_BDEV, FALSE,
+ TRUE, success);
drawing->gc =
gdk_gc_new(GDK_DRAWABLE(main_window_get_widget(control_flow_data->tab)->window));
GdkColormap* colormap = gdk_colormap_get_system();
gdk_colormap_free_colors(colormap, drawing_colors, NUM_COLORS);
-
-
+ gdk_colormap_free_colors(colormap, drawing_colors_cpu, NUM_COLORS_CPU);
+ gdk_colormap_free_colors(colormap, drawing_colors_irq, NUM_COLORS_IRQ);
+ gdk_colormap_free_colors(colormap, drawing_colors_bdev, NUM_COLORS_BDEV);
// Do not unref here, Drawing_t destroyed by it's widget.
//g_object_unref( G_OBJECT(drawing->drawing_area));