cregit-Linux how code gets into the kernel

Release 4.14 arch/um/include/asm/stacktrace.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_UML_STACKTRACE_H

#define _ASM_UML_STACKTRACE_H

#include <linux/uaccess.h>
#include <linux/ptrace.h>


struct stack_frame {
	
struct stack_frame *next_frame;
	
unsigned long return_address;
};


struct stacktrace_ops {
	
void (*address)(void *data, unsigned long address, int reliable);
};

#ifdef CONFIG_FRAME_POINTER

static inline unsigned long get_frame_pointer(struct task_struct *task, struct pt_regs *segv_regs) { if (!task || task == current) return segv_regs ? PT_REGS_BP(segv_regs) : current_bp(); return KSTK_EBP(task); }

Contributors

PersonTokensPropCommitsCommitProp
Daniel Walter44100.00%1100.00%
Total44100.00%1100.00%

#else
static inline unsigned long get_frame_pointer(struct task_struct *task, struct pt_regs *segv_regs) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Daniel Walter21100.00%1100.00%
Total21100.00%1100.00%

#endif
static inline unsigned long *get_stack_pointer(struct task_struct *task, struct pt_regs *segv_regs) { if (!task || task == current) return segv_regs ? (unsigned long *)PT_REGS_SP(segv_regs) : current_sp(); return (unsigned long *)KSTK_ESP(task); }

Contributors

PersonTokensPropCommitsCommitProp
Daniel Walter55100.00%1100.00%
Total55100.00%1100.00%

void dump_trace(struct task_struct *tsk, const struct stacktrace_ops *ops, void *data); #endif /* _ASM_UML_STACKTRACE_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Daniel Walter19899.50%150.00%
Greg Kroah-Hartman10.50%150.00%
Total199100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.