1 #ifndef _LINUX_TRACE_BOOT_H
2 #define _LINUX_TRACE_BOOT_H
4 #include <linux/module.h>
5 #include <linux/kallsyms.h>
6 #include <linux/init.h>
9 * Structure which defines the trace of an initcall
11 * You don't have to fill the func field since it is
12 * only used internally by the tracer.
14 struct boot_trace_call {
16 char func[KSYM_SYMBOL_LEN];
20 * Structure which defines the trace of an initcall
23 struct boot_trace_ret {
24 char func[KSYM_SYMBOL_LEN];
26 unsigned long long duration; /* nsecs */
29 #ifdef CONFIG_BOOT_TRACER
30 /* Append the traces on the ring-buffer */
31 extern void trace_boot_call(struct boot_trace_call *bt, initcall_t fn);
32 extern void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn);
34 /* Tells the tracer that smp_pre_initcall is finished.
35 * So we can start the tracing
37 extern void start_boot_trace(void);
39 /* Resume the tracing of other necessary events
40 * such as sched switches
42 extern void enable_boot_trace(void);
44 /* Suspend this tracing. Actually, only sched_switches tracing have
45 * to be suspended. Initcalls doesn't need it.)
47 extern void disable_boot_trace(void);
50 void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) { }
53 void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) { }
55 static inline void start_boot_trace(void) { }
56 static inline void enable_boot_trace(void) { }
57 static inline void disable_boot_trace(void) { }
58 #endif /* CONFIG_BOOT_TRACER */
60 #endif /* __LINUX_TRACE_BOOT_H */