Update FSF address
[lttv.git] / lttv / modules / gui / resourceview / eventhooks.c
index 49ac598044817c72beab6f8bab8ca28d9125a98d..dc12f2117c2e7bad67e4f1af8b5094c650fbb5db 100644 (file)
@@ -12,8 +12,8 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, 
- * MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA 02110-1301, USA.
  */
 
 
 
 //#include <pango/pango.h>
 
-#include <ltt/event.h>
-#include <ltt/time.h>
-#include <ltt/trace.h>
-
 #include <lttv/lttv.h>
 #include <lttv/hook.h>
 #include <lttv/state.h>
@@ -121,7 +117,6 @@ static void request_background_data(ControlFlowData *resourceview_data)
   gint num_traces = lttv_traceset_number(ts);
   gint i;
   LttvTrace *trace;
-  LttvTraceState *tstate;
 
   LttvHooks *background_ready_hook = 
     lttv_hooks_new();
@@ -385,6 +380,7 @@ int before_schedchange_hook(void *hook_data, void *call_data)
    * time to do it.
    */
 
+#ifdef BABEL_CLEANUP
   guint pid_out;
   pid_out = lttv_event_get_long(event, "prev_tid");
 // TODO: can't we reenable this? pmf
@@ -392,12 +388,13 @@ int before_schedchange_hook(void *hook_data, void *call_data)
 //    /* not a transition to/from idle */
 //    return 0;
 //  }
-
+#endif
 
   guint cpu = lttv_traceset_get_cpuid_from_event(event);
   ts = event->state;      
 
-  guint trace_num = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number
+  guint trace_num = lttv_traceset_get_trace_index_from_event(event);
+
   /* Add process to process list (if not present) */
   HashedResourceData *hashed_process_data = NULL;
   
@@ -556,7 +553,7 @@ int after_schedchange_hook(void *hook_data, void *call_data)
   //process_in = lttv_state_find_process(ts, ANY_CPU, pid_in);
   //process_in = tfs->process;
   guint cpu =  lttv_traceset_get_cpuid_from_event(event);
-  guint trace_num = 0; /* TODO set right trace number */
+  guint trace_num = lttv_traceset_get_trace_index_from_event(event);
   process_in = ts->running_process[cpu];
   /* It should exist, because we are after the state update. */
 #ifdef EXTRA_CHECK
@@ -625,7 +622,6 @@ int before_execmode_hook(void *hook_data, void *call_data)
 {
   LttvEvent *event;
   guint cpu;
-  guint pid = 0;
   LttvTraceState *ts;
   LttvProcessState *process;
 
@@ -647,13 +643,10 @@ int before_execmode_hook(void *hook_data, void *call_data)
   LttTime evtime = lttv_event_get_timestamp(event);
   ControlFlowData *resourceview_data = (ControlFlowData*)hook_data;
 
-  /* For the pid */
-  LttvTraceset *traceSet = lttvwindow_get_traceset(resourceview_data->tab);
-  
   cpu = lttv_traceset_get_cpuid_from_event(event);
   ts = event->state;
   
-  guint trace_num = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number
+  guint trace_num = lttv_traceset_get_trace_index_from_event(event);
 
   process = ts->running_process[cpu];
   g_assert(process != NULL);
@@ -806,7 +799,6 @@ int before_execmode_hook_irq(void *hook_data, void *call_data)
 
   guint64 irq;
   guint cpu = lttv_traceset_get_cpuid_from_event(event);
-  LttvTraceset *traceSet = lttvwindow_get_traceset(resourceview_data->tab);
   LttvTraceState *ts = event->state;;
 
   /*
@@ -826,7 +818,7 @@ int before_execmode_hook_irq(void *hook_data, void *call_data)
   } else
     return 0;
 
-  guint trace_num = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number
+  guint trace_num = lttv_traceset_get_trace_index_from_event(event);
 
   /* Well, the process_out existed : we must get it in the process hash
    * or add it, and draw its items.
@@ -987,24 +979,19 @@ int before_execmode_hook_soft_irq(void *hook_data, void *call_data)
    */
  
   if (strncmp(lttv_traceset_get_name_from_event(event),"softirq_entry",sizeof("softirq_entry")) == 0
-         || strncmp(lttv_traceset_get_name_from_event(event),"softirq_raise",sizeof("softirq_raise")) == 0) {
+      || strncmp(lttv_traceset_get_name_from_event(event),"softirq_raise",sizeof("softirq_raise")) == 0
+      || strncmp(lttv_traceset_get_name_from_event(event),"softirq_exit",sizeof("softirq_exit")) == 0 ) {
+  
     softirq =  lttv_event_get_long_unsigned(event, "vec");
-  } else if (strncmp(lttv_traceset_get_name_from_event(event),"softirq_exit",sizeof("softirq_exit")) == 0) {
-    LttTime evtime = lttv_event_get_timestamp(event);
-    ControlFlowData *resourceview_data = (ControlFlowData*)hook_data;
-    LttvTraceset *traceSet = lttvwindow_get_traceset(resourceview_data->tab);
-    guint cpu =  lttv_traceset_get_cpuid_from_event(event);  
-    ts = event->state;
-    gint len = ts->cpu_states[cpu].softirq_stack->len;
-    if(len) {
-      softirq = g_array_index(ts->cpu_states[cpu].softirq_stack, gint, len-1);
-    }
-    else {
-      return 0;
-    }
-
+      
+  } else {
+    return 0;
+  }
 
-  guint trace_num = 0;//TODO change it to the right value;
+  LttTime evtime = lttv_event_get_timestamp(event);
+  ControlFlowData *resourceview_data = (ControlFlowData*)hook_data;
+  ts = event->state;
+  guint trace_num = lttv_traceset_get_trace_index_from_event(event);
 
   /* Well, the process_out existed : we must get it in the process hash
    * or add it, and draw its items.
@@ -1124,7 +1111,7 @@ int before_execmode_hook_soft_irq(void *hook_data, void *call_data)
                              &hashed_process_data->next_good_time);
     }
   }
-  }
+
   return 0;
 }
 #ifdef TRAP_NO_EXIST
@@ -1310,7 +1297,6 @@ int before_bdev_event_hook(void *hook_data, void *call_data)
 {
 LttvEvent *event;
   guint cpu;
-  guint pid = 0;
   LttvTraceState *ts;
   LttvProcessState *process;
 
@@ -1334,7 +1320,7 @@ LttvEvent *event;
   guint8 minor = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 1));
   gint devcode_gint = MKDEV(major,minor);
 
-  guint trace_num = 0; //TODO put the real trace_num;
+  guint trace_num = lttv_traceset_get_trace_index_from_event(event);
 
   LttvBdevState *bdev = g_hash_table_lookup(ts->bdev_states, &devcode_gint); 
   /* the result of the lookup might be NULL. that's ok, the rest of the function
@@ -1871,8 +1857,8 @@ void draw_closure(gpointer key, gpointer value, gpointer user_data)
 #ifdef EXTRA_CHECK
     g_assert(lttv_traceset_number(tsc->ts) > 0);
 #endif //EXTRA_CHECK
-    //TODO Fdeslauriers 2012-07-17: adapt for multiple traces
-    LttvTrace *trace = lttv_traceset_get(ts,0);
+
+    LttvTrace *trace = lttv_traceset_get(ts,process_info->trace_num);
     LttvTraceState *ts = trace->state;
 
     /* Only draw for processes that are currently in the trace states */
@@ -2084,8 +2070,6 @@ int after_chunk(void *hook_data, void *call_data)
   ControlFlowData *resourceview_data = events_request->viewer_data;
   LttvTraceset *ts = (LttvTraceset*)call_data;
 
-  LttTime end_time;
-  
   ProcessList *process_list = resourceview_data->process_list;
   guint i;
   guint nb_trace = lttv_traceset_number(ts);
@@ -2099,12 +2083,7 @@ int after_chunk(void *hook_data, void *call_data)
   }
   g_free(process_list->current_hash_data);
   process_list->current_hash_data = NULL;
-#ifdef BABEL_CLEANUP
-  if(tfc != NULL)
-    end_time = LTT_TIME_MIN(tfc->timestamp, events_request->end_time);
-  else /* end of traceset, or position now out of request : end */
-    end_time = events_request->end_time;
-#endif
+
   draw_closing_lines(resourceview_data, events_request);
 
   return 0;
@@ -2129,10 +2108,6 @@ int before_statedump_end(void *hook_data, void *call_data)
 
   ControlFlowData *resourceview_data = (ControlFlowData*) hook_data;
 
-
-  LttvTraceState *ts = event->state;
-
-
   gint i;
 
 #ifdef BABEL_CLEANUP
This page took 0.029025 seconds and 4 git commands to generate.