fixed some errors !
[lttv.git] / ltt / branches / poly / lttv / lttv / state.h
index 06d69c0462e40a99b13a097e0c20cc7e6c119eee..f349993764418b732f67f5b82b5c848feb844f47 100644 (file)
@@ -28,7 +28,7 @@
    sufficient for the analysis, and possibly organized quite differently.
 
    The state information is added to LttvTracesetContext, LttvTraceContext 
-   and LttvTracefileContext objects, used by processTrace, through
+   and LttvTracefileContext objects, used by process_traceset, through
    subtyping. The context objects already reflect the multiple tracefiles
    (one per cpu) per trace and multiple traces per trace set. The state
    objects defined here simply add fields to the relevant context objects. 
@@ -60,13 +60,19 @@ typedef struct _LttvTraceStateClass LttvTraceStateClass;
 typedef struct _LttvTracefileState LttvTracefileState;
 typedef struct _LttvTracefileStateClass LttvTracefileStateClass;
 
+gint lttv_state_hook_add_event_hooks(void *hook_data, void *call_data);
 void lttv_state_add_event_hooks(LttvTracesetState *self);
 
+gint lttv_state_hook_remove_event_hooks(void *hook_data, void *call_data);
 void lttv_state_remove_event_hooks(LttvTracesetState *self);
 
 void lttv_state_save_add_event_hooks(LttvTracesetState *self);
+// Hook wrapper. call_data is a trace context.
+gint lttv_state_save_hook_add_event_hooks(void *hook_data, void *call_data);
 
 void lttv_state_save_remove_event_hooks(LttvTracesetState *self);
+// Hook wrapper. call_data is a trace context.
+gint lttv_state_save_hook_remove_event_hooks(void *hook_data, void *call_data);
 
 void lttv_state_traceset_seek_time_closest(LttvTracesetState *self, LttTime t);
 
@@ -120,6 +126,7 @@ extern LttvProcessStatus
   LTTV_STATE_WAIT_FORK,
   LTTV_STATE_WAIT_CPU,
   LTTV_STATE_EXIT,
+  LTTV_STATE_ZOMBIE,
   LTTV_STATE_WAIT,
   LTTV_STATE_RUN;
 
@@ -143,16 +150,13 @@ typedef struct _LttvProcessState {
   GArray *execution_stack;         /* Array of LttvExecutionState */
   LttvExecutionState *state;       /* Top of interrupt stack */
   GQuark last_cpu;                /* Last CPU where process was scheduled */
+  guint last_cpu_index;            /* index in the trace for cpu tracefile */
   /* opened file descriptors, address map?... */
 } LttvProcessState;
 
-
 LttvProcessState *
 lttv_state_find_process(LttvTracefileState *tfs, guint pid);
 
-LttvProcessState *
-lttv_state_find_process_from_trace(LttvTraceState *ts, GQuark cpu, guint pid);
-
 LttvProcessState *
 lttv_state_find_process_or_create(LttvTracefileState *tfs, guint pid);
 
@@ -193,7 +197,8 @@ GType lttv_traceset_state_get_type (void);
 struct _LttvTraceState {
   LttvTraceContext parent;
 
-  GHashTable *processes;  /* LttvProcessState objects indexed by pid */
+  GHashTable *processes;  /* LttvProcessState objects indexed by pid and
+                             last_cpu */
   guint nb_event, save_interval;
   /* Block/char devices, locks, memory pages... */
   GQuark *eventtype_names;
This page took 0.024295 seconds and 4 git commands to generate.