Contributors: 12
Author |
Tokens |
Token Proportion |
Commits |
Commit Proportion |
Ingo Molnar |
68 |
31.78% |
1 |
7.69% |
JoonSoo Kim |
36 |
16.82% |
1 |
7.69% |
Török Edwin |
31 |
14.49% |
2 |
15.38% |
Josh Poimboeuf |
27 |
12.62% |
1 |
7.69% |
Arjan van de Ven |
24 |
11.21% |
1 |
7.69% |
Vegard Nossum |
8 |
3.74% |
1 |
7.69% |
Soeren Sandmann Pedersen |
6 |
2.80% |
1 |
7.69% |
Andi Kleen |
4 |
1.87% |
1 |
7.69% |
Masami Hiramatsu |
4 |
1.87% |
1 |
7.69% |
Andrew Morton |
3 |
1.40% |
1 |
7.69% |
Johannes Berg |
2 |
0.93% |
1 |
7.69% |
Greg Kroah-Hartman |
1 |
0.47% |
1 |
7.69% |
Total |
214 |
|
13 |
|
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __LINUX_STACKTRACE_H
#define __LINUX_STACKTRACE_H
#include <linux/types.h>
struct task_struct;
struct pt_regs;
#ifdef CONFIG_STACKTRACE
struct stack_trace {
unsigned int nr_entries, max_entries;
unsigned long *entries;
int skip; /* input argument: How many entries to skip */
};
extern void save_stack_trace(struct stack_trace *trace);
extern void save_stack_trace_regs(struct pt_regs *regs,
struct stack_trace *trace);
extern void save_stack_trace_tsk(struct task_struct *tsk,
struct stack_trace *trace);
extern int save_stack_trace_tsk_reliable(struct task_struct *tsk,
struct stack_trace *trace);
extern void print_stack_trace(struct stack_trace *trace, int spaces);
extern int snprint_stack_trace(char *buf, size_t size,
struct stack_trace *trace, int spaces);
#ifdef CONFIG_USER_STACKTRACE_SUPPORT
extern void save_stack_trace_user(struct stack_trace *trace);
#else
# define save_stack_trace_user(trace) do { } while (0)
#endif
#else /* !CONFIG_STACKTRACE */
# define save_stack_trace(trace) do { } while (0)
# define save_stack_trace_tsk(tsk, trace) do { } while (0)
# define save_stack_trace_user(trace) do { } while (0)
# define print_stack_trace(trace, spaces) do { } while (0)
# define snprint_stack_trace(buf, size, trace, spaces) do { } while (0)
# define save_stack_trace_tsk_reliable(tsk, trace) ({ -ENOSYS; })
#endif /* CONFIG_STACKTRACE */
#endif /* __LINUX_STACKTRACE_H */