+static gboolean fs_open(void *hook_data, void *call_data)
+{
+ LttvTracefileState *s = (LttvTracefileState *)call_data;
+ LttvTraceState *ts = (LttvTraceState *)s->parent.t_context;
+ LttEvent *e = ltt_tracefile_get_event(s->parent.tf);
+ LttvTraceHook *th = (LttvTraceHook *)hook_data;
+ struct marker_field *f;
+ guint cpu = s->cpu;
+ int fd;
+ char *filename;
+ LttvProcessState *process = ts->running_process[cpu];
+
+ f = lttv_trace_get_hook_field(th, 0);
+ fd = ltt_event_get_int(e, f);
+
+ f = lttv_trace_get_hook_field(th, 1);
+ filename = ltt_event_get_string(e, f);
+
+ g_hash_table_insert(process->fds, (gpointer)(long)fd,
+ (gpointer)(unsigned long)g_quark_from_string(filename));
+
+ return FALSE;
+}
+
+static void print_stack(LttvProcessState *process)
+{
+ LttvExecutionState *es;
+ int i;
+
+ g_debug("Execution stack for process %u %s:\n",
+ process->pid, g_quark_to_string(process->name));
+
+ for (i = 0; i < process->execution_stack->len; i++) {
+ es = &g_array_index(process->execution_stack,
+ LttvExecutionState, i);
+ g_debug("Depth %d mode %s submode %s status %s\n",
+ i, g_quark_to_string(es->t),
+ g_quark_to_string(es->n),
+ g_quark_to_string(es->s));
+ }
+
+}
+