diff options
Diffstat (limited to 'include/linux/ftrace.h')
-rw-r--r-- | include/linux/ftrace.h | 37 |
1 files changed, 6 insertions, 31 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 015a3d22cf74..8a0c2f221e6b 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
@@ -356,6 +356,9 @@ struct ftrace_graph_ret { | |||
356 | 356 | ||
357 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 357 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
358 | 358 | ||
359 | /* for init task */ | ||
360 | #define INIT_FTRACE_GRAPH .ret_stack = NULL, | ||
361 | |||
359 | /* | 362 | /* |
360 | * Stack of return addresses for functions | 363 | * Stack of return addresses for functions |
361 | * of a thread. | 364 | * of a thread. |
@@ -430,10 +433,11 @@ static inline void unpause_graph_tracing(void) | |||
430 | { | 433 | { |
431 | atomic_dec(¤t->tracing_graph_pause); | 434 | atomic_dec(¤t->tracing_graph_pause); |
432 | } | 435 | } |
433 | #else | 436 | #else /* !CONFIG_FUNCTION_GRAPH_TRACER */ |
434 | 437 | ||
435 | #define __notrace_funcgraph | 438 | #define __notrace_funcgraph |
436 | #define __irq_entry | 439 | #define __irq_entry |
440 | #define INIT_FTRACE_GRAPH | ||
437 | 441 | ||
438 | static inline void ftrace_graph_init_task(struct task_struct *t) { } | 442 | static inline void ftrace_graph_init_task(struct task_struct *t) { } |
439 | static inline void ftrace_graph_exit_task(struct task_struct *t) { } | 443 | static inline void ftrace_graph_exit_task(struct task_struct *t) { } |
@@ -445,7 +449,7 @@ static inline int task_curr_ret_stack(struct task_struct *tsk) | |||
445 | 449 | ||
446 | static inline void pause_graph_tracing(void) { } | 450 | static inline void pause_graph_tracing(void) { } |
447 | static inline void unpause_graph_tracing(void) { } | 451 | static inline void unpause_graph_tracing(void) { } |
448 | #endif | 452 | #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ |
449 | 453 | ||
450 | #ifdef CONFIG_TRACING | 454 | #ifdef CONFIG_TRACING |
451 | #include <linux/sched.h> | 455 | #include <linux/sched.h> |
@@ -507,33 +511,4 @@ static inline void trace_hw_branch_oops(void) {} | |||
507 | 511 | ||
508 | #endif /* CONFIG_HW_BRANCH_TRACER */ | 512 | #endif /* CONFIG_HW_BRANCH_TRACER */ |
509 | 513 | ||
510 | /* | ||
511 | * A syscall entry in the ftrace syscalls array. | ||
512 | * | ||
513 | * @name: name of the syscall | ||
514 | * @nb_args: number of parameters it takes | ||
515 | * @types: list of types as strings | ||
516 | * @args: list of args as strings (args[i] matches types[i]) | ||
517 | */ | ||
518 | struct syscall_metadata { | ||
519 | const char *name; | ||
520 | int nb_args; | ||
521 | const char **types; | ||
522 | const char **args; | ||
523 | }; | ||
524 | |||
525 | #ifdef CONFIG_FTRACE_SYSCALLS | ||
526 | extern void arch_init_ftrace_syscalls(void); | ||
527 | extern struct syscall_metadata *syscall_nr_to_meta(int nr); | ||
528 | extern void start_ftrace_syscalls(void); | ||
529 | extern void stop_ftrace_syscalls(void); | ||
530 | extern void ftrace_syscall_enter(struct pt_regs *regs); | ||
531 | extern void ftrace_syscall_exit(struct pt_regs *regs); | ||
532 | #else | ||
533 | static inline void start_ftrace_syscalls(void) { } | ||
534 | static inline void stop_ftrace_syscalls(void) { } | ||
535 | static inline void ftrace_syscall_enter(struct pt_regs *regs) { } | ||
536 | static inline void ftrace_syscall_exit(struct pt_regs *regs) { } | ||
537 | #endif | ||
538 | |||
539 | #endif /* _LINUX_FTRACE_H */ | 514 | #endif /* _LINUX_FTRACE_H */ |