* gdb.threads/gcore-thread.exp: Use gdb_gcore_cmd.
[deliverable/binutils-gdb.git] / gdb / alpha-osf1-tdep.c
index 7b015a4a69820db3b453345dc42e629707e95871..f3bddaa8810cf48ccbb98f1a233cafb4e82b2460 100644 (file)
@@ -1,11 +1,11 @@
 /* Target-dependent code for OSF/1 on Alpha.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2007-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,
@@ -14,9 +14,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., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
 #include "frame.h"
 #include "alpha-tdep.h"
 
 static int
-alpha_osf1_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+alpha_osf1_pc_in_sigtramp (struct gdbarch *gdbarch,
+                          CORE_ADDR pc, const char *func_name)
 {
   return (func_name != NULL && strcmp ("__sigtramp", func_name) == 0);
 }
 
 static CORE_ADDR
-alpha_osf1_sigcontext_addr (struct frame_info *next_frame)
+alpha_osf1_sigcontext_addr (struct frame_info *this_frame)
 {
-  const struct frame_id next_id = get_frame_id (next_frame);
+  struct gdbarch *gdbarch = get_frame_arch (this_frame);
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  struct frame_info *next_frame = get_next_frame (this_frame);
+  struct frame_id next_id = null_frame_id;
+  
+  if (next_frame != NULL)
+    next_id = get_frame_id (next_frame);
 
-  return (read_memory_integer (next_id.stack_addr, 8));
+  return (read_memory_integer (next_id.stack_addr, 8, byte_order));
 }
 
 static void
@@ -52,8 +57,8 @@ alpha_osf1_init_abi (struct gdbarch_info info,
   alpha_mdebug_init_abi (info, gdbarch);
 
   /* The next/step support via procfs on OSF1 is broken when running
-     on multi-processor machines. We need to use software single stepping
-     instead.  */
+     on multi-processor machines.  We need to use software single
+     stepping instead.  */
   set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
 
   tdep->sigcontext_addr = alpha_osf1_sigcontext_addr;
@@ -63,6 +68,9 @@ alpha_osf1_init_abi (struct gdbarch_info info,
   tdep->jb_elt_size = 8;
 }
 
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern initialize_file_ftype _initialize_alpha_osf1_tdep;
+
 void
 _initialize_alpha_osf1_tdep (void)
 {
This page took 0.029816 seconds and 4 git commands to generate.