um: unify ptrace_user.h
authorAl Viro <viro@ftp.linux.org.uk>
Thu, 18 Aug 2011 19:12:19 +0000 (20:12 +0100)
committerRichard Weinberger <richard@nod.at>
Wed, 2 Nov 2011 13:15:27 +0000 (14:15 +0100)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/include/shared/ptrace_user.h
arch/um/os-Linux/skas/process.c
arch/um/os-Linux/start_up.c
arch/x86/um/ptrace_64.c
arch/x86/um/shared/sysdep/ptrace_64.h
arch/x86/um/shared/sysdep/ptrace_user.h
arch/x86/um/shared/sysdep/ptrace_user_32.h [deleted file]
arch/x86/um/shared/sysdep/ptrace_user_64.h [deleted file]
arch/x86/um/user-offsets.c

index 7fd8539bc19a1ab0be7b9f9cfe29270d577a05d6..56b2f284b108e91f1e70b8573fffe37176a1a4e1 100644 (file)
@@ -6,7 +6,8 @@
 #ifndef __PTRACE_USER_H__
 #define __PTRACE_USER_H__
 
-#include "sysdep/ptrace_user.h"
+#include <sys/ptrace.h>
+#include <sysdep/ptrace_user.h>
 
 extern int ptrace_getregs(long pid, unsigned long *regs_out);
 extern int ptrace_setregs(long pid, unsigned long *regs_in);
index 6c34f14708a958ac622b74eca22eff0ecd35b5db..cd65727854eb607b54291e23f2708ccf02717b87 100644 (file)
@@ -9,7 +9,6 @@
 #include <errno.h>
 #include <string.h>
 #include <sys/mman.h>
-#include <sys/ptrace.h>
 #include <sys/wait.h>
 #include <asm/unistd.h>
 #include "as-layout.h"
@@ -162,7 +161,7 @@ static void handle_trap(int pid, struct uml_pt_regs *regs,
 
        if (!local_using_sysemu)
        {
-               err = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_NR_OFFSET,
+               err = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_NR_OFFSET,
                             __NR_getpid);
                if (err < 0) {
                        printk(UM_KERN_ERR "handle_trap - nullifying syscall "
index b6986809b8e0ed21760da2eda818457f74d108b3..425162e22af5d0d877ac04a0415e0bfe9b9a6907 100644 (file)
@@ -13,7 +13,6 @@
 #include <signal.h>
 #include <string.h>
 #include <sys/mman.h>
-#include <sys/ptrace.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
 #include <asm/unistd.h>
@@ -224,7 +223,7 @@ static void __init check_sysemu(void)
                goto fail;
        }
 
-       n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, os_getpid());
+       n = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_RET_OFFSET, os_getpid());
        if (n < 0) {
                non_fatal("check_sysemu : failed to modify system call "
                          "return");
@@ -260,7 +259,7 @@ static void __init check_sysemu(void)
                                          "doesn't singlestep");
                                goto fail;
                        }
-                       n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET,
+                       n = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_RET_OFFSET,
                                   os_getpid());
                        if (n < 0)
                                fatal_perror("check_sysemu : failed to modify "
@@ -316,10 +315,10 @@ static void __init check_ptrace(void)
                        fatal("check_ptrace : expected (SIGTRAP|0x80), "
                               "got status = %d", status);
 
-               syscall = ptrace(PTRACE_PEEKUSR, pid, PT_SYSCALL_NR_OFFSET,
+               syscall = ptrace(PTRACE_PEEKUSER, pid, PT_SYSCALL_NR_OFFSET,
                                 0);
                if (syscall == __NR_getpid) {
-                       n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_NR_OFFSET,
+                       n = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_NR_OFFSET,
                                   __NR_getppid);
                        if (n < 0)
                                fatal_perror("check_ptrace : failed to modify "
index 6e6343e73296c9b2bf1335b52521705c67e524d7..3b52bf0b418acad9f0194db70f6bc6533d6f0ac8 100644 (file)
@@ -46,7 +46,7 @@ static const int reg_offsets[] =
        [FS >> 3] = HOST_FS,
        [GS >> 3] = HOST_GS,
        [EFLAGS >> 3] = HOST_EFLAGS,
-       [ORIG_RAX >> 3] = HOST_ORIG_RAX,
+       [ORIG_RAX >> 3] = HOST_ORIG_AX,
 };
 
 int putreg(struct task_struct *child, int regno, unsigned long value)
index 430dedc2505e84121274defc7389ce63cf53b36d..031edc53ac5704e9871065df305a79a4ac77c65d 100644 (file)
@@ -65,7 +65,7 @@
 #define REGS_FS(r) ((r)[HOST_FS])
 #define REGS_GS(r) ((r)[HOST_GS])
 
-#define REGS_ORIG_RAX(r) ((r)[HOST_ORIG_RAX])
+#define REGS_ORIG_RAX(r) ((r)[HOST_ORIG_AX])
 
 #define REGS_SET_SYSCALL_RETURN(r, res) REGS_RAX(r) = (res)
 
index a92f883264ed395a873d2c6ec7e1eec349843064..16cd6b5e71f75163416fab642010b9a9ccb48b04 100644 (file)
@@ -1,5 +1,27 @@
+#include <generated/user_constants.h>
+
+#define PT_OFFSET(r) ((r) * sizeof(long))
+
+#define PT_SYSCALL_NR(regs) ((regs)[HOST_ORIG_AX])
+#define PT_SYSCALL_NR_OFFSET PT_OFFSET(HOST_ORIG_AX)
+
+#define PT_SYSCALL_RET_OFFSET PT_OFFSET(HOST_AX)
+
+#define REGS_IP_INDEX HOST_IP
+#define REGS_SP_INDEX HOST_SP
+
 #ifdef __i386__
-#include "ptrace_user_32.h"
+#define FP_SIZE ((HOST_FPX_SIZE > HOST_FP_SIZE) ? HOST_FPX_SIZE : HOST_FP_SIZE)
 #else
-#include "ptrace_user_64.h"
+#define FP_SIZE HOST_FP_SIZE
+
+/*
+ * x86_64 FC3 doesn't define this in /usr/include/linux/ptrace.h even though
+ * it's defined in the kernel's include/linux/ptrace.h. Additionally, use the
+ * 2.4 name and value for 2.4 host compatibility.
+ */
+#ifndef PTRACE_OLDSETOPTIONS
+#define PTRACE_OLDSETOPTIONS 21
+#endif
+
 #endif
diff --git a/arch/x86/um/shared/sysdep/ptrace_user_32.h b/arch/x86/um/shared/sysdep/ptrace_user_32.h
deleted file mode 100644 (file)
index 9d88a79..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __SYSDEP_I386_PTRACE_USER_H__
-#define __SYSDEP_I386_PTRACE_USER_H__
-
-#include <sys/ptrace.h>
-#include <linux/ptrace.h>
-#include <asm/ptrace.h>
-#include <generated/user_constants.h>
-
-#define PT_OFFSET(r) ((r) * sizeof(long))
-
-#define PT_SYSCALL_NR(regs) ((regs)[ORIG_EAX])
-#define PT_SYSCALL_NR_OFFSET PT_OFFSET(ORIG_EAX)
-
-#define PT_SYSCALL_RET_OFFSET PT_OFFSET(EAX)
-
-#define REGS_IP_INDEX EIP
-#define REGS_SP_INDEX UESP
-
-#define FP_SIZE ((HOST_FPX_SIZE > HOST_FP_SIZE) ? HOST_FPX_SIZE : HOST_FP_SIZE)
-
-#endif
diff --git a/arch/x86/um/shared/sysdep/ptrace_user_64.h b/arch/x86/um/shared/sysdep/ptrace_user_64.h
deleted file mode 100644 (file)
index 2f1b6e3..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2003 PathScale, Inc.
- *
- * Licensed under the GPL
- */
-
-#ifndef __SYSDEP_X86_64_PTRACE_USER_H__
-#define __SYSDEP_X86_64_PTRACE_USER_H__
-
-#define __FRAME_OFFSETS
-#include <sys/ptrace.h>
-#include <linux/ptrace.h>
-#include <asm/ptrace.h>
-#undef __FRAME_OFFSETS
-#include <generated/user_constants.h>
-
-#define PT_INDEX(off) ((off) / sizeof(unsigned long))
-
-#define PT_SYSCALL_NR(regs) ((regs)[PT_INDEX(ORIG_RAX)])
-#define PT_SYSCALL_NR_OFFSET (ORIG_RAX)
-
-#define PT_SYSCALL_RET_OFFSET (RAX)
-
-/*
- * x86_64 FC3 doesn't define this in /usr/include/linux/ptrace.h even though
- * it's defined in the kernel's include/linux/ptrace.h. Additionally, use the
- * 2.4 name and value for 2.4 host compatibility.
- */
-#ifndef PTRACE_OLDSETOPTIONS
-#define PTRACE_OLDSETOPTIONS 21
-#endif
-
-#define REGS_IP_INDEX PT_INDEX(RIP)
-#define REGS_SP_INDEX PT_INDEX(RSP)
-
-#define FP_SIZE (HOST_FP_SIZE)
-
-#endif
index 88d125516ee4f108b1ca1e1d0d7a72d49640fb4d..ca49be8ddd0c7160821a4d4db06f18346f52b195 100644 (file)
@@ -36,6 +36,7 @@ void foo(void)
        DEFINE(HOST_FS, FS);
        DEFINE(HOST_ES, ES);
        DEFINE(HOST_GS, GS);
+       DEFINE(HOST_ORIG_AX, ORIG_EAX);
 #else
        DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long));
        DEFINE_LONGS(HOST_BX, RBX);
@@ -53,7 +54,7 @@ void foo(void)
        DEFINE_LONGS(HOST_R13, R13);
        DEFINE_LONGS(HOST_R14, R14);
        DEFINE_LONGS(HOST_R15, R15);
-       DEFINE_LONGS(HOST_ORIG_RAX, ORIG_RAX);
+       DEFINE_LONGS(HOST_ORIG_AX, ORIG_RAX);
        DEFINE_LONGS(HOST_CS, CS);
        DEFINE_LONGS(HOST_SS, SS);
        DEFINE_LONGS(HOST_EFLAGS, EFLAGS);