+#define MSYMBOL_VALUE(symbol) (symbol)->mginfo.value.ivalue
+/* The unrelocated address of the minimal symbol. */
+#define MSYMBOL_VALUE_RAW_ADDRESS(symbol) ((symbol)->mginfo.value.address + 0)
+/* The relocated address of the minimal symbol, using the section
+ offsets from OBJFILE. */
+#define MSYMBOL_VALUE_ADDRESS(objfile, symbol) \
+ ((symbol)->mginfo.value.address \
+ + ANOFFSET ((objfile)->section_offsets, ((symbol)->mginfo.section)))
+/* For a bound minsym, we can easily compute the address directly. */
+#define BMSYMBOL_VALUE_ADDRESS(symbol) \
+ MSYMBOL_VALUE_ADDRESS ((symbol).objfile, (symbol).minsym)
+#define SET_MSYMBOL_VALUE_ADDRESS(symbol, new_value) \
+ ((symbol)->mginfo.value.address = (new_value))
+#define MSYMBOL_VALUE_BYTES(symbol) (symbol)->mginfo.value.bytes
+#define MSYMBOL_BLOCK_VALUE(symbol) (symbol)->mginfo.value.block
+#define MSYMBOL_VALUE_CHAIN(symbol) (symbol)->mginfo.value.chain
+#define MSYMBOL_LANGUAGE(symbol) (symbol)->mginfo.language
+#define MSYMBOL_SECTION(symbol) (symbol)->mginfo.section
+#define MSYMBOL_OBJ_SECTION(objfile, symbol) \
+ (((symbol)->mginfo.section >= 0) \
+ ? (&(((objfile)->sections)[(symbol)->mginfo.section])) \
+ : NULL)
+
+#define MSYMBOL_NATURAL_NAME(symbol) \
+ (symbol_natural_name (&(symbol)->mginfo))
+#define MSYMBOL_LINKAGE_NAME(symbol) (symbol)->mginfo.name
+#define MSYMBOL_PRINT_NAME(symbol) \
+ (demangle ? MSYMBOL_NATURAL_NAME (symbol) : MSYMBOL_LINKAGE_NAME (symbol))
+#define MSYMBOL_DEMANGLED_NAME(symbol) \
+ (symbol_demangled_name (&(symbol)->mginfo))
+#define MSYMBOL_SET_LANGUAGE(symbol,language,obstack) \
+ (symbol_set_language (&(symbol)->mginfo, (language), (obstack)))
+#define MSYMBOL_SEARCH_NAME(symbol) \
+ (symbol_search_name (&(symbol)->mginfo))
+#define MSYMBOL_MATCHES_SEARCH_NAME(symbol, name) \
+ (strcmp_iw (MSYMBOL_SEARCH_NAME (symbol), (name)) == 0)
+#define MSYMBOL_SET_NAMES(symbol,linkage_name,len,copy_name,objfile) \
+ symbol_set_names (&(symbol)->mginfo, linkage_name, len, copy_name, objfile)
+
+#include "minsyms.h"
+