OSDN Git Service

microblaze: add sys/user.h
authorSteve Bennett <steveb@workware.net.au>
Fri, 16 Mar 2012 00:45:32 +0000 (10:45 +1000)
committerMike Frysinger <vapier@gentoo.org>
Sun, 25 Mar 2012 05:40:43 +0000 (01:40 -0400)
A microblaze-specific sys/user.h is needed for (e.g.) strace,
so use this version from glibc.

Signed-off-by: Steve Bennett <steveb@workware.net.au>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
libc/sysdeps/linux/microblaze/sys/user.h [new file with mode: 0644]

diff --git a/libc/sysdeps/linux/microblaze/sys/user.h b/libc/sysdeps/linux/microblaze/sys/user.h
new file mode 100644 (file)
index 0000000..987a694
--- /dev/null
@@ -0,0 +1,77 @@
+/* Copyright (C) 1998, 2000 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.  */
+
+struct user_fpregs_struct
+{
+  long int cwd;
+  long int swd;
+  long int twd;
+  long int fip;
+  long int fcs;
+  long int foo;
+  long int fos;
+  long int st_space [20];
+};
+
+struct user_regs_struct
+{
+  unsigned int gpr[32];
+  unsigned int pc;
+  unsigned int msr;
+  unsigned int ear;
+  unsigned int esr;
+  unsigned int fsr;
+  unsigned int btr;
+  unsigned int pvr[12];
+};
+
+struct user
+{
+  struct user_regs_struct      regs;
+  int                          u_fpvalid;
+  struct user_fpregs_struct    i387;
+  unsigned long int            u_tsize;
+  unsigned long int            u_dsize;
+  unsigned long int            u_ssize;
+  unsigned long                        start_code;
+  unsigned long                        start_stack;
+  long int                     signal;
+  int                          reserved;
+  struct user_regs_struct*     u_ar0;
+  struct user_fpregs_struct*   u_fpstate;
+  unsigned long int            magic;
+  char                         u_comm [32];
+  int                          u_debugreg [8];
+};
+
+#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_STACK_END_ADDR    (u.start_stack + u.u_ssize * NBPG)
+
+#endif /* _SYS_USER_H */