| 1 | /* SPDX-License-Identifier: GPL-2.0 */ | 
|---|
| 2 | #ifndef _LINUX_SCHED_DEBUG_H | 
|---|
| 3 | #define _LINUX_SCHED_DEBUG_H | 
|---|
| 4 |  | 
|---|
| 5 | /* | 
|---|
| 6 | * Various scheduler/task debugging interfaces: | 
|---|
| 7 | */ | 
|---|
| 8 |  | 
|---|
| 9 | struct task_struct; | 
|---|
| 10 | struct pid_namespace; | 
|---|
| 11 |  | 
|---|
| 12 | extern void dump_cpu_task(int cpu); | 
|---|
| 13 |  | 
|---|
| 14 | /* | 
|---|
| 15 | * Only dump TASK_* tasks. (0 for all tasks) | 
|---|
| 16 | */ | 
|---|
| 17 | extern void show_state_filter(unsigned int state_filter); | 
|---|
| 18 |  | 
|---|
| 19 | static inline void show_state(void) | 
|---|
| 20 | { | 
|---|
| 21 | show_state_filter(state_filter: 0); | 
|---|
| 22 | } | 
|---|
| 23 |  | 
|---|
| 24 | struct pt_regs; | 
|---|
| 25 |  | 
|---|
| 26 | extern void show_regs(struct pt_regs *); | 
|---|
| 27 |  | 
|---|
| 28 | /* | 
|---|
| 29 | * TASK is a pointer to the task whose backtrace we want to see (or NULL for current | 
|---|
| 30 | * task), SP is the stack pointer of the first frame that should be shown in the back | 
|---|
| 31 | * trace (or NULL if the entire call-chain of the task should be shown). | 
|---|
| 32 | */ | 
|---|
| 33 | extern void show_stack(struct task_struct *task, unsigned long *sp, | 
|---|
| 34 | const char *loglvl); | 
|---|
| 35 |  | 
|---|
| 36 | extern void sched_show_task(struct task_struct *p); | 
|---|
| 37 |  | 
|---|
| 38 | struct seq_file; | 
|---|
| 39 | extern void proc_sched_show_task(struct task_struct *p, | 
|---|
| 40 | struct pid_namespace *ns, struct seq_file *m); | 
|---|
| 41 | extern void proc_sched_set_task(struct task_struct *p); | 
|---|
| 42 |  | 
|---|
| 43 | /* Attach to any functions which should be ignored in wchan output. */ | 
|---|
| 44 | #define __sched		__section(".sched.text") | 
|---|
| 45 |  | 
|---|
| 46 | /* Linker adds these: start and end of __sched functions */ | 
|---|
| 47 | extern char __sched_text_start[], __sched_text_end[]; | 
|---|
| 48 |  | 
|---|
| 49 | /* Is this address in the __sched functions? */ | 
|---|
| 50 | extern int in_sched_functions(unsigned long addr); | 
|---|
| 51 |  | 
|---|
| 52 | #endif /* _LINUX_SCHED_DEBUG_H */ | 
|---|
| 53 |  | 
|---|