thinkpad-acpi: hotkey event driver update
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / trace / boot.h
blob088ea089e31d38ca8f2acb5e57fed5cd77d24f6c
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>
8 /*
9 * Structure which defines the trace of an initcall
10 * while it is called.
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 {
15 pid_t caller;
16 char func[KSYM_SYMBOL_LEN];
20 * Structure which defines the trace of an initcall
21 * while it returns.
23 struct boot_trace_ret {
24 char func[KSYM_SYMBOL_LEN];
25 int result;
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);
48 #else
49 static inline
50 void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) { }
52 static inline
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 */