/* ----------------------------------------------------------------------- * * * Copyright 1996-2010 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following * conditions are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ----------------------------------------------------------------------- */ #ifndef STABS_H_ #define STABS_H_ #include #include #include "compiler.h" #include "nasmlib.h" #include "nasm.h" /* offsets */ enum stab_offsets { STAB_strdxoff = 0, STAB_typeoff = 4, STAB_otheroff = 5, STAB_descoff = 6, STAB_valoff = 8, STAB_stabsize = 12, }; /* stab/non-stab types */ enum stab_types { N_UNDF = 0x00, N_ABS = 0x02, N_ABS_EXT = 0x03, N_TEXT = 0x04, N_TEXT_EXT = 0x05, N_DATA = 0x06, N_DATA_EXT = 0x07, N_BSS = 0x08, N_BSS_EXT = 0x09, N_FN_SEQ = 0x0c, N_INDR = 0x0a, N_COMM = 0x12, N_SETA = 0x14, N_SETA_EXT = 0x15, N_SETT = 0x16, N_SETT_EXT = 0x17, N_SETD = 0x18, N_SETD_EXT = 0x19, N_SETB = 0x1a, N_SETB_EXT = 0x1b, N_SETV = 0x1c, N_SETV_EXT = 0x1d, N_WARNING = 0x1e, N_FN = 0x1f, N_GSYM = 0x20, N_FNAME = 0x22, N_FUN = 0x24, N_STSYM = 0x26, N_LCSYM = 0x28, N_MAIN = 0x2a, N_ROSYM = 0x2c, N_BNSYM = 0x2e, N_PC = 0x30, N_NSYMS = 0x32, N_NOMAP = 0x34, N_OBJ = 0x38, N_OPT = 0x3c, N_RSYM = 0x40, N_M2C = 0x42, N_SLINE = 0x44, N_DSLINE = 0x46, N_BSLINE = 0x48, N_BROWS = 0x48, N_DEFD = 0x4a, N_FLINE = 0x4c, N_ENSYM = 0x4e, N_EHDECL = 0x50, N_MOD2 = 0x50, N_CATCH = 0x54, N_SSYM = 0x60, N_ENDM = 0x62, N_SO = 0x64, /* ID for main source file */ N_OSO = 0x66, N_ALIAS = 0x6c, N_LSYM = 0x80, N_BINCL = 0x82, N_SOL = 0x84, /* ID for sub-source file */ N_PSYM = 0xa0, N_EINCL = 0xa2, N_ENTRY = 0xa4, N_LBRAC = 0xc0, N_EXCL = 0xc2, N_SCOPE = 0xc4, N_PATCH = 0xd0, N_RBRAC = 0xe0, N_BCOMM = 0xe2, N_ECOMM = 0xe4, N_ECOML = 0xe8, N_WITH = 0xea, N_NBTEXT = 0xf0, N_NBDATA = 0xf2, N_NBBSS = 0xf4, N_NBSTS = 0xf6, N_NBLCS = 0xf8, N_LENG = 0xfe, }; enum stab_source_file { N_SO_AS = 0x01, N_SO_C = 0x02, N_SO_ANSI_C = 0x03, N_SO_CC = 0x04, N_SO_FORTRAN = 0x05, N_SO_PASCAL = 0x06, N_SO_FORTRAN90 = 0x07, N_SO_OBJC = 0x32, N_SO_OBJCPLUS = 0x33, }; #endif /* STABS_H_ */