]> bbs.cooldavid.org Git - net-next-2.6.git/blob - include/trace/boot.h
tracing/fastboot: Use the ring-buffer timestamp for initcall entries
[net-next-2.6.git] / include / trace / boot.h
1 #ifndef _LINUX_TRACE_BOOT_H
2 #define _LINUX_TRACE_BOOT_H
3
4 /*
5  * Structure which defines the trace of an initcall
6  * while it is called.
7  * You don't have to fill the func field since it is
8  * only used internally by the tracer.
9  */
10 struct boot_trace_call {
11         pid_t                   caller;
12         char                    func[KSYM_NAME_LEN];
13 };
14
15 /*
16  * Structure which defines the trace of an initcall
17  * while it returns.
18  */
19 struct boot_trace_ret {
20         char                    func[KSYM_NAME_LEN];
21         int                             result;
22         unsigned long long      duration;               /* nsecs */
23 };
24
25 #ifdef CONFIG_BOOT_TRACER
26 /* Append the traces on the ring-buffer */
27 extern void trace_boot_call(struct boot_trace_call *bt, initcall_t fn);
28 extern void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn);
29
30 /* Tells the tracer that smp_pre_initcall is finished.
31  * So we can start the tracing
32  */
33 extern void start_boot_trace(void);
34
35 /* Resume the tracing of other necessary events
36  * such as sched switches
37  */
38 extern void enable_boot_trace(void);
39
40 /* Suspend this tracing. Actually, only sched_switches tracing have
41  * to be suspended. Initcalls doesn't need it.)
42  */
43 extern void disable_boot_trace(void);
44 #else
45 static inline
46 void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) { }
47
48 static inline
49 void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) { }
50
51 static inline void start_boot_trace(void) { }
52 static inline void enable_boot_trace(void) { }
53 static inline void disable_boot_trace(void) { }
54 #endif /* CONFIG_BOOT_TRACER */
55
56 #endif /* __LINUX_TRACE_BOOT_H */