xref: /openbmc/linux/arch/um/include/asm/ptrace-generic.h (revision 8dd06ef34b6e2f41b29fbf5fc1663780f2524285)
1f2f4bf5aSAlex Dewar /* SPDX-License-Identifier: GPL-2.0 */
28ede0bdbSAl Viro /*
38ede0bdbSAl Viro  * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
48ede0bdbSAl Viro  */
58ede0bdbSAl Viro 
68ede0bdbSAl Viro #ifndef __UM_PTRACE_GENERIC_H
78ede0bdbSAl Viro #define __UM_PTRACE_GENERIC_H
88ede0bdbSAl Viro 
98ede0bdbSAl Viro #ifndef __ASSEMBLY__
108ede0bdbSAl Viro 
1137185b33SAl Viro #include <sysdep/ptrace.h>
128ede0bdbSAl Viro 
138ede0bdbSAl Viro struct pt_regs {
148ede0bdbSAl Viro 	struct uml_pt_regs regs;
158ede0bdbSAl Viro };
168ede0bdbSAl Viro 
171bd09508SChristoph Hellwig #define arch_has_single_step()	(1)
181bd09508SChristoph Hellwig 
198ede0bdbSAl Viro #define EMPTY_REGS { .regs = EMPTY_UML_PT_REGS }
208ede0bdbSAl Viro 
218ede0bdbSAl Viro #define PT_REGS_IP(r) UPT_IP(&(r)->regs)
228ede0bdbSAl Viro #define PT_REGS_SP(r) UPT_SP(&(r)->regs)
238ede0bdbSAl Viro 
248ede0bdbSAl Viro #define PT_REGS_RESTART_SYSCALL(r) UPT_RESTART_SYSCALL(&(r)->regs)
258ede0bdbSAl Viro 
268ede0bdbSAl Viro #define PT_REGS_SYSCALL_NR(r) UPT_SYSCALL_NR(&(r)->regs)
278ede0bdbSAl Viro 
288ede0bdbSAl Viro #define instruction_pointer(regs) PT_REGS_IP(regs)
298ede0bdbSAl Viro 
3044011b89SRichard Weinberger #define PTRACE_OLDSETOPTIONS 21
3144011b89SRichard Weinberger 
328ede0bdbSAl Viro struct task_struct;
338ede0bdbSAl Viro 
348818b671SRichard Weinberger extern long subarch_ptrace(struct task_struct *child, long request,
358818b671SRichard Weinberger 	unsigned long addr, unsigned long data);
368ede0bdbSAl Viro extern unsigned long getreg(struct task_struct *child, int regno);
378ede0bdbSAl Viro extern int putreg(struct task_struct *child, int regno, unsigned long value);
388ede0bdbSAl Viro 
39*457677c7SAmanieu d'Antras extern int arch_set_tls(struct task_struct *new, unsigned long tls);
408ede0bdbSAl Viro extern void clear_flushed_tls(struct task_struct *task);
415334cdaeSRichard Weinberger extern int syscall_trace_enter(struct pt_regs *regs);
421bfa2317SAl Viro extern void syscall_trace_leave(struct pt_regs *regs);
438ede0bdbSAl Viro 
448ede0bdbSAl Viro #endif
458ede0bdbSAl Viro 
468ede0bdbSAl Viro #endif
47