#ifndef OMFSPEC_H
#define OMFSPEC_H 1
#if 0#endif
enum segdef_align_values {
SEGDEF_ALIGN_ABS = 0,
SEGDEF_ALIGN_BYTE = 1,
SEGDEF_ALIGN_WORD = 2,
SEGDEF_ALIGN_PARA = 3,
SEGDEF_ALIGN_PAGE = 4,
SEGDEF_ALIGN_DWORD = 5,
#if PAGE4K
SEGDEF_ALIGN_4KPAGE = 6
#endif
};
enum combine_attributes {
COMB_INVALID = 0,
COMB_ABOVEALL = 1,
COMB_ADDOFF = 2,
COMB_BAD = 3,
COMB_FOUR = 4,
COMB_STACK = 5,
COMB_COMMON = 6,
COMB_ALIGNTOP = 7,
};
#if 0#endif
enum frame_methods {
FRAME_SEG = 0,
FRAME_GRP = 1,
FRAME_EXT = 2,
FRAME_LOC = 4,
FRAME_TARG = 5,
FRAME_NONE = 6,
};
enum target_methods {
TARGET_SEGWD = 0,
TARGET_GRPWD = 1,
TARGET_EXTWD = 2,
TARGET_SEG = 4,
TARGET_GRP = 5,
TARGET_EXT = 6,
TARGET_WITH_DISPL = ~4,
};
enum {
FIXUPP_FIXUP = 0x80,
FIXDAT_FTHREAD = 0x80,
FIXDAT_TTHREAD = 8,
FIXDAT_PBIT = 4,
FIXDAT_MBIT = 0x40,
TRDDAT_DBIT = 0x40,
GRP_SEGIDX = 0xff,
GRP_EXTIDX = 0xfe,
GRP_FULLNAME = 0xfd,
GRP_LTLDATA = 0xfb,
GRP_ADDR = 0xfa,
};
enum cmd_omf {
#if 0#else
CMD_MIN_CMD = 0x80,
#endif
CMD_THEADR = 0x80,
CMD_LHEADR = 0x82,
CMD_COMENT = 0x88,
CMD_MODEND = 0x8a,
CMD_EXTDEF = 0x8c,
CMD_TYPDEF = 0x8e,
CMD_PUBDEF = 0x90,
CMD_LINNUM = 0x94,
CMD_LNAMES = 0x96,
CMD_SEGDEF = 0x98,
CMD_GRPDEF = 0x9a,
CMD_FIXUPP = 0x9c,
CMD_LEDATA = 0xa0,
CMD_LIDATA = 0xa2,
CMD_COMDEF = 0xb0,
CMD_BAKPAT = 0xb2,
CMD_LEXTDEF = 0xb4,
CMD_STATIC_EXTDEF = 0xb4,
CMD_LPUBDEF = 0xb6,
CMD_LCOMDEF = 0xb8,
CMD_STATIC_COMDEF = 0xb8,
CMD_CEXTDEF = 0xbc,
CMD_COMDAT = 0xc2,
CMD_LINSYM = 0xc4,
CMD_ALIAS = 0xc6,
CMD_NBKPAT = 0xc8,
CMD_LLNAMES = 0xca,
CMD_MAX_CMD = 0xca,
#if 0#endif
#if 0#endif
};
enum omf_fixup_types {
LOC_OFFSET_LO = 0,
LOC_OFFSET = 1,
LOC_BASE = 2,
LOC_BASE_OFFSET = 3,
LOC_OFFSET_HI = 4,
#if 0#endif
LOC_MS_LINK_OFFSET = 5,
LOC_MS_OFFSET_32 = 9,
LOC_MS_BASE_OFFSET_32= 11,
LOC_MS_LINK_OFFSET_32= 13
};
enum {
CMT_TNP = 0x80,
CMT_TNL = 0x40,
};
enum omf_comment_classes {
CMT_DOSSEG = 0x9e,
CMT_DEFAULT_LIBRARY = 0x9f,
CMT_OMF_EXT = 0xa0,
CMT_MS_OMF = 0xa1,
CMT_MS_END_PASS_1 = 0xa2,
CMT_WKEXT = 0xa8,
CMT_SRCFILE = 0xe8,
CMT_DEPENDENCY = 0xe9,
CMT_DISASM_DIRECTIVE= 0xfd,
CMT_LINKER_DIRECTIVE= 0xfe,
};
enum omf_ext_subtype {
CMT_EXT_IMPDEF = 0x01,
CMT_EXT_EXPDEF = 0x02,
CMT_EXT_INCDEF = 0x03,
CMT_EXT_PMLIB = 0x04,
CMT_EXT_LNKDIR = 0x05,
CMT_EXT_BIGEND = 0x06,
CMT_EXT_PRECOMP = 0x07,
};
enum linker_directives {
LDIR_SOURCE_LANGUAGE= 'D',
LDIR_DEFAULT_LIBRARY= 'L',
LDIR_OPT_FAR_CALLS = 'O',
};
enum disasm_directives {
DDIR_SCAN_TABLE_32 = 'S',
DDIR_SCAN_TABLE = 's'
};
enum comdef_types {
COMDEF_FAR = 0x61,
COMDEF_NEAR = 0x62,
COMDEF_LEAF_SIZE = 0x80,
COMDEF_LEAF_2 = 0x81,
COMDEF_LEAF_3 = 0x84,
COMDEF_LEAF_4 = 0x88
};
enum comdat_flags {
COMDAT_CONTINUE = 0x01,
COMDAT_ITERATED = 0x02,
COMDAT_LOCAL = 0x04,
COMDAT_DATAINCODE = 0x08,
COMDAT_ALLOC_MASK = 0x0f,
COMDAT_EXPLICIT = 0x00,
COMDAT_FAR_CODE = 0x01,
COMDAT_FAR_DATA = 0x02,
COMDAT_CODE32 = 0x03,
COMDAT_DATA32 = 0x04,
COMDAT_MATCH_MASK = 0xf0,
COMDAT_MATCH_NONE = 0x00,
COMDAT_MATCH_ANY = 0x10,
COMDAT_MATCH_SAME = 0x20,
COMDAT_MATCH_EXACT = 0x30,
COMDAT_ALIGN_SEG = 0x00,
COMDAT_ALIGN_BYTE = 0x01,
COMDAT_ALIGN_WORD = 0x02,
COMDAT_ALIGN_PARA = 0x03,
COMDAT_ALIGN_4K = 0x04,
COMDAT_ALIGN_DWORD = 0x05
};
#endif