tracing/fastboot: Use the ring-buffer timestamp for initcall entries
[deliverable/linux.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 */
This page took 0.033637 seconds and 6 git commands to generate.