mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 22:23:14 -04:00
Merge branch 'x86-ptrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-ptrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, ptrace: Remove set_stopped_child_used_math() in [x]fpregs_set x86, ptrace: Simplify xstateregs_get() ptrace: Fix ptrace_regset() comments and diagnose errors specifically parisc: Disable CONFIG_HAVE_ARCH_TRACEHOOK ptrace: Add support for generic PTRACE_GETREGSET/PTRACE_SETREGSET x86, ptrace: regset extensions to support xstate
This commit is contained in:
commit
6f5621cb16
9 changed files with 284 additions and 9 deletions
|
|
@ -349,7 +349,11 @@ typedef struct elf64_shdr {
|
|||
#define ELF_OSABI ELFOSABI_NONE
|
||||
#endif
|
||||
|
||||
/* Notes used in ET_CORE */
|
||||
/*
|
||||
* Notes used in ET_CORE. Architectures export some of the arch register sets
|
||||
* using the corresponding note types via the PTRACE_GETREGSET and
|
||||
* PTRACE_SETREGSET requests.
|
||||
*/
|
||||
#define NT_PRSTATUS 1
|
||||
#define NT_PRFPREG 2
|
||||
#define NT_PRPSINFO 3
|
||||
|
|
@ -361,6 +365,7 @@ typedef struct elf64_shdr {
|
|||
#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
|
||||
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
|
||||
#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
|
||||
#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
|
||||
#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
|
||||
#define NT_S390_TIMER 0x301 /* s390 timer register */
|
||||
#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */
|
||||
|
|
|
|||
|
|
@ -27,6 +27,26 @@
|
|||
#define PTRACE_GETSIGINFO 0x4202
|
||||
#define PTRACE_SETSIGINFO 0x4203
|
||||
|
||||
/*
|
||||
* Generic ptrace interface that exports the architecture specific regsets
|
||||
* using the corresponding NT_* types (which are also used in the core dump).
|
||||
* Please note that the NT_PRSTATUS note type in a core dump contains a full
|
||||
* 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the
|
||||
* elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the
|
||||
* other user_regset flavors, the user_regset layout and the ELF core dump note
|
||||
* payload are exactly the same layout.
|
||||
*
|
||||
* This interface usage is as follows:
|
||||
* struct iovec iov = { buf, len};
|
||||
*
|
||||
* ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov);
|
||||
*
|
||||
* On the successful completion, iov.len will be updated by the kernel,
|
||||
* specifying how much the kernel has written/read to/from the user's iov.buf.
|
||||
*/
|
||||
#define PTRACE_GETREGSET 0x4204
|
||||
#define PTRACE_SETREGSET 0x4205
|
||||
|
||||
/* options set using PTRACE_SETOPTIONS */
|
||||
#define PTRACE_O_TRACESYSGOOD 0x00000001
|
||||
#define PTRACE_O_TRACEFORK 0x00000002
|
||||
|
|
|
|||
Loading…
Reference in a new issue