GdkColor drawing_colors_cpu[NUM_COLORS_CPU] =
{ /* Pixel, R, G, B */
- { 0, 0xBBBB, 0xBBBB, 0xBBBB }, /* COL_IDLE */
- { 0, 0xFFFF, 0xFFFF, 0xFFFF }, /* COL_BUSY */
- { 0, 0xFFFF, 0x0000, 0x0000 }, /* COL_UNKNOWN */
+ { 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 */
};
+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 *
LttvTraceHook *hook;
- LttvTraceHookByFacility *thf;
+ LttvTraceHook *th;
guint ret;
gint before_hn, after_hn;
/* before hooks */
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_ENTRY,
+// LTT_EVENT_SYSCALL_ENTRY,
// LTT_FIELD_SYSCALL_ID, 0, 0,
// before_execmode_hook,
// events_request,
// if(ret) before_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_EXIT,
+// LTT_EVENT_SYSCALL_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_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_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_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_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,
+// LTT_EVENT_SOFT_IRQ_ENTRY,
// LTT_FIELD_SOFT_IRQ_ID, 0, 0,
// before_execmode_hook,
// events_request,
// if(ret) before_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_EXIT,
+// LTT_EVENT_SOFT_IRQ_EXIT,
// 0, 0, 0,
// before_execmode_hook,
// events_request,
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_SCHED_SCHEDULE,
+ LTT_EVENT_SCHED_SCHEDULE,
LTT_FIELD_PREV_PID, LTT_FIELD_NEXT_PID, LTT_FIELD_PREV_STATE,
before_schedchange_hook,
events_request,
if(ret) before_hn--;
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL, LTT_EVENT_PROCESS_EXIT,
+// LTT_EVENT_PROCESS_EXIT,
// LTT_FIELD_PID, 0, 0,
// before_process_exit_hook,
// events_request,
// if(ret) before_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL, LTT_EVENT_PROCESS_FREE,
+// LTT_EVENT_PROCESS_FREE,
// LTT_FIELD_PID, 0, 0,
// before_process_release_hook,
// events_request,
// if(ret) before_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_LIST, LTT_EVENT_STATEDUMP_END,
+// LTT_EVENT_STATEDUMP_END,
// 0, 0, 0,
// before_statedump_end,
// events_request,
// &g_array_index(hooks, LttvTraceHook, before_hn++));
// if(ret) before_hn--;
+ ret = lttv_trace_find_hook(ts->parent.t,
+ 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_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",
after_hn = before_hn;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_SCHED_SCHEDULE,
+ LTT_EVENT_SCHED_SCHEDULE,
LTT_FIELD_PREV_PID, LTT_FIELD_NEXT_PID, LTT_FIELD_PREV_STATE,
after_schedchange_hook,
events_request,
if(ret) after_hn--;
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL, LTT_EVENT_PROCESS_FORK,
+// LTT_EVENT_PROCESS_FORK,
// LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, 0,
// after_process_fork_hook,
// events_request,
// if(ret) after_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_KERNEL, LTT_EVENT_PROCESS_EXIT,
+// LTT_EVENT_PROCESS_EXIT,
// LTT_FIELD_PID, 0, 0,
// after_process_exit_hook,
// events_request,
// if(ret) after_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_FS, LTT_EVENT_EXEC,
+// LTT_EVENT_EXEC,
// 0, 0, 0,
// after_fs_exec_hook,
// events_request,
// if(ret) after_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_USER_GENERIC, LTT_EVENT_THREAD_BRAND,
+// LTT_EVENT_THREAD_BRAND,
// LTT_FIELD_NAME, 0, 0,
// after_user_generic_thread_brand_hook,
// events_request,
// if(ret) after_hn--;
//
// ret = lttv_trace_find_hook(ts->parent.t,
-// LTT_FACILITY_LIST, LTT_EVENT_PROCESS_STATE,
+// LTT_EVENT_PROCESS_STATE,
// LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME,
// after_event_enum_process_hook,
// events_request,
/* add before */
for(k = 0 ; k < before_hn ; k++) {
hook = &g_array_index(hooks, LttvTraceHook, k);
- for(l=0;l<hook->fac_list->len;l++) {
- thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l);
- lttv_hooks_add(lttv_hooks_by_id_find(event_by_id, thf->id),
+ lttv_hooks_add(lttv_hooks_by_id_find(event_by_id, thf->id),
thf->h,
thf,
LTTV_PRIO_STATE-5);
- }
}
/* add after */
/* Allocate the colors */
GdkColormap* colormap = gdk_colormap_get_system();
gboolean success[NUM_COLORS];
- //gdk_colormap_alloc_colors(colormap, drawing_colors, NUM_COLORS, FALSE,
- // TRUE, success);
+ 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));
/* Free the colors */
GdkColormap* colormap = gdk_colormap_get_system();
- //gdk_colormap_free_colors(colormap, drawing_colors, NUM_COLORS);
+ 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));