1 /* Definitions for targets without shared libraries for GDB, the GNU Debugger.
2 
3    Copyright 2004
4    Free Software Foundation, Inc.
5 
6    This file is part of GDB.
7 
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2 of the License, or
11    (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 59 Temple Place - Suite 330,
21    Boston, MA 02111-1307, USA.  */
22 
23 #include "defs.h"
24 #include "solist.h"
25 
26 static struct so_list *
null_current_sos(void)27 null_current_sos (void)
28 {
29   return NULL;
30 }
31 
32 static void
null_special_symbol_handling(void)33 null_special_symbol_handling (void)
34 {
35 }
36 
37 static void
null_solib_create_inferior_hook(void)38 null_solib_create_inferior_hook (void)
39 {
40 }
41 
42 static void
null_clear_solib(void)43 null_clear_solib (void)
44 {
45 }
46 
47 static void
null_free_so(struct so_list * so)48 null_free_so (struct so_list *so)
49 {
50   xfree (so->lm_info);
51 }
52 
53 
54 static void
null_relocate_section_addresses(struct so_list * so,struct section_table * sec)55 null_relocate_section_addresses (struct so_list *so,
56                                  struct section_table *sec)
57 {
58 }
59 
60 static int
null_open_symbol_file_object(void * from_ttyp)61 null_open_symbol_file_object (void *from_ttyp)
62 {
63   return 0;
64 }
65 
66 static int
null_in_dynsym_resolve_code(CORE_ADDR pc)67 null_in_dynsym_resolve_code (CORE_ADDR pc)
68 {
69   return 0;
70 }
71 
72 static struct target_so_ops null_so_ops;
73 
74 extern initialize_file_ftype _initialize_null_solib; /* -Wmissing-prototypes */
75 
76 void
_initialize_null_solib(void)77 _initialize_null_solib (void)
78 {
79   null_so_ops.relocate_section_addresses = null_relocate_section_addresses;
80   null_so_ops.free_so = null_free_so;
81   null_so_ops.clear_solib = null_clear_solib;
82   null_so_ops.solib_create_inferior_hook = null_solib_create_inferior_hook;
83   null_so_ops.special_symbol_handling = null_special_symbol_handling;
84   null_so_ops.current_sos = null_current_sos;
85   null_so_ops.open_symbol_file_object = null_open_symbol_file_object;
86   null_so_ops.in_dynsym_resolve_code = null_in_dynsym_resolve_code;
87 
88   /* Set current_target_so_ops to null_so_ops if not already set.  */
89   if (current_target_so_ops == 0)
90     current_target_so_ops = &null_so_ops;
91 }
92