syms(4) — File Formats
NAME
syms − Symbol table
SYNOPSIS
#include < sym.h>
#include < symconst.h>
DESCRIPTION
The symbol table departs from the standard COFF symbol table. The symbol table consists of many tables unbundling information usually found in the one COFF symbol table. The symbol table should be viewed as a hand-crafted, network-style database designed for space and access efficiency.
The following structures or tables appear in the symbol table:
| Table | Contents |
| Symbolic header | Sizes and locations of all other tables |
| File descriptors | Per file locations for other tables |
| Procedure descriptors | Frame information and location of procedure info |
| Local symbols | Local type, local variable, and scoping info |
| Local strings | String space for local symbols |
| Line numbers | Compacted by encoding, contains a line per instruction |
| Relative file desc. | Indirection for inter-file symbol access |
| Optimization symbols | To be defined |
| Auxiliary symbols | Variable data type information for each local symbol |
| External symbols | Loader symbols (global text and data) |
| External strings | String space for external symbols |
| Dense numbers | (File, symbol) index pairs for compiler use |
External and local symbols contain the standard concept of a “symbol” as follows:
struct
{
long iss; /∗ index into string space ∗/
long value; /∗ address, size, etc., depends on sc and st ∗/
unsigned st: 6; /∗ symbol type (e.g. local, param, etc.) ∗/
unsigned sc: 5; /∗ storage class (e.g. text, bss, etc.) ∗/
unsigned reserved: 1;
unsigned index; /∗ index to symbol or auxiliary tables ∗/
};