1/* ----------------------------------------------------------------------- *
2 *
3 * Copyright 1996-2010 The NASM Authors - All Rights Reserved
4 * See the file AUTHORS included with the NASM distribution for
5 * the specific copyright holders.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following
9 * conditions are met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 * ----------------------------------------------------------------------- */
33
34#ifndef STABS_H_
35#define STABS_H_
36
37#include <ctype.h>
38
39#include "compiler.h"
40#include "nasmlib.h"
41#include "nasm.h"
42
43/* offsets */
44enum stab_offsets {
45 STAB_strdxoff = 0,
46 STAB_typeoff = 4,
47 STAB_otheroff = 5,
48 STAB_descoff = 6,
49 STAB_valoff = 8,
50 STAB_stabsize = 12
51};
52
53/* stab/non-stab types */
54enum stab_types {
55 N_UNDF = 0x00,
56 N_ABS = 0x02,
57 N_ABS_EXT = 0x03,
58 N_TEXT = 0x04,
59 N_TEXT_EXT = 0x05,
60 N_DATA = 0x06,
61 N_DATA_EXT = 0x07,
62 N_BSS = 0x08,
63 N_BSS_EXT = 0x09,
64 N_FN_SEQ = 0x0c,
65 N_INDR = 0x0a,
66 N_COMM = 0x12,
67 N_SETA = 0x14,
68 N_SETA_EXT = 0x15,
69 N_SETT = 0x16,
70 N_SETT_EXT = 0x17,
71 N_SETD = 0x18,
72 N_SETD_EXT = 0x19,
73 N_SETB = 0x1a,
74 N_SETB_EXT = 0x1b,
75 N_SETV = 0x1c,
76 N_SETV_EXT = 0x1d,
77 N_WARNING = 0x1e,
78 N_FN = 0x1f,
79 N_GSYM = 0x20,
80 N_FNAME = 0x22,
81 N_FUN = 0x24,
82 N_STSYM = 0x26,
83 N_LCSYM = 0x28,
84 N_MAIN = 0x2a,
85 N_ROSYM = 0x2c,
86 N_BNSYM = 0x2e,
87 N_PC = 0x30,
88 N_NSYMS = 0x32,
89 N_NOMAP = 0x34,
90 N_OBJ = 0x38,
91 N_OPT = 0x3c,
92 N_RSYM = 0x40,
93 N_M2C = 0x42,
94 N_SLINE = 0x44,
95 N_DSLINE = 0x46,
96 N_BSLINE = 0x48,
97 N_BROWS = 0x48,
98 N_DEFD = 0x4a,
99 N_FLINE = 0x4c,
100 N_ENSYM = 0x4e,
101 N_EHDECL = 0x50,
102 N_MOD2 = 0x50,
103 N_CATCH = 0x54,
104 N_SSYM = 0x60,
105 N_ENDM = 0x62,
106 N_SO = 0x64, /* ID for main source file */
107 N_OSO = 0x66,
108 N_ALIAS = 0x6c,
109 N_LSYM = 0x80,
110 N_BINCL = 0x82,
111 N_SOL = 0x84, /* ID for sub-source file */
112 N_PSYM = 0xa0,
113 N_EINCL = 0xa2,
114 N_ENTRY = 0xa4,
115 N_LBRAC = 0xc0,
116 N_EXCL = 0xc2,
117 N_SCOPE = 0xc4,
118 N_PATCH = 0xd0,
119 N_RBRAC = 0xe0,
120 N_BCOMM = 0xe2,
121 N_ECOMM = 0xe4,
122 N_ECOML = 0xe8,
123 N_WITH = 0xea,
124 N_NBTEXT = 0xf0,
125 N_NBDATA = 0xf2,
126 N_NBBSS = 0xf4,
127 N_NBSTS = 0xf6,
128 N_NBLCS = 0xf8,
129 N_LENG = 0xfe
130};
131
132enum stab_source_file {
133 N_SO_AS = 0x01,
134 N_SO_C = 0x02,
135 N_SO_ANSI_C = 0x03,
136 N_SO_CC = 0x04,
137 N_SO_FORTRAN = 0x05,
138 N_SO_PASCAL = 0x06,
139 N_SO_FORTRAN90 = 0x07,
140 N_SO_OBJC = 0x32,
141 N_SO_OBJCPLUS = 0x33
142};
143
144#endif /* STABS_H_ */
145