- hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 7);
- g_array_set_size(hooks, 7);
-
- ret = lttv_trace_find_hook(ts->parent.parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_SYSCALL_ENTRY,
- LTT_FIELD_SYSCALL_ID, 0, 0,
- before_syscall_entry,
- &g_array_index(hooks, LttvTraceHook, 0));
- g_assert(!ret);
-
- ret = lttv_trace_find_hook(ts->parent.parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_SYSCALL_EXIT,
- 0, 0, 0,
- before_syscall_exit,
- &g_array_index(hooks, LttvTraceHook, 1));
- g_assert(!ret);
-
- ret = lttv_trace_find_hook(ts->parent.parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_ENTRY,
- LTT_FIELD_TRAP_ID, 0, 0,
- before_trap_entry,
- &g_array_index(hooks, LttvTraceHook, 2));
- g_assert(!ret);
-
- ret = lttv_trace_find_hook(ts->parent.parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_EXIT,
- 0, 0, 0,
- before_trap_exit, &g_array_index(hooks, LttvTraceHook, 3));
- g_assert(!ret);
-
- ret = lttv_trace_find_hook(ts->parent.parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY,
- LTT_FIELD_IRQ_ID, 0, 0,
- before_irq_entry, &g_array_index(hooks, LttvTraceHook, 4));
- g_assert(!ret);
-
- ret = lttv_trace_find_hook(ts->parent.parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_EXIT,
- 0, 0, 0,
- before_irq_exit, &g_array_index(hooks, LttvTraceHook, 5));
- g_assert(!ret);
-
- ret = lttv_trace_find_hook(ts->parent.parent.t,
- LTT_FACILITY_PROCESS, LTT_EVENT_SCHEDCHANGE,
- LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE,
- before_schedchange,
- &g_array_index(hooks, LttvTraceHook, 6));
- g_assert(!ret);
+ hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 12);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL_ARCH,
+ LTT_EVENT_SYSCALL_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_SYSCALL_ID),
+ before_syscall_entry, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL_ARCH,
+ LTT_EVENT_SYSCALL_EXIT,
+ NULL,
+ before_syscall_exit, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL_ARCH,
+ LTT_EVENT_TRAP_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+ before_trap_entry, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL_ARCH,
+ LTT_EVENT_TRAP_EXIT,
+ NULL,
+ before_trap_exit, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL,
+ LTT_EVENT_IRQ_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_IRQ_ID),
+ before_irq_entry, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL,
+ LTT_EVENT_IRQ_EXIT,
+ NULL,
+ before_irq_exit, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL,
+ LTT_EVENT_SOFT_IRQ_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_SOFT_IRQ_ID),
+ before_soft_irq_entry, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL,
+ LTT_EVENT_SOFT_IRQ_EXIT,
+ NULL,
+ before_soft_irq_exit, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_KERNEL,
+ LTT_EVENT_SCHED_SCHEDULE,
+ FIELD_ARRAY(LTT_FIELD_PREV_PID, LTT_FIELD_NEXT_PID, LTT_FIELD_PREV_STATE),
+ before_schedchange, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_USER_GENERIC,
+ LTT_EVENT_FUNCTION_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_THIS_FN, LTT_FIELD_CALL_SITE),
+ before_function_entry, NULL,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_USER_GENERIC,
+ LTT_EVENT_FUNCTION_EXIT,
+ FIELD_ARRAY(LTT_FIELD_THIS_FN, LTT_FIELD_CALL_SITE),
+ before_function_exit, NULL,
+ &hooks);
+
+ /* statedump-related hooks */
+ lttv_trace_find_hook(ts->parent.parent.t,
+ LTT_FACILITY_LIST,
+ LTT_EVENT_PROCESS_STATE,
+ FIELD_ARRAY(LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME),
+ before_enum_process_state, NULL,
+ &hooks);