summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/procfs.h6
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/user.h48
3 files changed, 61 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index b57c3fb784..19019da148 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2009-02-26  Andrew Stubbs  <ams@codesourcery.com>
+	    SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
+
+	* sysdeps/unix/sysv/linux/sh/sys/procfs.h: Don't include signal.h,
+	sys/ucontext.h and asm/elf.h.  Include sys/user.h.
+	* sysdeps/unix/sysv/linux/sh/sys/user.h: Don't include features.h
+	and asm/user.h.  Include asm/ptrace.h.
+	(PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS,
+	PTRACE_SETFPREGS, PTRACE_GETFDPIC, PTRACE_GETFDPIC_EXEC,
+	PTRACE_GETFDPIC_INTERP, PTRACE_GETDSPREGS, PTRACE_SETDSPREGS):
+	Undefine.
+	(start_thread): Don't undefine.
+	(elf_greg_t, ELF_NGREG, elf_fpregset_t, user_fpu_struct, user):
+	Define.
+
 2009-02-26  Ulrich Drepper  <drepper@redhat.com>
 
 	* wctype/wctype.h: The *_l functions are in POSIX 2008.
diff --git a/sysdeps/unix/sysv/linux/sh/sys/procfs.h b/sysdeps/unix/sysv/linux/sh/sys/procfs.h
index 8651ccb346..62613078db 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1996, 1997, 1999, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2004, 2009
+   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
@@ -24,12 +25,9 @@
    used on Linux.  */
 
 #include <features.h>
-#include <signal.h>
 #include <sys/time.h>
 #include <sys/types.h>
-#include <sys/ucontext.h>
 #include <sys/user.h>
-#include <asm/elf.h>
 
 __BEGIN_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sh/sys/user.h b/sysdeps/unix/sysv/linux/sh/sys/user.h
index 7f31bb62dd..e238e88138 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/user.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/user.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2003, 2009
+   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
@@ -19,10 +20,49 @@
 #ifndef _SYS_USER_H
 #define _SYS_USER_H	1
 
-#include <features.h>
+#include <asm/ptrace.h>
 
-#include <asm/user.h>
+/* asm/ptrace.h polutes the namespace.  */
+#undef PTRACE_GETREGS
+#undef PTRACE_SETREGS
+#undef PTRACE_GETFPREGS
+#undef PTRACE_SETFPREGS
+#undef PTRACE_GETFDPIC
+#undef PTRACE_GETFDPIC_EXEC
+#undef PTRACE_GETFDPIC_INTERP
+#undef	PTRACE_GETDSPREGS
+#undef	PTRACE_SETDSPREGS
 
-#undef start_thread
+typedef unsigned long elf_greg_t;
+
+#define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+struct user_fpu_struct
+  {
+    unsigned long fp_regs[16];
+    unsigned long xfp_regs[16];
+    unsigned long fpscr;
+    unsigned long fpul;
+  };
+typedef struct user_fpu_struct elf_fpregset_t;
+
+struct user
+  {
+    struct pt_regs regs;
+    struct user_fpu_struct fpu;
+    int u_fpvalid;
+    size_t u_tsize;
+    size_t u_dsize;
+    size_t u_ssize;
+    unsigned long start_code;
+    unsigned long start_data;
+    unsigned long start_stack;
+    long int signal;
+    unsigned long u_ar0;
+    struct user_fpu_struct *u_fpstate;
+    unsigned long magic;
+    char u_comm[32];
+  };
 
 #endif  /* sys/user.h */