[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Most target vectors are defined using `BFD_JUMP_TABLE' macros. These macros take a single argument, which is a prefix applied to a set of functions. The macros are then used to initialize the fields in the target vector.
For example, the `BFD_JUMP_TABLE_RELOCS' macro defines three functions: `_get_reloc_upper_bound', `_canonicalize_reloc', and `_bfd_reloc_type_lookup'. A reference like `BFD_JUMP_TABLE_RELOCS (foo)' will expand into three functions prefixed with `foo': `foo_get_reloc_upper_bound', etc. The `BFD_JUMP_TABLE_RELOCS' macro will be placed such that those three functions initialize the appropriate fields in the BFD target vector.
This is done because it turns out that many different target vectors can share certain classes of functions. For example, archives are similar on most platforms, so most target vectors can use the same archive functions. Those target vectors all use `BFD_JUMP_TABLE_ARCHIVE' with the same argument, calling a set of functions which is defined in `archive.c'.
Each of the `BFD_JUMP_TABLE' macros is mentioned below along with the description of the function pointers which it defines. The function pointers will be described using the name without the prefix which the `BFD_JUMP_TABLE' macro defines. This name is normally the same as the name of the field in the target vector structure. Any differences will be noted.