type cast FIELD_ARRAY
[lttv.git] / ltt / branches / poly / lttv / lttv / state.c
index d6fa8971888c847ac422ddadcf98cda135392367..792f9cefe517cfe00f1e88471866b509f04b3b28 100644 (file)
@@ -195,7 +195,6 @@ static LttvBdevState *bdevstate_new(void);
 static void bdevstate_free(LttvBdevState *);
 static void bdevstate_free_cb(gpointer key, gpointer value, gpointer user_data);
 static LttvBdevState *bdevstate_copy(LttvBdevState *bds);
-static LttvBdevState *bdev_state_get(LttvTraceState *ts, guint16 devcode);
 
 
 void lttv_state_save(LttvTraceState *self, LttvAttribute *container)
@@ -1615,11 +1614,9 @@ typedef struct _LttvNameTables {
 static void 
 create_name_tables(LttvTraceState *tcs) 
 {
-  int i, nb;
+  int i;
 
-  LttvTraceHook h;
-
-  LttType *t;
+  LttvTraceHook th;
 
   GString *fe_name = g_string_new("");
 
@@ -1634,34 +1631,34 @@ create_name_tables(LttvTraceState *tcs)
 
   if(!lttv_trace_find_hook(tcs->parent.t,
       LTT_EVENT_SYSCALL_ENTRY,
-      LTT_FIELD_SYSCALL_ID, 0, 0,
-      NULL, NULL, &h)) {
-    
-    thf = lttv_trace_hook_get_first(&h);
+      FIELD_ARRAY(LTT_FIELD_SYSCALL_ID),
+      NULL, NULL)) {
     
-    t = ltt_field_type(thf->f1);
-    nb = ltt_type_element_number(t);
-    
-    lttv_trace_hook_destroy(&h);
-
-    name_tables->syscall_names = g_new(GQuark, nb);
-    name_tables->nb_syscalls = nb;
-
-    for(i = 0 ; i < nb ; i++) {
-      name_tables->syscall_names[i] = ltt_enum_string_get(t, i);
-      if(!name_tables->syscall_names[i]) {
-        GString *string = g_string_new("");
-        g_string_printf(string, "syscall %u", i);
-        name_tables->syscall_names[i] = g_quark_from_string(string->str);
-        g_string_free(string, TRUE);
-      }
+//    th = lttv_trace_hook_get_first(&th);
+//    
+//    t = ltt_field_type(th->f1);
+//    nb = ltt_type_element_number(t);
+//    
+    lttv_trace_hook_destroy(&th);
+//
+//    name_tables->syscall_names = g_new(GQuark, nb);
+//    name_tables->nb_syscalls = nb;
+//
+//    for(i = 0 ; i < nb ; i++) {
+//      name_tables->syscall_names[i] = ltt_enum_string_get(t, i);
+//      if(!name_tables->syscall_names[i]) {
+//        GString *string = g_string_new("");
+//        g_string_printf(string, "syscall %u", i);
+//        name_tables->syscall_names[i] = g_quark_from_string(string->str);
+//        g_string_free(string, TRUE);
+//      }
+//    }
+
+    name_tables->syscall_names = g_new(GQuark, 256);
+    for(i = 0 ; i < 256 ; i++) {
+      g_string_printf(fe_name, "syscall %d", i);
+      name_tables->syscall_names[i] = g_quark_from_string(fe_name->str);
     }
-
-    //name_tables->syscall_names = g_new(GQuark, 256);
-    //for(i = 0 ; i < 256 ; i++) {
-    //  g_string_printf(fe_name, "syscall %d", i);
-    //  name_tables->syscall_names[i] = g_quark_from_string(fe_name->str);
-    //}
   } else {
     name_tables->syscall_names = NULL;
     name_tables->nb_syscalls = 0;
@@ -1670,22 +1667,21 @@ create_name_tables(LttvTraceState *tcs)
   if(!lttv_trace_find_hook(tcs->parent.t,
         LTT_EVENT_TRAP_ENTRY,
         LTT_FIELD_TRAP_ID, 0, 0,
-        NULL, NULL, &h)) {
+        NULL, NULL, &th)) {
 
-    thf = lttv_trace_hook_get_first(&h);
+//    th = lttv_trace_hook_get_first(&th);
+//
+//    t = ltt_field_type(th->f1);
+//    //nb = ltt_type_element_number(t);
+//
+    lttv_trace_hook_destroy(&th);
 
-    t = ltt_field_type(thf->f1);
-    //nb = ltt_type_element_number(t);
+//    name_tables->trap_names = g_new(GQuark, nb);
+//    for(i = 0 ; i < nb ; i++) {
+//      name_tables->trap_names[i] = g_quark_from_string(
+//          ltt_enum_string_get(t, i));
+//    }
 
-    lttv_trace_hook_destroy(&h);
-
-    /*
-    name_tables->trap_names = g_new(GQuark, nb);
-    for(i = 0 ; i < nb ; i++) {
-      name_tables->trap_names[i] = g_quark_from_string(
-          ltt_enum_string_get(t, i));
-    }
-    */
     name_tables->nb_traps = 256;
     name_tables->trap_names = g_new(GQuark, 256);
     for(i = 0 ; i < 256 ; i++) {
@@ -1700,14 +1696,9 @@ create_name_tables(LttvTraceState *tcs)
   if(!lttv_trace_find_hook(tcs->parent.t,
         LTT_EVENT_IRQ_ENTRY,
         LTT_FIELD_IRQ_ID, 0, 0,
-        NULL, NULL, &h)) {
-    
-    thf = lttv_trace_hook_get_first(&h);
+        NULL, NULL, &th)) {
     
-    t = ltt_field_type(thf->f1);
-    //nb = ltt_type_element_number(t);
-
-    lttv_trace_hook_destroy(&h);
+    lttv_trace_hook_destroy(&th);
 
     /*
     name_tables->irq_names = g_new(GQuark, nb);
@@ -2381,7 +2372,7 @@ static gboolean bdev_request_complete(void *hook_data, void *call_data)
 
   guint major = ltt_event_get_long_unsigned(e, th->f1);
   guint minor = ltt_event_get_long_unsigned(e, th->f2);
-  guint oper = ltt_event_get_long_unsigned(e, th->f3);
+  //guint oper = ltt_event_get_long_unsigned(e, th->f3);
   guint16 devcode = MKDEV(major,minor);
 
   /* have we seen this block device before? */
@@ -2479,7 +2470,7 @@ static gboolean schedchange(void *hook_data, void *call_data)
   guint cpu = s->cpu;
   LttvTraceState *ts = (LttvTraceState*)s->parent.t_context;
   LttvProcessState *process = ts->running_process[cpu];
-  LttvProcessState *old_process = ts->running_process[cpu];
+  //LttvProcessState *old_process = ts->running_process[cpu];
   
   LttEvent *e = ltt_tracefile_get_event(s->parent.tf);
   LttvTraceHook *th = (LttvTraceHook *)hook_data;
@@ -2840,7 +2831,6 @@ static gboolean enum_process_state(void *hook_data, void *call_data)
   LttvTracefileState *s = (LttvTracefileState *)call_data;
   LttEvent *e = ltt_tracefile_get_event(s->parent.tf);
   //It's slow : optimise later by doing this before reading trace.
-  LttEventType *et = ltt_event_eventtype(e);
   LttvTraceHook *th = (LttvTraceHook *)hook_data;
   guint parent_pid;
   guint pid;
@@ -2854,6 +2844,7 @@ static gboolean enum_process_state(void *hook_data, void *call_data)
   GQuark type, mode, submode, status;
   LttvExecutionState *es;
   guint i, nb_cpus;
+  struct marker_info *mi;
 
   /* PID */
   pid = ltt_event_get_unsigned(e, th->f1);
@@ -2866,27 +2857,33 @@ static gboolean enum_process_state(void *hook_data, void *call_data)
   command = ltt_event_get_string(e, th->f3);
 
   /* type */
-  f4 = ltt_eventtype_field_by_name(et, LTT_FIELD_TYPE);
+  mi = marker_get_info_from_id(ts->parent.t, e->event_id);
+  f4 = marker_get_field(mi, 3);
+  g_assert(f4->name == LTT_FIELD_TYPE);
   type = ltt_enum_string_get(ltt_field_type(f4),
       ltt_event_get_unsigned(e, f4));
 
   /* mode */
-  f5 = ltt_eventtype_field_by_name(et, LTT_FIELD_MODE);
+  f5 = marker_get_field(mi, 4);
+  g_assert(f5->name == LTT_FIELD_MODE);
   mode = ltt_enum_string_get(ltt_field_type(f5), 
       ltt_event_get_unsigned(e, f5));
 
   /* submode */
-  f6 = ltt_eventtype_field_by_name(et, LTT_FIELD_SUBMODE);
+  f6 = marker_get_field(mi, 5);
+  g_assert(f6->name == LTT_FIELD_SUBMODE);
   submode = ltt_enum_string_get(ltt_field_type(f6), 
       ltt_event_get_unsigned(e, f6));
 
   /* status */
-  f7 = ltt_eventtype_field_by_name(et, LTT_FIELD_STATUS);
+  f7 = marker_get_field(mi, 6);
+  g_assert(f7->name == LTT_FIELD_STATUS);
   status = ltt_enum_string_get(ltt_field_type(f7), 
       ltt_event_get_unsigned(e, f7));
 
   /* TGID */
-  f8 = ltt_eventtype_field_by_name(et, LTT_FIELD_TGID);
+  f8 = marker_get_field(mi, 7);
+  g_assert(f8->name == LTT_FIELD_TGID);
   if(f8) tgid = ltt_event_get_unsigned(e, f8);
   else tgid = 0;
 
@@ -3013,7 +3010,7 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
 {
   LttvTraceset *traceset = self->parent.ts;
 
-  guint i, j, k, l, nb_trace, nb_tracefile;
+  guint i, j, k, nb_trace, nb_tracefile;
 
   LttvTraceState *ts;
 
@@ -3023,8 +3020,6 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
 
   LttvTraceHook *th;
   
-  LttvTraceHook *hook;
-
   LttvAttributeValue val;
 
   gint ret;
@@ -3187,15 +3182,12 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
                                           LttvTracefileContext*, j));
 
       for(k = 0 ; k < hooks->len ; 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);
+        th = &g_array_index(hooks, LttvTraceHook, k);
           lttv_hooks_add(
-            lttv_hooks_by_id_find(tfs->parent.event_by_id, thf->id),
-            thf->h,
-            thf,
+            lttv_hooks_by_id_find(tfs->parent.event_by_id, th->id),
+            th->h,
+            th,
             LTTV_PRIO_STATE);
-        }
       }
     }
     lttv_attribute_find(ts->parent.a, LTTV_STATE_HOOKS, LTTV_POINTER, &val);
@@ -3216,7 +3208,7 @@ void lttv_state_remove_event_hooks(LttvTracesetState *self)
 {
   LttvTraceset *traceset = self->parent.ts;
 
-  guint i, j, k, l, nb_trace, nb_tracefile;
+  guint i, j, k, nb_trace, nb_tracefile;
 
   LttvTraceState *ts;
 
@@ -3224,9 +3216,7 @@ void lttv_state_remove_event_hooks(LttvTracesetState *self)
 
   GArray *hooks;
 
-  LttvTraceHook *hook;
-  
-  LttvTraceHookByFacility *thf;
+  LttvTraceHook *th;
 
   LttvAttributeValue val;
 
@@ -3247,15 +3237,11 @@ void lttv_state_remove_event_hooks(LttvTracesetState *self)
                                           LttvTracefileContext*, j));
 
       for(k = 0 ; k < hooks->len ; 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);
-          
+        th = &g_array_index(hooks, LttvTraceHook, k);
           lttv_hooks_remove_data(
-            lttv_hooks_by_id_find(tfs->parent.event_by_id, thf->id),
-                    thf->h,
-                    thf);
-        }
+            lttv_hooks_by_id_find(tfs->parent.event_by_id, th->id),
+                    th->h,
+                    th);
       }
     }
     for(k = 0 ; k < hooks->len ; k++)
@@ -3276,16 +3262,8 @@ static gboolean state_save_event_hook(void *hook_data, void *call_data)
   
   LttvTracefileState *self = (LttvTracefileState *)call_data;
 
-  LttvTracefileState *tfcs;
-
   LttvTraceState *tcs = (LttvTraceState *)(self->parent.t_context);
 
-  LttEventPosition *ep;
-
-  guint i;
-
-  LttTracefile *tf;
-
   LttvAttribute *saved_states_tree, *saved_state_tree;
 
   LttvAttributeValue value;
This page took 0.025575 seconds and 4 git commands to generate.