about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2002-02-08 16:21:13 +0000
committerAndreas Jaeger <aj@suse.de>2002-02-08 16:21:13 +0000
commitbc632c07281e2839be5a3e5961bd8a2f2e60ec11 (patch)
treed32304ab4d2685ea92e61d2dd3af1dba037f12cb
parentc899461becfe15354148818ec78613c5ffde9b96 (diff)
downloadglibc-bc632c07281e2839be5a3e5961bd8a2f2e60ec11.tar.gz
glibc-bc632c07281e2839be5a3e5961bd8a2f2e60ec11.tar.xz
glibc-bc632c07281e2839be5a3e5961bd8a2f2e60ec11.zip
Update.
2001-11-15  H.J. Lu  <hjl@gnu.org>

	* sysdeps/unix/sysv/linux/mips/sys/procfs.h: Don't include
	<signal.h>, <sys/ucontext.h> nor <asm/elf.h>. Updated for gdb.

	* sysdeps/unix/sysv/linux/mips/sys/user.h: New.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/procfs.h31
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/user.h52
3 files changed, 72 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 405e43f5c0..4218bbd525 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2001-11-15  H.J. Lu  <hjl@gnu.org>
+
+	* sysdeps/unix/sysv/linux/mips/sys/procfs.h: Don't include
+	<signal.h>, <sys/ucontext.h> nor <asm/elf.h>. Updated for gdb.
+
+	* sysdeps/unix/sysv/linux/mips/sys/user.h: New.
+
 2002-02-07  H.J. Lu  <hjl@gnu.org>
 
 	* sysdeps/mips/atomicity.h (compare_and_swap): Remove
diff --git a/sysdeps/unix/sysv/linux/mips/sys/procfs.h b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
index 76dd2bbeb8..a21652e1ce 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2000, 2002 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 +24,19 @@
    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>
+
+/* ELF register definitions */
+#define ELF_NGREG	45
+#define ELF_NFPREG	33
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
 
 __BEGIN_DECLS
 
@@ -50,19 +57,10 @@ struct elf_siginfo
    marked with "XXX".  */
 struct elf_prstatus
   {
-#if 0
-    long int pr_flags;			/* XXX Process flags.  */
-    short int pr_why;			/* XXX Reason for process halt.  */
-    short int pr_what;			/* XXX More detailed reason.  */
-#endif
     struct elf_siginfo pr_info;		/* Info associated with signal.  */
     short int pr_cursig;		/* Current signal.  */
     unsigned long int pr_sigpend;	/* Set of pending signals.  */
     unsigned long int pr_sighold;	/* Set of held signals.  */
-#if 0
-    struct sigaltstack pr_altstack;	/* Alternate stack info.  */
-    struct sigaction pr_action;		/* Signal action for current sig.  */
-#endif
     __pid_t pr_pid;
     __pid_t pr_ppid;
     __pid_t pr_pgrp;
@@ -71,9 +69,6 @@ struct elf_prstatus
     struct timeval pr_stime;		/* System time.  */
     struct timeval pr_cutime;		/* Cumulative user time.  */
     struct timeval pr_cstime;		/* Cumulative system time.  */
-#if 0
-    long int pr_instr;			/* Current instruction.  */
-#endif
     elf_gregset_t pr_reg;		/* GP registers.  */
     int pr_fpvalid;			/* True if math copro being used.  */
   };
@@ -101,8 +96,8 @@ struct elf_prpsinfo
 typedef void *psaddr_t;
 
 /* Register sets.  Linux has different names.  */
-typedef gregset_t prgregset_t;
-typedef fpregset_t prfpregset_t;
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
 
 /* We don't have any differences between processes and threads,
    therefore habe only ine PID type.  */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/user.h b/sysdeps/unix/sysv/linux/mips/sys/user.h
new file mode 100644
index 0000000000..21f7b28ca1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/user.h
@@ -0,0 +1,52 @@
+/* Copyright (C) 2002 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_USER_H
+#define _SYS_USER_H	1
+
+/* The whole purpose of this file is for GDB and GDB only.  Don't read
+   too much into it.  Don't use it for anything other than GDB unless
+   you know what you are doing.  */
+
+#include <asm/reg.h>
+
+struct user
+{
+  unsigned long	regs[EF_SIZE/4+64];	/* integer and fp regs */
+  size_t	u_tsize;		/* text size (pages) */
+  size_t	u_dsize;		/* data size (pages) */
+  size_t	u_ssize;		/* stack size (pages) */
+  unsigned long	start_code;		/* text starting address */
+  unsigned long	start_data;		/* data starting address */
+  unsigned long	start_stack;		/* stack starting address */
+  long int	signal;			/* signal causing core dump */
+  void*		u_ar0;			/* help gdb find registers */
+  unsigned long	magic;			/* identifies a core file */
+  char		u_comm[32];		/* user command name */
+};
+
+#define PAGE_SHIFT		12
+#define PAGE_SIZE		(1UL << PAGE_SHIFT)
+#define PAGE_MASK		(~(PAGE_SIZE-1))
+#define NBPG			PAGE_SIZE
+#define UPAGES			1
+#define HOST_TEXT_START_ADDR	(u.start_code)
+#define HOST_DATA_START_ADDR	(u.start_data)
+#define HOST_STACK_END_ADDR	(u.start_stack + u.u_ssize * NBPG)
+
+#endif	/* _SYS_USER_H */