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 */ |
44 | enum 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 */ |
54 | enum 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 | |
132 | enum 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 | |