X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=inline;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fresourceview%2Fdrawing.c;h=83311b5eeb6fcdb595f53a81c8f352c2915bbf4b;hb=0ad10e7f28bf28543b8c131eb5a812ebbeb44216;hp=81edb1e363fa21481ca7c2cf3d63c6621ffc188e;hpb=58a9b31ba0dbc1df35a2d375599a3c7996079fbe;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c b/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c index 81edb1e3..83311b5e 100644 --- a/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c +++ b/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c @@ -84,20 +84,29 @@ GdkColor drawing_colors[NUM_COLORS] = }; -/* -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 * @@ -241,37 +250,37 @@ void drawing_data_request(Drawing_t *drawing, // &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, @@ -322,6 +331,22 @@ void drawing_data_request(Drawing_t *drawing, // &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", @@ -1072,6 +1097,12 @@ Drawing_t *drawing_construct(ControlFlowData *control_flow_data) 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)); @@ -1128,8 +1159,9 @@ void drawing_destroy(Drawing_t *drawing) 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));