/* Local function prototypes */
static void
-read_minimal_symbols PARAMS ((struct objfile *, struct section_offsets *));
+read_minimal_symbols PARAMS ((struct objfile *));
static void
os9k_read_ofile_symtab PARAMS ((struct partial_symtab *));
os9k_psymtab_to_symtab_1 PARAMS ((struct partial_symtab *));
static void
-read_os9k_psymtab PARAMS ((struct section_offsets *, struct objfile *,
- CORE_ADDR, int));
+read_os9k_psymtab PARAMS ((struct objfile *, CORE_ADDR, int));
static int
fill_sym PARAMS ((FILE *, bfd *));
os9k_new_init PARAMS ((struct objfile *));
static void
-os9k_symfile_read PARAMS ((struct objfile *, struct section_offsets *, int));
+os9k_symfile_read PARAMS ((struct objfile *, int));
static void
os9k_symfile_finish PARAMS ((struct objfile *));
struct section_offsets *, struct objfile *));
static struct partial_symtab *
- os9k_start_psymtab PARAMS ((struct objfile *, struct section_offsets *, char *,
+ os9k_start_psymtab PARAMS ((struct objfile *, char *,
CORE_ADDR, int, int, struct partial_symbol **,
struct partial_symbol **));
struct partial_symtab **, int));
static void
-record_minimal_symbol PARAMS ((char *, CORE_ADDR, int, struct objfile *,
- struct section_offsets *));
+record_minimal_symbol PARAMS ((char *, CORE_ADDR, int, struct objfile *));
\f
#define HANDLE_RBRAC(val) \
if ((val) > pst->texthigh) pst->texthigh = (val);
#define N_ABS 6
static void
-record_minimal_symbol (name, address, type, objfile, section_offsets)
+record_minimal_symbol (name, address, type, objfile)
char *name;
CORE_ADDR address;
int type;
struct objfile *objfile;
- struct section_offsets *section_offsets;
{
enum minimal_symbol_type ms_type;
{
case N_TEXT:
ms_type = mst_text;
- address += ANOFFSET (section_offsets, SECT_OFF_TEXT);
+ address += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT);
break;
case N_DATA:
ms_type = mst_data;
#define STBSYMSIZE 10
static void
-read_minimal_symbols (objfile, section_offsets)
+read_minimal_symbols (objfile)
struct objfile *objfile;
- struct section_offsets *section_offsets;
{
FILE *fp;
bfd *abfd;
break;
ch = getc (fp);
};
- record_minimal_symbol (buf1, sym.value, sym.type & 7, objfile, section_offsets);
+ record_minimal_symbol (buf1, sym.value, sym.type & 7, objfile);
off += STBSYMSIZE;
};
install_minimal_symbols (objfile);
put all the relevant info into a "struct os9k_symfile_info",
hung off the objfile structure.
- SECTION_OFFSETS contains offsets relative to which the symbols in the
- various sections are (depending where the sections were actually loaded).
MAINLINE is true if we are reading the main symbol
table (as opposed to a shared lib or dynamically loaded file). */
static void
-os9k_symfile_read (objfile, section_offsets, mainline)
+os9k_symfile_read (objfile, mainline)
struct objfile *objfile;
- struct section_offsets *section_offsets;
int mainline; /* FIXME comments above */
{
bfd *sym_bfd;
init_psymbol_list (objfile, DBX_SYMCOUNT (objfile));
free_pending_blocks ();
- back_to = make_cleanup ((make_cleanup_func) really_free_pendings, 0);
+ back_to = make_cleanup (really_free_pendings, 0);
make_cleanup ((make_cleanup_func) discard_minimal_symbols, 0);
- read_minimal_symbols (objfile, section_offsets);
+ read_minimal_symbols (objfile);
/* Now that the symbol table data of the executable file are all in core,
process them and define symbols accordingly. */
- read_os9k_psymtab (section_offsets, objfile,
+ read_os9k_psymtab (objfile,
DBX_TEXT_ADDR (objfile),
DBX_TEXT_SIZE (objfile));
/* Given pointers to an a.out symbol table in core containing dbx
style data, setup partial_symtab's describing each source file for
which debugging information is available.
- SYMFILE_NAME is the name of the file we are reading from
- and SECTION_OFFSETS is the set of offsets for the various sections
- of the file (a set of zeros if the mainline program). */
+ SYMFILE_NAME is the name of the file we are reading from. */
static void
-read_os9k_psymtab (section_offsets, objfile, text_addr, text_size)
- struct section_offsets *section_offsets;
+read_os9k_psymtab (objfile, text_addr, text_size)
struct objfile *objfile;
CORE_ADDR text_addr;
int text_size;
#ifdef END_OF_TEXT_DEFAULT
end_of_text_addr = END_OF_TEXT_DEFAULT;
#else
- end_of_text_addr = text_addr + section_offsets->offsets[SECT_OFF_TEXT]
+ end_of_text_addr = text_addr + ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT)
+ text_size; /* Relocate */
#endif
continue;
case N_SYM_SE:
- CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_TEXT);
+ CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT);
if (psymfile_depth == 1 && pst)
{
os9k_end_psymtab (pst, psymtab_include_list, includes_used,
valu = CUR_SYMBOL_VALUE;
if (valu)
- valu += ANOFFSET (section_offsets, SECT_OFF_TEXT);
+ valu += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT);
past_first_source_file = 1;
p = strchr (namestring, ':');
if (psymfile_depth == 0)
{
if (!pst)
- pst = os9k_start_psymtab (objfile, section_offsets,
+ pst = os9k_start_psymtab (objfile,
str, valu,
cursymoffset,
symnum - 1,
continue;
case 'f':
- CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_TEXT);
+ CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT);
if (pst && pst->textlow == 0)
pst->textlow = CUR_SYMBOL_VALUE;
continue;
case 'F':
- CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_TEXT);
+ CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT);
if (pst && pst->textlow == 0)
pst->textlow = CUR_SYMBOL_VALUE;
}
case N_SYM_RBRAC:
- CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_TEXT);
+ CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT);
#ifdef HANDLE_RBRAC
HANDLE_RBRAC (CUR_SYMBOL_VALUE);
continue;
static struct partial_symtab *
-os9k_start_psymtab (objfile, section_offsets,
+os9k_start_psymtab (objfile,
filename, textlow, ldsymoff, ldsymcnt, global_syms, static_syms)
struct objfile *objfile;
- struct section_offsets *section_offsets;
char *filename;
CORE_ADDR textlow;
int ldsymoff;
struct partial_symbol **static_syms;
{
struct partial_symtab *result =
- start_psymtab_common (objfile, section_offsets,
+ start_psymtab_common (objfile, objfile->section_offsets,
filename, textlow, global_syms, static_syms);
result->read_symtab_private = (char *)
/* Init stuff necessary for reading in symbols */
stabsread_init ();
buildsym_init ();
- old_chain = make_cleanup ((make_cleanup_func) really_free_pendings, 0);
+ old_chain = make_cleanup (really_free_pendings, 0);
/* Read in this file's symbols */
os9k_read_ofile_symtab (pst);
int sym_offset; /* Offset to start of symbols to read */
CORE_ADDR text_offset; /* Start of text segment for symbols */
int text_size; /* Size of text segment for symbols */
- struct section_offsets *section_offsets;
FILE *dbg_file;
objfile = pst->objfile;
max_symnum = LDSYMCNT (pst);
text_offset = pst->textlow;
text_size = pst->texthigh - pst->textlow;
- section_offsets = pst->section_offsets;
current_objfile = objfile;
subfile_stack = NULL;
type = bufp->n_type;
os9k_process_one_symbol ((int) type, (int) bufp->n_desc,
- (CORE_ADDR) bufp->n_value, bufp->n_strx, section_offsets, objfile);
+ (CORE_ADDR) bufp->n_value, bufp->n_strx, pst->section_offsets, objfile);
/* We skip checking for a new .o or -l file; that should never
happen in this routine. */
os9k_symfile_init, /* sym_init: read initial info, setup for sym_read() */
os9k_symfile_read, /* sym_read: read a symbol file into symtab */
os9k_symfile_finish, /* sym_finish: finished with file, cleanup */
- default_symfile_offsets,
- /* sym_offsets: parse user's offsets to internal form */
+ default_symfile_offsets, /* sym_offsets: parse user's offsets to internal form */
NULL /* next: pointer to next struct sym_fns */
};