/* Definitions for symbol file management in GDB.
- Copyright (C) 1992, 1993, 1994, 1995, 1999 Free Software Foundation, Inc.
+
+ Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2001, 2002 Free Software Foundation, Inc.
This file is part of GDB.
#if !defined (OBJFILES_H)
#define OBJFILES_H
+#include "gdb_obstack.h" /* For obstack internals. */
+#include "symfile.h" /* For struct psymbol_allocation_list */
+
+struct bcache;
+
/* This structure maintains information on a per-objfile basis about the
"entry point" of the objfile, and the scope within which the entry point
exists. It is possible that gdb will see more than one objfile that is
extern void print_symbol_bcache_statistics (void);
/* Number of entries in the minimal symbol hash table. */
-#define MINIMAL_SYMBOL_HASH_SIZE 349
+#define MINIMAL_SYMBOL_HASH_SIZE 2039
/* Master structure for keeping track of each file from which
gdb reads symbols. There are several ways these get allocated: 1.
/* A byte cache where we can stash arbitrary "chunks" of bytes that
will not change. */
- struct bcache psymbol_cache; /* Byte cache for partial syms */
+ struct bcache *psymbol_cache; /* Byte cache for partial syms */
+ struct bcache *macro_cache; /* Byte cache for macros */
/* Vectors of all partial symbols read in from file. The actual data
is stored in the psymbol_obstack. */
so that it gets freed automatically when reading a new object
file. */
- PTR obj_private;
+ void *obj_private;
/* Set of relocation offsets to apply to each section.
Currently on the psymbol_obstack (which makes no sense, but I'm
ALL_OBJFILE_OSECTIONS (objfile, osect)
#define SECT_OFF_DATA(objfile) \
- ((objfile->sect_index_data == -1) ? \
- (internal_error ("sect_index_data not initialized"), -1) : objfile->sect_index_data)
+ ((objfile->sect_index_data == -1) \
+ ? (internal_error (__FILE__, __LINE__, "sect_index_data not initialized"), -1) \
+ : objfile->sect_index_data)
#define SECT_OFF_RODATA(objfile) \
- ((objfile->sect_index_rodata == -1) ? \
- (internal_error ("sect_index_rodata not initialized"), -1) : objfile->sect_index_rodata)
+ ((objfile->sect_index_rodata == -1) \
+ ? (internal_error (__FILE__, __LINE__, "sect_index_rodata not initialized"), -1) \
+ : objfile->sect_index_rodata)
#define SECT_OFF_TEXT(objfile) \
- ((objfile->sect_index_text == -1) ? \
- (internal_error ("sect_index_text not initialized"), -1) : objfile->sect_index_text)
+ ((objfile->sect_index_text == -1) \
+ ? (internal_error (__FILE__, __LINE__, "sect_index_text not initialized"), -1) \
+ : objfile->sect_index_text)
/* Sometimes the .bss section is missing from the objfile, so we don't
want to die here. Let the users of SECT_OFF_BSS deal with an