## 17 Target Description Macros and Functions

In addition to the file `machine.md`, a machine description includes a C header file conventionally given the name `machine.h` and a C source file named `machine.c`. The header file defines numerous macros that convey the information about the target machine that does not fit into the scheme of the `.md` file. The file `tm.h` should be a link to `machine.h`. The header file `config.h` includes `tm.h` and most compiler source files include `config.h`. The source file defines a variable `targetm`, which is a structure containing pointers to functions and data relating to the target machine. `machine.c` should also contain their definitions, if they are not defined elsewhere in GCC, and other functions called through the macros defined in the `.h` file.