+
+ /* Each file contains a pointer to an array of minimal symbols for all
+ global symbols that are defined within the file. The array is
+ terminated by a "null symbol", one that has a NULL pointer for the
+ name and a zero value for the address. This makes it easy to walk
+ through the array when passed a pointer to somewhere in the middle
+ of it. There is also a count of the number of symbols, which does
+ not include the terminating null symbol. The array itself, as well
+ as all the data that it points to, should be allocated on the
+ objfile_obstack for this file. */
+
+ struct minimal_symbol *msymbols;
+ int minimal_symbol_count;
+
+ /* The number of minimal symbols read, before any minimal symbol
+ de-duplication is applied. Note in particular that this has only
+ a passing relationship with the actual size of the table above;
+ use minimal_symbol_count if you need the true size. */
+
+ int n_minsyms;
+
+ /* This is true if minimal symbols have already been read. Symbol
+ readers can use this to bypass minimal symbol reading. Also, the
+ minimal symbol table management code in minsyms.c uses this to
+ suppress new minimal symbols. You might think that MSYMBOLS or
+ MINIMAL_SYMBOL_COUNT could be used for this, but it is possible
+ for multiple readers to install minimal symbols into a given
+ per-BFD. */
+
+ unsigned int minsyms_read : 1;
+
+ /* This is a hash table used to index the minimal symbols by name. */
+
+ struct minimal_symbol *msymbol_hash[MINIMAL_SYMBOL_HASH_SIZE];
+
+ /* This hash table is used to index the minimal symbols by their
+ demangled names. */
+
+ struct minimal_symbol *msymbol_demangled_hash[MINIMAL_SYMBOL_HASH_SIZE];