* symfile.c (separate_debug_file_exists): Update.
[deliverable/binutils-gdb.git] / gdb / mips-linux-tdep.h
index 4914b638a236998694a3748a5fb74bd0d1849862..0a1a161da26a17d2e1b7a976964220b3eb229e99 100644 (file)
@@ -1,12 +1,12 @@
 /* Target-dependent code for GNU/Linux on MIPS processors.
 
-   Copyright 2006 Free Software Foundation, Inc.
+   Copyright 2006-2012 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -15,9 +15,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Copied from <asm/elf.h>.  */
 #define ELF_NGREG       45
@@ -30,14 +28,16 @@ typedef unsigned char mips_elf_fpreg_t[8];
 typedef mips_elf_fpreg_t mips_elf_fpregset_t[ELF_NFPREG];
 
 /* 0 - 31 are integer registers, 32 - 63 are fp registers.  */
-#define FPR_BASE        32
-#define PC              64
-#define CAUSE           65
-#define BADVADDR        66
-#define MMHI            67
-#define MMLO            68
-#define FPC_CSR         69
-#define FPC_EIR         70
+#define FPR_BASE       32
+#define PC             64
+#define CAUSE          65
+#define BADVADDR       66
+#define MMHI           67
+#define MMLO           68
+#define FPC_CSR                69
+#define FPC_EIR                70
+#define DSP_BASE       71
+#define DSP_CONTROL    77
 
 #define EF_REG0                        6
 #define EF_REG31               37
@@ -50,10 +50,10 @@ typedef mips_elf_fpreg_t mips_elf_fpregset_t[ELF_NFPREG];
 
 #define EF_SIZE                        180
 
-void mips_supply_gregset (mips_elf_gregset_t *);
-void mips_fill_gregset (mips_elf_gregset_t *, int);
-void mips_supply_fpregset (mips_elf_fpregset_t *);
-void mips_fill_fpregset (mips_elf_fpregset_t *, int);
+void mips_supply_gregset (struct regcache *, const mips_elf_gregset_t *);
+void mips_fill_gregset (const struct regcache *, mips_elf_gregset_t *, int);
+void mips_supply_fpregset (struct regcache *, const mips_elf_fpregset_t *);
+void mips_fill_fpregset (const struct regcache *, mips_elf_fpregset_t *, int);
 
 /* 64-bit support.  */
 
@@ -88,7 +88,62 @@ typedef mips64_elf_fpreg_t mips64_elf_fpregset_t[MIPS64_ELF_NFPREG];
 
 #define MIPS64_EF_SIZE                 304
 
-void mips64_supply_gregset (mips64_elf_gregset_t *);
-void mips64_fill_gregset (mips64_elf_gregset_t *, int);
-void mips64_supply_fpregset (mips64_elf_fpregset_t *);
-void mips64_fill_fpregset (mips64_elf_fpregset_t *, int);
+void mips64_supply_gregset (struct regcache *, const mips64_elf_gregset_t *);
+void mips64_fill_gregset (const struct regcache *,
+                         mips64_elf_gregset_t *, int);
+void mips64_supply_fpregset (struct regcache *,
+                            const mips64_elf_fpregset_t *);
+void mips64_fill_fpregset (const struct regcache *,
+                          mips64_elf_fpregset_t *, int);
+
+enum {
+  /* The Linux kernel stores an error code from any interrupted
+     syscall in a "register" (in $0's save slot).  */
+  MIPS_RESTART_REGNUM = 79
+};
+
+/* Return 1 if MIPS_RESTART_REGNUM is usable.  */
+
+int mips_linux_restart_reg_p (struct gdbarch *gdbarch);
+
+/* MIPS Signals -- adapted from linux/arch/mips/include/asm/signal.h.  */
+
+enum mips_signals 
+  {
+    MIPS_SIGHUP    =  1,       /* Hangup (POSIX).  */
+    MIPS_SIGINT    =  2,       /* Interrupt (ANSI).  */
+    MIPS_SIGQUIT   =  3,       /* Quit (POSIX).  */
+    MIPS_SIGILL    =  4,       /* Illegal instruction (ANSI).  */
+    MIPS_SIGTRAP   =  5,       /* Trace trap (POSIX).  */
+    MIPS_SIGIOT    =  6,       /* IOT trap (4.2 BSD).  */
+    MIPS_SIGABRT   =  MIPS_SIGIOT, /* Abort (ANSI).  */
+    MIPS_SIGEMT    =  7,
+    MIPS_SIGFPE    =  8,       /* Floating-point exception (ANSI).  */
+    MIPS_SIGKILL   =  9,       /* Kill, unblockable (POSIX).  */
+    MIPS_SIGBUS    = 10,       /* BUS error (4.2 BSD).  */
+    MIPS_SIGSEGV   = 11,       /* Segmentation violation (ANSI).  */
+    MIPS_SIGSYS    = 12,
+    MIPS_SIGPIPE   = 13,       /* Broken pipe (POSIX).  */
+    MIPS_SIGALRM   = 14,       /* Alarm clock (POSIX).  */
+    MIPS_SIGTERM   = 15,       /* Termination (ANSI).  */
+    MIPS_SIGUSR1   = 16,       /* User-defined signal 1 (POSIX).  */
+    MIPS_SIGUSR2   = 17,       /* User-defined signal 2 (POSIX).  */
+    MIPS_SIGCHLD   = 18,       /* Child status has changed (POSIX).  */
+    MIPS_SIGCLD    = MIPS_SIGCHLD, /* Same as SIGCHLD (System V).  */
+    MIPS_SIGPWR    = 19,       /* Power failure restart (System V).  */
+    MIPS_SIGWINCH  = 20,       /* Window size change (4.3 BSD, Sun).  */
+    MIPS_SIGURG    = 21,       /* Urgent condition on socket (4.2 BSD).  */
+    MIPS_SIGIO     = 22,       /* I/O now possible (4.2 BSD).  */
+    MIPS_SIGPOLL   = MIPS_SIGIO, /* Pollable event occurred (System V).  */
+    MIPS_SIGSTOP   = 23,       /* Stop, unblockable (POSIX).  */
+    MIPS_SIGTSTP   = 24,       /* Keyboard stop (POSIX).  */
+    MIPS_SIGCONT   = 25,       /* Continue (POSIX).  */
+    MIPS_SIGTTIN   = 26,       /* Background read from tty (POSIX).  */
+    MIPS_SIGTTOU   = 27,       /* Background write to tty (POSIX).  */
+    MIPS_SIGVTALRM = 28,       /* Virtual alarm clock (4.2 BSD).  */
+    MIPS_SIGPROF   = 29,       /* Profiling alarm clock (4.2 BSD).  */
+    MIPS_SIGXCPU   = 30,       /* CPU limit exceeded (4.2 BSD).  */
+    MIPS_SIGXFSZ   = 31,       /* File size limit exceeded (4.2 BSD).  */
+    MIPS_SIGRTMIN  = 32,       /* Minimum RT signal.  */
+    MIPS_SIGRTMAX  = 128 - 1   /* Maximum RT signal.  */
+  };
This page took 0.024689 seconds and 4 git commands to generate.