windows-nt/Source/XPSP1/NT/sdktools/link16/isymfile.h
2020-09-26 16:20:57 +08:00

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 */