Temporary fix for large IRQ tables
[lttv.git] / lttv / lttv / state.h
index 8ed648f289d1b89b34fa0ca4a7b185ffb993654d..25d5a0623477297f4ba554ed63d159630d20d51d 100644 (file)
@@ -142,7 +142,9 @@ extern GQuark
     LTT_FIELD_ADDRESS,
     LTT_FIELD_SYMBOL,
     LTT_FIELD_IP,
-    LTT_FIELD_FD;
+    LTT_FIELD_FD,
+    LTT_FIELD_STATE,
+    LTT_FIELD_CPU_ID;
 
 typedef struct _LttvTracesetState LttvTracesetState;
 typedef struct _LttvTracesetStateClass LttvTracesetStateClass;
@@ -361,6 +363,18 @@ typedef struct _LttvBdevState {
   GArray *mode_stack;
 } LttvBdevState;
 
+typedef struct _LttvNameTables {
+  GQuark *syscall_names;
+  guint nb_syscalls;
+  GQuark *trap_names;
+  guint nb_traps;
+  GQuark *irq_names;
+  guint nb_irqs;
+  GQuark *soft_irq_names;
+  guint nb_soft_irqs;
+  GHashTable *kprobe_hash;
+} LttvNameTables;
+
 struct _LttvTraceState {
   LttvTraceContext parent;
 
@@ -371,14 +385,7 @@ struct _LttvTraceState {
   guint nb_event, save_interval;
   /* Block/char devices, locks, memory pages... */
   GQuark *eventtype_names;
-  GQuark *syscall_names;
-  guint  nb_syscalls;
-  GQuark *trap_names;
-  guint  nb_traps;
-  guint  nb_irqs;
-  guint  nb_soft_irqs;
-  GQuark *irq_names;
-  GQuark *soft_irq_names;
+  LttvNameTables *name_tables;
   LttTime *max_time_state_recomputed_in_seek;
   GHashTable *kprobe_hash;
 
@@ -386,8 +393,11 @@ struct _LttvTraceState {
   LttvProcessState **running_process;
   gboolean has_precomputed_states;
   LttvCPUState *cpu_states; /* state of each cpu */
+  /* FIXME should be a g_array to deal with resize and copy. */
   LttvIRQState *irq_states; /* state of each irq handler */
+  /* FIXME should be a g_array to deal with resize and copy. */
   LttvSoftIRQState *soft_irq_states; /* state of each softirq */
+  /* FIXME should be a g_array to deal with resize and copy. */
   LttvTrapState *trap_states; /* state of each trap */
   GHashTable *bdev_states; /* state of the block devices */
 };
This page took 0.023817 seconds and 4 git commands to generate.