add block device resource tracing to resourceview plugin
[lttv.git] / ltt / branches / poly / lttv / modules / gui / resourceview / drawing.c
index 81edb1e363fa21481ca7c2cf3d63c6621ffc188e..bc8b0c80cf77c32b92e49763626f01176d93bfe6 100644 (file)
@@ -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,
@@ -421,6 +430,22 @@ void drawing_data_request(Drawing_t *drawing,
 //          &g_array_index(hooks, LttvTraceHook, after_hn++));
 //      if(ret) after_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, after_hn++));
+      if(ret) after_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, after_hn++));
+      if(ret) after_hn--;
+
       hooks = g_array_set_size(hooks, after_hn);
 
 #if 0
@@ -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));
This page took 0.029663 seconds and 4 git commands to generate.