diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/sysdeps/linux/c6x/sys/ptrace.h | 176 | 
1 files changed, 176 insertions, 0 deletions
| diff --git a/libc/sysdeps/linux/c6x/sys/ptrace.h b/libc/sysdeps/linux/c6x/sys/ptrace.h new file mode 100644 index 000000000..b8a7a49d5 --- /dev/null +++ b/libc/sysdeps/linux/c6x/sys/ptrace.h @@ -0,0 +1,176 @@ +/* `ptrace' debugger support interface.  Linux version. +   Copyright (C) 1996-1999,2000,2006,2007 Free Software Foundation, Inc. +   This file is part of the GNU C Library. + +   The GNU C Library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 of the License, or (at your option) any later version. + +   The GNU C Library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#ifndef _SYS_PTRACE_H +#define _SYS_PTRACE_H	1 + +#include <features.h> + +__BEGIN_DECLS + +/* Type of the REQUEST argument to `ptrace.'  */ +enum __ptrace_request +{ +  /* Indicate that the process making this request should be traced. +     All signals received by this process can be intercepted by its +     parent, and its parent can use the other `ptrace' requests.  */ +  PTRACE_TRACEME = 0, +#define PT_TRACE_ME PTRACE_TRACEME + +  /* Return the word in the process's text space at address ADDR.  */ +  PTRACE_PEEKTEXT = 1, +#define PT_READ_I PTRACE_PEEKTEXT + +  /* Return the word in the process's data space at address ADDR.  */ +  PTRACE_PEEKDATA = 2, +#define PT_READ_D PTRACE_PEEKDATA + +  /* Return the word in the process's user area at offset ADDR.  */ +  PTRACE_PEEKUSER = 3, +#define PT_READ_U PTRACE_PEEKUSER + +  /* Write the word DATA into the process's text space at address ADDR.  */ +  PTRACE_POKETEXT = 4, +#define PT_WRITE_I PTRACE_POKETEXT + +  /* Write the word DATA into the process's data space at address ADDR.  */ +  PTRACE_POKEDATA = 5, +#define PT_WRITE_D PTRACE_POKEDATA + +  /* Write the word DATA into the process's user area at offset ADDR.  */ +  PTRACE_POKEUSER = 6, +#define PT_WRITE_U PTRACE_POKEUSER + +  /* Continue the process.  */ +  PTRACE_CONT = 7, +#define PT_CONTINUE PTRACE_CONT + +  /* Kill the process.  */ +  PTRACE_KILL = 8, +#define PT_KILL PTRACE_KILL + +  /* Single step the process. +     This is not supported on all machines.  */ +  PTRACE_SINGLESTEP = 9, +#define PT_STEP PTRACE_SINGLESTEP + +  /* Get all general purpose registers used by a processes. +     This is not supported on all machines.  */ +   PTRACE_GETREGS = 12, +#define PT_GETREGS PTRACE_GETREGS + +  /* Set all general purpose registers used by a processes. +     This is not supported on all machines.  */ +   PTRACE_SETREGS = 13, +#define PT_SETREGS PTRACE_SETREGS + +  /* Get all floating point registers used by a processes. +     This is not supported on all machines.  */ +   PTRACE_GETFPREGS = 14, +#define PT_GETFPREGS PTRACE_GETFPREGS + +  /* Set all floating point registers used by a processes. +     This is not supported on all machines.  */ +   PTRACE_SETFPREGS = 15, +#define PT_SETFPREGS PTRACE_SETFPREGS + +  /* Attach to a process that is already running. */ +  PTRACE_ATTACH = 16, +#define PT_ATTACH PTRACE_ATTACH + +  /* Detach from a process attached to with PTRACE_ATTACH.  */ +  PTRACE_DETACH = 17, +#define PT_DETACH PTRACE_DETACH + +  /* Get all extended floating point registers used by a processes. +     This is not supported on all machines.  */ +   PTRACE_GETFPXREGS = 18, +#define PT_GETFPXREGS PTRACE_GETFPXREGS + +  /* Set all extended floating point registers used by a processes. +     This is not supported on all machines.  */ +   PTRACE_SETFPXREGS = 19, +#define PT_SETFPXREGS PTRACE_SETFPXREGS + +  /* Continue and stop at the next (return from) syscall.  */ +  PTRACE_SYSCALL = 24, +#define PT_SYSCALL PTRACE_SYSCALL + +  /* Obtain the load map of the main program or the interpreter of the +     ptraced process, depending on whether the addr argument is +     (void*)0 or (void*)1, respectively.  */ +  PTRACE_GETDSBT = 31, +#define PT_GETDSBT PTRACE_GETDSBT + +  /* Set ptrace filter options.  */ +  PTRACE_SETOPTIONS = 0x4200, +#define PT_SETOPTIONS PTRACE_SETOPTIONS + +  /* Get last ptrace message.  */ +  PTRACE_GETEVENTMSG = 0x4201, +#define PT_GETEVENTMSG PTRACE_GETEVENTMSG + +  /* Get siginfo for process.  */ +  PTRACE_GETSIGINFO = 0x4202, +#define PT_GETSIGINFO PTRACE_GETSIGINFO + +  /* Set new siginfo for process.  */ +  PTRACE_SETSIGINFO = 0x4203 +#define PT_SETSIGINFO PTRACE_SETSIGINFO +}; + +#define PTRACE_GETDSBT_EXEC      ((void*)0)	/* [addr] request the executable loadmap */ +#define PTRACE_GETDSBT_INTERP    ((void*)1)	/* [addr] request the interpreter loadmap */ + +/* Options set using PTRACE_SETOPTIONS.  */ +enum __ptrace_setoptions { +  PTRACE_O_TRACESYSGOOD	= 0x00000001, +  PTRACE_O_TRACEFORK	= 0x00000002, +  PTRACE_O_TRACEVFORK   = 0x00000004, +  PTRACE_O_TRACECLONE	= 0x00000008, +  PTRACE_O_TRACEEXEC	= 0x00000010, +  PTRACE_O_TRACEVFORKDONE = 0x00000020, +  PTRACE_O_TRACEEXIT	= 0x00000040, +  PTRACE_O_MASK		= 0x0000007f +}; + +/* Wait extended result codes for the above trace options.  */ +enum __ptrace_eventcodes { +  PTRACE_EVENT_FORK	= 1, +  PTRACE_EVENT_VFORK	= 2, +  PTRACE_EVENT_CLONE	= 3, +  PTRACE_EVENT_EXEC	= 4, +  PTRACE_EVENT_VFORK_DONE = 5, +  PTRACE_EVENT_EXIT	= 6 +}; + +/* Perform process tracing functions.  REQUEST is one of the values +   above, and determines the action to be taken. +   For all requests except PTRACE_TRACEME, PID specifies the process to be +   traced. + +   PID and the other arguments described above for the various requests should +   appear (those that are used for the particular request) as: +     pid_t PID, void *ADDR, int DATA, void *ADDR2 +   after REQUEST.  */ +extern long int ptrace (enum __ptrace_request __request, ...) __THROW; + +__END_DECLS + +#endif /* _SYS_PTRACE_H */ | 
