gdb/
[deliverable/binutils-gdb.git] / gdb / solib-dsbt.c
index 7bbd49eff57aa89a0b7abd9460a8e2e152a125c3..9024be2caf04d9fab96885bda855a5500d71038b 100644 (file)
 #include "gdbcmd.h"
 #include "elf-bfd.h"
 #include "exceptions.h"
+#include "gdb_bfd.h"
 
 #define GOT_MODULE_OFFSET 4
 
 /* Flag which indicates whether internal debug messages should be printed.  */
-static int solib_dsbt_debug = 0;
+static unsigned int solib_dsbt_debug = 0;
 
 /* TIC6X pointers are four bytes wide.  */
 enum { TIC6X_PTR_SIZE = 4 };
@@ -211,13 +212,13 @@ dsbt_print_loadmap (struct int_elf32_dsbt_loadmap *map)
 
       for (i = 0; i < map->nsegs; i++)
        printf_filtered ("%s:%s -> %s:%s\n",
-                        print_core_address (target_gdbarch,
+                        print_core_address (target_gdbarch (),
                                             map->segs[i].p_vaddr),
-                        print_core_address (target_gdbarch,
+                        print_core_address (target_gdbarch (),
                                             map->segs[i].p_vaddr
                                             + map->segs[i].p_memsz),
-                        print_core_address (target_gdbarch, map->segs[i].addr),
-                        print_core_address (target_gdbarch, map->segs[i].addr
+                        print_core_address (target_gdbarch (), map->segs[i].addr),
+                        print_core_address (target_gdbarch (), map->segs[i].addr
                                             + map->segs[i].p_memsz));
     }
 }
@@ -227,12 +228,12 @@ dsbt_print_loadmap (struct int_elf32_dsbt_loadmap *map)
 static struct int_elf32_dsbt_loadmap *
 decode_loadmap (gdb_byte *buf)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
   struct ext_elf32_dsbt_loadmap *ext_ldmbuf;
   struct int_elf32_dsbt_loadmap *int_ldmbuf;
 
   int version, seg, nsegs;
-  int ext_ldmbuf_size, int_ldmbuf_size;
+  int int_ldmbuf_size;
 
   ext_ldmbuf = (struct ext_elf32_dsbt_loadmap *) buf;
 
@@ -326,7 +327,7 @@ dsbt_get_initial_loadmaps (void)
 static struct int_elf32_dsbt_loadmap *
 fetch_loadmap (CORE_ADDR ldmaddr)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
   struct ext_elf32_dsbt_loadmap ext_ldmbuf_partial;
   struct ext_elf32_dsbt_loadmap *ext_ldmbuf;
   struct int_elf32_dsbt_loadmap *int_ldmbuf;
@@ -495,7 +496,7 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr)
             gdb_byte ptr_buf[8];
             CORE_ADDR ptr_addr;
 
-            ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
+            ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
             ptr_addr = dyn_addr + (buf - bufstart) + arch_size / 8;
             if (target_read_memory (ptr_addr, ptr_buf, arch_size / 8) == 0)
               dyn_ptr = extract_typed_address (ptr_buf, ptr_type);
@@ -554,7 +555,7 @@ displacement_from_map (struct int_elf32_dsbt_loadmap *map,
 static CORE_ADDR
 lm_base (void)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
   struct minimal_symbol *got_sym;
   CORE_ADDR addr;
   gdb_byte buf[TIC6X_PTR_SIZE];
@@ -634,7 +635,7 @@ lm_base (void)
 static struct so_list *
 dsbt_current_sos (void)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
   CORE_ADDR lm_addr;
   struct so_list *sos_head = NULL;
   struct so_list **sos_next_ptr = &sos_head;
@@ -813,7 +814,7 @@ cmp_name (asymbol *sym, void *data)
 static int
 enable_break2 (void)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
   int success = 0;
   char **bkpt_namep;
   asection *interp_sect;
@@ -841,8 +842,7 @@ enable_break2 (void)
       unsigned int interp_sect_size;
       gdb_byte *buf;
       bfd *tmp_bfd = NULL;
-      int status;
-      CORE_ADDR addr, interp_loadmap_addr;
+      CORE_ADDR addr;
       gdb_byte addr_buf[TIC6X_PTR_SIZE];
       struct int_elf32_dsbt_loadmap *ldm;
       volatile struct gdb_exception ex;
@@ -900,7 +900,7 @@ enable_break2 (void)
        {
          warning (_("Could not find symbol _dl_debug_addr in dynamic linker"));
          enable_break_failure_warning ();
-         bfd_close (tmp_bfd);
+         gdb_bfd_unref (tmp_bfd);
          return 0;
        }
 
@@ -949,13 +949,13 @@ enable_break2 (void)
                     "(at address %s) from dynamic linker"),
                   hex_string_custom (addr + 8, 8));
          enable_break_failure_warning ();
-         bfd_close (tmp_bfd);
+         gdb_bfd_unref (tmp_bfd);
          return 0;
        }
       addr = extract_unsigned_integer (addr_buf, sizeof addr_buf, byte_order);
 
       /* We're done with the temporary bfd.  */
-      bfd_close (tmp_bfd);
+      gdb_bfd_unref (tmp_bfd);
 
       /* We're also done with the loadmap.  */
       xfree (ldm);
@@ -965,7 +965,7 @@ enable_break2 (void)
       remove_solib_event_breakpoints ();
 
       /* Now (finally!) create the solib breakpoint.  */
-      create_solib_event_breakpoint (target_gdbarch, addr);
+      create_solib_event_breakpoint (target_gdbarch (), addr);
 
       info->enable_break2_done = 1;
 
@@ -1007,7 +1007,7 @@ enable_break (void)
       return 0;
     }
 
-  create_solib_event_breakpoint (target_gdbarch,
+  create_solib_event_breakpoint (target_gdbarch (),
                                 SYMBOL_VALUE_ADDRESS (start));
 
   if (solib_dsbt_debug)
@@ -1029,8 +1029,6 @@ dsbt_special_symbol_handling (void)
 static void
 dsbt_relocate_main_executable (void)
 {
-  int status;
-  CORE_ADDR exec_addr, interp_addr;
   struct int_elf32_dsbt_loadmap *ldm;
   struct cleanup *old_chain;
   struct section_offsets *new_offsets;
@@ -1173,7 +1171,7 @@ void
 _initialize_dsbt_solib (void)
 {
   solib_dsbt_pspace_data
-    = register_program_space_data_with_cleanup (dsbt_pspace_data_cleanup);
+    = register_program_space_data_with_cleanup (NULL, dsbt_pspace_data_cleanup);
 
   dsbt_so_ops.relocate_section_addresses = dsbt_relocate_section_addresses;
   dsbt_so_ops.free_so = dsbt_free_so;
@@ -1186,12 +1184,12 @@ _initialize_dsbt_solib (void)
   dsbt_so_ops.bfd_open = solib_bfd_open;
 
   /* Debug this file's internals.  */
-  add_setshow_zinteger_cmd ("solib-dsbt", class_maintenance,
-                           &solib_dsbt_debug, _("\
+  add_setshow_zuinteger_cmd ("solib-dsbt", class_maintenance,
+                            &solib_dsbt_debug, _("\
 Set internal debugging of shared library code for DSBT ELF."), _("\
 Show internal debugging of shared library code for DSBT ELF."), _("\
 When non-zero, DSBT solib specific internal debugging is enabled."),
-                           NULL,
-                           show_dsbt_debug,
-                           &setdebuglist, &showdebuglist);
+                            NULL,
+                            show_dsbt_debug,
+                            &setdebuglist, &showdebuglist);
 }
This page took 0.026783 seconds and 4 git commands to generate.