50 lines
1.8 KiB
C
50 lines
1.8 KiB
C
/*
|
|
-- isymfile.h : from _isym.h : .sym file i/o
|
|
*/
|
|
|
|
typedef WORD DPARA; /* PARA relative to start of file */
|
|
|
|
/* * STANDARD .SYM FORMAT */
|
|
|
|
/* For each symbol table (map): (MAPDEF) */
|
|
typedef struct _smm
|
|
{
|
|
DPARA dparaSmmNext; /* 16 bit ptr to next map (0 if end) */
|
|
WORD psLoad; /* ignored */
|
|
WORD segEntry; /* ignored */
|
|
WORD csyAbs; /* count of absolute symbols */
|
|
WORD offRgpsmb; /* offset to table of symbol pointers */
|
|
WORD cseg; /* # of executable segments */
|
|
DPARA dparaSmsFirst; /* segment symbol chain */
|
|
BYTE cchNameMax; /* max symbol name */
|
|
char stName[1]; /* length prefixed name */
|
|
} SMM; /* SyMbol MAP */
|
|
|
|
#define cbSmmNoname (((SMM *)0)->stName)
|
|
|
|
/* For each segment/group within a symbol table: (SEGDEF) */
|
|
typedef struct _sms
|
|
{
|
|
DPARA dparaSmsNext; /* next segment (cyclic) */
|
|
WORD csy; /* # of symbols */
|
|
WORD offRgpsmb; /* offset to table of symbol pointers */
|
|
WORD psLoad; /* ignored */
|
|
WORD psLoad0; /* ignored */
|
|
WORD psLoad1; /* ignored */
|
|
WORD psLoad2; /* ignored */
|
|
WORD psLoad3; /* ignored */
|
|
DPARA dparaLinFirst; /* point to first line # */
|
|
BYTE fLoaded; /* ignored */
|
|
BYTE instCur; /* ignored */
|
|
char stName[1]; /* length prefixed name */
|
|
} SMS; /* SyMbol Segment */
|
|
|
|
#define cbSmsNoname (unsigned int) (((SMS *)0)->stName)
|
|
|
|
/* * End of symbol table */
|
|
typedef struct _sme
|
|
{
|
|
DPARA dparaEnd; /* 0 */
|
|
BYTE rel, ver; /* SYMBOL release, version */
|
|
} SME; /* SyMbol End */
|