Blame


1 a84cbb2a 2004-04-19 devnull typedef struct Dwarf Dwarf;
2 a84cbb2a 2004-04-19 devnull typedef struct DwarfAttrs DwarfAttrs;
3 a84cbb2a 2004-04-19 devnull typedef struct DwarfBlock DwarfBlock;
4 a84cbb2a 2004-04-19 devnull typedef struct DwarfBuf DwarfBuf;
5 a84cbb2a 2004-04-19 devnull typedef struct DwarfExpr DwarfExpr;
6 a84cbb2a 2004-04-19 devnull typedef struct DwarfSym DwarfSym;
7 a84cbb2a 2004-04-19 devnull typedef union DwarfVal DwarfVal;
8 a84cbb2a 2004-04-19 devnull
9 a84cbb2a 2004-04-19 devnull enum
10 a84cbb2a 2004-04-19 devnull {
11 a84cbb2a 2004-04-19 devnull TagArrayType = 0x01,
12 a84cbb2a 2004-04-19 devnull TagClassType = 0x02,
13 a84cbb2a 2004-04-19 devnull TagEntryPoint = 0x03,
14 a84cbb2a 2004-04-19 devnull TagEnumerationType = 0x04,
15 a84cbb2a 2004-04-19 devnull TagFormalParameter = 0x05,
16 a84cbb2a 2004-04-19 devnull TagImportedDeclaration = 0x08,
17 a84cbb2a 2004-04-19 devnull TagLabel = 0x0A,
18 a84cbb2a 2004-04-19 devnull TagLexDwarfBlock = 0x0B,
19 a84cbb2a 2004-04-19 devnull TagMember = 0x0D,
20 a84cbb2a 2004-04-19 devnull TagPointerType = 0x0F,
21 a84cbb2a 2004-04-19 devnull TagReferenceType = 0x10,
22 a84cbb2a 2004-04-19 devnull TagCompileUnit = 0x11,
23 a84cbb2a 2004-04-19 devnull TagStringType = 0x12,
24 a84cbb2a 2004-04-19 devnull TagStructType = 0x13,
25 a84cbb2a 2004-04-19 devnull TagSubroutineType = 0x15,
26 a84cbb2a 2004-04-19 devnull TagTypedef = 0x16,
27 a84cbb2a 2004-04-19 devnull TagUnionType = 0x17,
28 a84cbb2a 2004-04-19 devnull TagUnspecifiedParameters = 0x18,
29 a84cbb2a 2004-04-19 devnull TagVariant = 0x19,
30 a84cbb2a 2004-04-19 devnull TagCommonDwarfBlock = 0x1A,
31 a84cbb2a 2004-04-19 devnull TagCommonInclusion = 0x1B,
32 a84cbb2a 2004-04-19 devnull TagInheritance = 0x1C,
33 a84cbb2a 2004-04-19 devnull TagInlinedSubroutine = 0x1D,
34 a84cbb2a 2004-04-19 devnull TagModule = 0x1E,
35 a84cbb2a 2004-04-19 devnull TagPtrToMemberType = 0x1F,
36 a84cbb2a 2004-04-19 devnull TagSetType = 0x20,
37 a84cbb2a 2004-04-19 devnull TagSubrangeType = 0x21,
38 a84cbb2a 2004-04-19 devnull TagWithStmt = 0x22,
39 a84cbb2a 2004-04-19 devnull TagAccessDeclaration = 0x23,
40 a84cbb2a 2004-04-19 devnull TagBaseType = 0x24,
41 a84cbb2a 2004-04-19 devnull TagCatchDwarfBlock = 0x25,
42 a84cbb2a 2004-04-19 devnull TagConstType = 0x26,
43 a84cbb2a 2004-04-19 devnull TagConstant = 0x27,
44 a84cbb2a 2004-04-19 devnull TagEnumerator = 0x28,
45 a84cbb2a 2004-04-19 devnull TagFileType = 0x29,
46 a84cbb2a 2004-04-19 devnull TagFriend = 0x2A,
47 a84cbb2a 2004-04-19 devnull TagNamelist = 0x2B,
48 a84cbb2a 2004-04-19 devnull TagNamelistItem = 0x2C,
49 a84cbb2a 2004-04-19 devnull TagPackedType = 0x2D,
50 a84cbb2a 2004-04-19 devnull TagSubprogram = 0x2E,
51 a84cbb2a 2004-04-19 devnull TagTemplateTypeParameter = 0x2F,
52 a84cbb2a 2004-04-19 devnull TagTemplateValueParameter = 0x30,
53 a84cbb2a 2004-04-19 devnull TagThrownType = 0x31,
54 a84cbb2a 2004-04-19 devnull TagTryDwarfBlock = 0x32,
55 a84cbb2a 2004-04-19 devnull TagVariantPart = 0x33,
56 a84cbb2a 2004-04-19 devnull TagVariable = 0x34,
57 a84cbb2a 2004-04-19 devnull TagVolatileType = 0x35,
58 a84cbb2a 2004-04-19 devnull TagDwarfProcedure = 0x36,
59 a84cbb2a 2004-04-19 devnull TagRestrictType = 0x37,
60 a84cbb2a 2004-04-19 devnull TagInterfaceType = 0x38,
61 a84cbb2a 2004-04-19 devnull TagNamespace = 0x39,
62 a84cbb2a 2004-04-19 devnull TagImportedModule = 0x3A,
63 a84cbb2a 2004-04-19 devnull TagUnspecifiedType = 0x3B,
64 a84cbb2a 2004-04-19 devnull TagPartialUnit = 0x3C,
65 a84cbb2a 2004-04-19 devnull TagImportedUnit = 0x3D,
66 a84cbb2a 2004-04-19 devnull TagMutableType = 0x3E,
67 a84cbb2a 2004-04-19 devnull
68 a84cbb2a 2004-04-19 devnull TypeAddress = 0x01,
69 a84cbb2a 2004-04-19 devnull TypeBoolean = 0x02,
70 a84cbb2a 2004-04-19 devnull TypeComplexFloat = 0x03,
71 a84cbb2a 2004-04-19 devnull TypeFloat = 0x04,
72 a84cbb2a 2004-04-19 devnull TypeSigned = 0x05,
73 a84cbb2a 2004-04-19 devnull TypeSignedChar = 0x06,
74 a84cbb2a 2004-04-19 devnull TypeUnsigned = 0x07,
75 a84cbb2a 2004-04-19 devnull TypeUnsignedChar = 0x08,
76 a84cbb2a 2004-04-19 devnull TypeImaginaryFloat = 0x09,
77 a84cbb2a 2004-04-19 devnull
78 a84cbb2a 2004-04-19 devnull AccessPublic = 0x01,
79 a84cbb2a 2004-04-19 devnull AccessProtected = 0x02,
80 a84cbb2a 2004-04-19 devnull AccessPrivate = 0x03,
81 a84cbb2a 2004-04-19 devnull
82 a84cbb2a 2004-04-19 devnull VisLocal = 0x01,
83 a84cbb2a 2004-04-19 devnull VisExported = 0x02,
84 a84cbb2a 2004-04-19 devnull VisQualified = 0x03,
85 a84cbb2a 2004-04-19 devnull
86 a84cbb2a 2004-04-19 devnull VirtNone = 0x00,
87 a84cbb2a 2004-04-19 devnull VirtVirtual = 0x01,
88 a84cbb2a 2004-04-19 devnull VirtPureVirtual = 0x02,
89 a84cbb2a 2004-04-19 devnull
90 a84cbb2a 2004-04-19 devnull LangC89 = 0x0001,
91 a84cbb2a 2004-04-19 devnull LangC = 0x0002,
92 a84cbb2a 2004-04-19 devnull LangAda83 = 0x0003,
93 a84cbb2a 2004-04-19 devnull LangCplusplus = 0x0004,
94 a84cbb2a 2004-04-19 devnull LangCobol74 = 0x0005,
95 a84cbb2a 2004-04-19 devnull LangCobol85 = 0x0006,
96 a84cbb2a 2004-04-19 devnull LangFortran77 = 0x0007,
97 a84cbb2a 2004-04-19 devnull LangFortran90 = 0x0008,
98 a84cbb2a 2004-04-19 devnull LangPascal83 = 0x0009,
99 a84cbb2a 2004-04-19 devnull LangModula2 = 0x000A,
100 a84cbb2a 2004-04-19 devnull LangJava = 0x000B,
101 a84cbb2a 2004-04-19 devnull LangC99 = 0x000C,
102 a84cbb2a 2004-04-19 devnull LangAda95 = 0x000D,
103 a84cbb2a 2004-04-19 devnull LangFortran95 = 0x000E,
104 a84cbb2a 2004-04-19 devnull LangPLI = 0x000F,
105 cbeb0b26 2006-04-01 devnull /* 0x8000-0xFFFF reserved */
106 a84cbb2a 2004-04-19 devnull
107 a84cbb2a 2004-04-19 devnull IdCaseSensitive = 0x00,
108 a84cbb2a 2004-04-19 devnull IdCaseUpper = 0x01,
109 a84cbb2a 2004-04-19 devnull IdCaseLower = 0x02,
110 a84cbb2a 2004-04-19 devnull IdCaseInsensitive = 0x03,
111 a84cbb2a 2004-04-19 devnull
112 a84cbb2a 2004-04-19 devnull CallingNormal = 0x01,
113 a84cbb2a 2004-04-19 devnull CallingProgram = 0x02,
114 a84cbb2a 2004-04-19 devnull CallingNocall = 0x03,
115 cbeb0b26 2006-04-01 devnull /* 0x40-0xFF reserved */
116 a84cbb2a 2004-04-19 devnull
117 a84cbb2a 2004-04-19 devnull InNone = 0x00,
118 a84cbb2a 2004-04-19 devnull InInlined = 0x01,
119 a84cbb2a 2004-04-19 devnull InDeclaredNotInlined = 0x02,
120 a84cbb2a 2004-04-19 devnull InDeclaredInlined = 0x03,
121 a84cbb2a 2004-04-19 devnull
122 a84cbb2a 2004-04-19 devnull OrderRowMajor = 0x00,
123 a84cbb2a 2004-04-19 devnull OrderColumnMajor = 0x01,
124 a84cbb2a 2004-04-19 devnull
125 a84cbb2a 2004-04-19 devnull DiscLabel = 0x00,
126 a84cbb2a 2004-04-19 devnull DiscRange = 0x01,
127 a84cbb2a 2004-04-19 devnull
128 a84cbb2a 2004-04-19 devnull TReference = 1<<0,
129 a84cbb2a 2004-04-19 devnull TBlock = 1<<1,
130 a84cbb2a 2004-04-19 devnull TConstant = 1<<2,
131 a84cbb2a 2004-04-19 devnull TString = 1<<3,
132 a84cbb2a 2004-04-19 devnull TFlag = 1<<4,
133 a84cbb2a 2004-04-19 devnull TAddress = 1<<5,
134 a84cbb2a 2004-04-19 devnull
135 cbeb0b26 2006-04-01 devnull OpAddr = 0x03, /* 1 op, const addr */
136 a84cbb2a 2004-04-19 devnull OpDeref = 0x06,
137 cbeb0b26 2006-04-01 devnull OpConst1u = 0x08, /* 1 op, 1 byte const */
138 cbeb0b26 2006-04-01 devnull OpConst1s = 0x09, /* " signed */
139 cbeb0b26 2006-04-01 devnull OpConst2u = 0x0A, /* 1 op, 2 byte const */
140 cbeb0b26 2006-04-01 devnull OpConst2s = 0x0B, /* " signed */
141 cbeb0b26 2006-04-01 devnull OpConst4u = 0x0C, /* 1 op, 4 byte const */
142 cbeb0b26 2006-04-01 devnull OpConst4s = 0x0D, /* " signed */
143 cbeb0b26 2006-04-01 devnull OpConst8u = 0x0E, /* 1 op, 8 byte const */
144 cbeb0b26 2006-04-01 devnull OpConst8s = 0x0F, /* " signed */
145 cbeb0b26 2006-04-01 devnull OpConstu = 0x10, /* 1 op, LEB128 const */
146 cbeb0b26 2006-04-01 devnull OpConsts = 0x11, /* " signed */
147 a84cbb2a 2004-04-19 devnull OpDup = 0x12,
148 a84cbb2a 2004-04-19 devnull OpDrop = 0x13,
149 a84cbb2a 2004-04-19 devnull OpOver = 0x14,
150 cbeb0b26 2006-04-01 devnull OpPick = 0x15, /* 1 op, 1 byte stack index */
151 a84cbb2a 2004-04-19 devnull OpSwap = 0x16,
152 a84cbb2a 2004-04-19 devnull OpRot = 0x17,
153 a84cbb2a 2004-04-19 devnull OpXderef = 0x18,
154 a84cbb2a 2004-04-19 devnull OpAbs = 0x19,
155 a84cbb2a 2004-04-19 devnull OpAnd = 0x1A,
156 a84cbb2a 2004-04-19 devnull OpDiv = 0x1B,
157 a84cbb2a 2004-04-19 devnull OpMinus = 0x1C,
158 a84cbb2a 2004-04-19 devnull OpMod = 0x1D,
159 a84cbb2a 2004-04-19 devnull OpMul = 0x1E,
160 a84cbb2a 2004-04-19 devnull OpNeg = 0x1F,
161 a84cbb2a 2004-04-19 devnull OpNot = 0x20,
162 a84cbb2a 2004-04-19 devnull OpOr = 0x21,
163 a84cbb2a 2004-04-19 devnull OpPlus = 0x22,
164 cbeb0b26 2006-04-01 devnull OpPlusUconst = 0x23, /* 1 op, ULEB128 addend */
165 a84cbb2a 2004-04-19 devnull OpShl = 0x24,
166 a84cbb2a 2004-04-19 devnull OpShr = 0x25,
167 a84cbb2a 2004-04-19 devnull OpShra = 0x26,
168 a84cbb2a 2004-04-19 devnull OpXor = 0x27,
169 cbeb0b26 2006-04-01 devnull OpSkip = 0x2F, /* 1 op, signed 2-byte constant */
170 cbeb0b26 2006-04-01 devnull OpBra = 0x28, /* 1 op, signed 2-byte constant */
171 a84cbb2a 2004-04-19 devnull OpEq = 0x29,
172 a84cbb2a 2004-04-19 devnull OpGe = 0x2A,
173 a84cbb2a 2004-04-19 devnull OpGt = 0x2B,
174 a84cbb2a 2004-04-19 devnull OpLe = 0x2C,
175 a84cbb2a 2004-04-19 devnull OpLt = 0x2D,
176 a84cbb2a 2004-04-19 devnull OpNe = 0x2E,
177 a84cbb2a 2004-04-19 devnull OpLit0 = 0x30,
178 cbeb0b26 2006-04-01 devnull /* OpLitN = OpLit0 + N for N = 0..31 */
179 a84cbb2a 2004-04-19 devnull OpReg0 = 0x50,
180 cbeb0b26 2006-04-01 devnull /* OpRegN = OpReg0 + N for N = 0..31 */
181 cbeb0b26 2006-04-01 devnull OpBreg0 = 0x70, /* 1 op, signed LEB128 constant */
182 cbeb0b26 2006-04-01 devnull /* OpBregN = OpBreg0 + N for N = 0..31 */
183 cbeb0b26 2006-04-01 devnull OpRegx = 0x90, /* 1 op, ULEB128 register */
184 cbeb0b26 2006-04-01 devnull OpFbreg = 0x91, /* 1 op, SLEB128 offset */
185 cbeb0b26 2006-04-01 devnull OpBregx = 0x92, /* 2 op, ULEB128 reg, SLEB128 off */
186 cbeb0b26 2006-04-01 devnull OpPiece = 0x93, /* 1 op, ULEB128 size of piece */
187 cbeb0b26 2006-04-01 devnull OpDerefSize = 0x94, /* 1-byte size of data retrieved */
188 cbeb0b26 2006-04-01 devnull OpXderefSize = 0x95, /* 1-byte size of data retrieved */
189 cbeb0b26 2006-04-01 devnull OpNop = 0x96,
190 cbeb0b26 2006-04-01 devnull /* next four new in Dwarf v3 */
191 a84cbb2a 2004-04-19 devnull OpPushObjAddr = 0x97,
192 cbeb0b26 2006-04-01 devnull OpCall2 = 0x98, /* 2-byte offset of DIE */
193 cbeb0b26 2006-04-01 devnull OpCall4 = 0x99, /* 4-byte offset of DIE */
194 cbeb0b26 2006-04-01 devnull OpCallRef = 0x9A /* 4- or 8- byte offset of DIE */
195 cbeb0b26 2006-04-01 devnull /* 0xE0-0xFF reserved for user-specific */
196 a84cbb2a 2004-04-19 devnull };
197 a84cbb2a 2004-04-19 devnull
198 a84cbb2a 2004-04-19 devnull struct DwarfBlock
199 a84cbb2a 2004-04-19 devnull {
200 a84cbb2a 2004-04-19 devnull uchar *data;
201 a84cbb2a 2004-04-19 devnull ulong len;
202 a84cbb2a 2004-04-19 devnull };
203 a84cbb2a 2004-04-19 devnull
204 a84cbb2a 2004-04-19 devnull /* not for consumer use */
205 a84cbb2a 2004-04-19 devnull struct DwarfBuf
206 a84cbb2a 2004-04-19 devnull {
207 a84cbb2a 2004-04-19 devnull Dwarf *d;
208 a84cbb2a 2004-04-19 devnull uchar *p;
209 a84cbb2a 2004-04-19 devnull uchar *ep;
210 a84cbb2a 2004-04-19 devnull uint addrsize;
211 a84cbb2a 2004-04-19 devnull };
212 a84cbb2a 2004-04-19 devnull
213 a84cbb2a 2004-04-19 devnull union DwarfVal
214 a84cbb2a 2004-04-19 devnull {
215 a84cbb2a 2004-04-19 devnull char *s;
216 a84cbb2a 2004-04-19 devnull ulong c;
217 a84cbb2a 2004-04-19 devnull ulong r;
218 a84cbb2a 2004-04-19 devnull DwarfBlock b;
219 a84cbb2a 2004-04-19 devnull };
220 a84cbb2a 2004-04-19 devnull
221 a84cbb2a 2004-04-19 devnull struct DwarfAttrs
222 a84cbb2a 2004-04-19 devnull {
223 a84cbb2a 2004-04-19 devnull ulong tag;
224 a84cbb2a 2004-04-19 devnull uchar haskids;
225 a84cbb2a 2004-04-19 devnull
226 a84cbb2a 2004-04-19 devnull /* whether we have it, along with type */
227 a84cbb2a 2004-04-19 devnull struct {
228 a84cbb2a 2004-04-19 devnull uchar abstractorigin;
229 a84cbb2a 2004-04-19 devnull uchar accessibility;
230 a84cbb2a 2004-04-19 devnull uchar addrclass;
231 a84cbb2a 2004-04-19 devnull uchar basetypes;
232 a84cbb2a 2004-04-19 devnull uchar bitoffset;
233 a84cbb2a 2004-04-19 devnull uchar bitsize;
234 a84cbb2a 2004-04-19 devnull uchar bytesize;
235 a84cbb2a 2004-04-19 devnull uchar calling;
236 a84cbb2a 2004-04-19 devnull uchar commonref;
237 a84cbb2a 2004-04-19 devnull uchar compdir;
238 a84cbb2a 2004-04-19 devnull uchar constvalue;
239 a84cbb2a 2004-04-19 devnull uchar containingtype;
240 a84cbb2a 2004-04-19 devnull uchar count;
241 a84cbb2a 2004-04-19 devnull uchar datamemberloc;
242 a84cbb2a 2004-04-19 devnull uchar declcolumn;
243 a84cbb2a 2004-04-19 devnull uchar declfile;
244 a84cbb2a 2004-04-19 devnull uchar declline;
245 a84cbb2a 2004-04-19 devnull uchar defaultvalue;
246 a84cbb2a 2004-04-19 devnull uchar discr;
247 a84cbb2a 2004-04-19 devnull uchar discrlist;
248 a84cbb2a 2004-04-19 devnull uchar discrvalue;
249 a84cbb2a 2004-04-19 devnull uchar encoding;
250 a84cbb2a 2004-04-19 devnull uchar framebase;
251 a84cbb2a 2004-04-19 devnull uchar friend;
252 a84cbb2a 2004-04-19 devnull uchar highpc;
253 a84cbb2a 2004-04-19 devnull uchar identifiercase;
254 a84cbb2a 2004-04-19 devnull uchar import;
255 a84cbb2a 2004-04-19 devnull uchar inlined;
256 a84cbb2a 2004-04-19 devnull uchar isartificial;
257 a84cbb2a 2004-04-19 devnull uchar isdeclaration;
258 a84cbb2a 2004-04-19 devnull uchar isexternal;
259 a84cbb2a 2004-04-19 devnull uchar isoptional;
260 a84cbb2a 2004-04-19 devnull uchar isprototyped;
261 a84cbb2a 2004-04-19 devnull uchar isvarparam;
262 a84cbb2a 2004-04-19 devnull uchar language;
263 a84cbb2a 2004-04-19 devnull uchar location;
264 a84cbb2a 2004-04-19 devnull uchar lowerbound;
265 a84cbb2a 2004-04-19 devnull uchar lowpc;
266 a84cbb2a 2004-04-19 devnull uchar macroinfo;
267 a84cbb2a 2004-04-19 devnull uchar name;
268 a84cbb2a 2004-04-19 devnull uchar namelistitem;
269 a84cbb2a 2004-04-19 devnull uchar ordering;
270 a84cbb2a 2004-04-19 devnull uchar priority;
271 a84cbb2a 2004-04-19 devnull uchar producer;
272 a84cbb2a 2004-04-19 devnull uchar ranges;
273 a84cbb2a 2004-04-19 devnull uchar returnaddr;
274 a84cbb2a 2004-04-19 devnull uchar segment;
275 a84cbb2a 2004-04-19 devnull uchar sibling;
276 a84cbb2a 2004-04-19 devnull uchar specification;
277 a84cbb2a 2004-04-19 devnull uchar startscope;
278 a84cbb2a 2004-04-19 devnull uchar staticlink;
279 a84cbb2a 2004-04-19 devnull uchar stmtlist;
280 a84cbb2a 2004-04-19 devnull uchar stridesize;
281 a84cbb2a 2004-04-19 devnull uchar stringlength;
282 a84cbb2a 2004-04-19 devnull uchar type;
283 a84cbb2a 2004-04-19 devnull uchar upperbound;
284 a84cbb2a 2004-04-19 devnull uchar uselocation;
285 a84cbb2a 2004-04-19 devnull uchar virtuality;
286 a84cbb2a 2004-04-19 devnull uchar visibility;
287 a84cbb2a 2004-04-19 devnull uchar vtableelemloc;
288 a84cbb2a 2004-04-19 devnull } have;
289 a84cbb2a 2004-04-19 devnull
290 a84cbb2a 2004-04-19 devnull ulong abstractorigin;
291 a84cbb2a 2004-04-19 devnull ulong accessibility;
292 a84cbb2a 2004-04-19 devnull ulong addrclass;
293 a84cbb2a 2004-04-19 devnull ulong basetypes;
294 a84cbb2a 2004-04-19 devnull ulong bitoffset;
295 a84cbb2a 2004-04-19 devnull ulong bitsize;
296 a84cbb2a 2004-04-19 devnull ulong bytesize;
297 a84cbb2a 2004-04-19 devnull ulong calling;
298 a84cbb2a 2004-04-19 devnull ulong commonref;
299 a84cbb2a 2004-04-19 devnull char* compdir;
300 a84cbb2a 2004-04-19 devnull DwarfVal constvalue;
301 a84cbb2a 2004-04-19 devnull ulong containingtype;
302 a84cbb2a 2004-04-19 devnull ulong count;
303 a84cbb2a 2004-04-19 devnull DwarfVal datamemberloc;
304 a84cbb2a 2004-04-19 devnull ulong declcolumn;
305 a84cbb2a 2004-04-19 devnull ulong declfile;
306 a84cbb2a 2004-04-19 devnull ulong declline;
307 a84cbb2a 2004-04-19 devnull ulong defaultvalue;
308 a84cbb2a 2004-04-19 devnull ulong discr;
309 a84cbb2a 2004-04-19 devnull DwarfBlock discrlist;
310 a84cbb2a 2004-04-19 devnull ulong discrvalue;
311 a84cbb2a 2004-04-19 devnull ulong encoding;
312 a84cbb2a 2004-04-19 devnull DwarfVal framebase;
313 a84cbb2a 2004-04-19 devnull ulong friend;
314 a84cbb2a 2004-04-19 devnull ulong highpc;
315 a84cbb2a 2004-04-19 devnull ulong identifiercase;
316 a84cbb2a 2004-04-19 devnull ulong import;
317 a84cbb2a 2004-04-19 devnull ulong inlined;
318 a84cbb2a 2004-04-19 devnull uchar isartificial;
319 a84cbb2a 2004-04-19 devnull uchar isdeclaration;
320 a84cbb2a 2004-04-19 devnull uchar isexternal;
321 a84cbb2a 2004-04-19 devnull uchar isoptional;
322 a84cbb2a 2004-04-19 devnull uchar isprototyped;
323 a84cbb2a 2004-04-19 devnull uchar isvarparam;
324 a84cbb2a 2004-04-19 devnull ulong language;
325 a84cbb2a 2004-04-19 devnull DwarfVal location;
326 a84cbb2a 2004-04-19 devnull ulong lowerbound;
327 a84cbb2a 2004-04-19 devnull ulong lowpc;
328 a84cbb2a 2004-04-19 devnull ulong macroinfo;
329 a84cbb2a 2004-04-19 devnull char* name;
330 a84cbb2a 2004-04-19 devnull DwarfBlock namelistitem;
331 a84cbb2a 2004-04-19 devnull ulong ordering;
332 a84cbb2a 2004-04-19 devnull ulong priority;
333 a84cbb2a 2004-04-19 devnull char* producer;
334 a84cbb2a 2004-04-19 devnull ulong ranges;
335 a84cbb2a 2004-04-19 devnull DwarfVal returnaddr;
336 a84cbb2a 2004-04-19 devnull DwarfVal segment;
337 a84cbb2a 2004-04-19 devnull ulong sibling;
338 a84cbb2a 2004-04-19 devnull ulong specification;
339 a84cbb2a 2004-04-19 devnull ulong startscope;
340 a84cbb2a 2004-04-19 devnull DwarfVal staticlink;
341 a84cbb2a 2004-04-19 devnull ulong stmtlist;
342 a84cbb2a 2004-04-19 devnull ulong stridesize;
343 a84cbb2a 2004-04-19 devnull DwarfVal stringlength;
344 a84cbb2a 2004-04-19 devnull ulong type;
345 a84cbb2a 2004-04-19 devnull ulong upperbound;
346 a84cbb2a 2004-04-19 devnull DwarfVal uselocation;
347 a84cbb2a 2004-04-19 devnull ulong virtuality;
348 a84cbb2a 2004-04-19 devnull ulong visibility;
349 a84cbb2a 2004-04-19 devnull DwarfVal vtableelemloc;
350 a84cbb2a 2004-04-19 devnull };
351 a84cbb2a 2004-04-19 devnull
352 a84cbb2a 2004-04-19 devnull enum
353 a84cbb2a 2004-04-19 devnull {
354 a84cbb2a 2004-04-19 devnull RuleUndef,
355 a84cbb2a 2004-04-19 devnull RuleSame,
356 a84cbb2a 2004-04-19 devnull RuleCfaOffset,
357 a84cbb2a 2004-04-19 devnull RuleRegister,
358 a84cbb2a 2004-04-19 devnull RuleRegOff,
359 cbeb0b26 2006-04-01 devnull RuleLocation
360 a84cbb2a 2004-04-19 devnull };
361 a84cbb2a 2004-04-19 devnull struct DwarfExpr
362 a84cbb2a 2004-04-19 devnull {
363 a84cbb2a 2004-04-19 devnull int type;
364 a84cbb2a 2004-04-19 devnull long offset;
365 a84cbb2a 2004-04-19 devnull ulong reg;
366 a84cbb2a 2004-04-19 devnull DwarfBlock loc;
367 a84cbb2a 2004-04-19 devnull };
368 a84cbb2a 2004-04-19 devnull
369 a84cbb2a 2004-04-19 devnull struct DwarfSym
370 a84cbb2a 2004-04-19 devnull {
371 a84cbb2a 2004-04-19 devnull DwarfAttrs attrs;
372 a84cbb2a 2004-04-19 devnull
373 a84cbb2a 2004-04-19 devnull /* not for consumer use... */
374 a84cbb2a 2004-04-19 devnull DwarfBuf b;
375 a84cbb2a 2004-04-19 devnull ulong unit;
376 a84cbb2a 2004-04-19 devnull uint uoff;
377 a84cbb2a 2004-04-19 devnull ulong aoff;
378 a84cbb2a 2004-04-19 devnull int depth;
379 a84cbb2a 2004-04-19 devnull int allunits;
380 a84cbb2a 2004-04-19 devnull ulong nextunit;
381 a84cbb2a 2004-04-19 devnull };
382 a84cbb2a 2004-04-19 devnull
383 a84cbb2a 2004-04-19 devnull
384 a84cbb2a 2004-04-19 devnull Dwarf *dwarfopen(Elf *elf);
385 a84cbb2a 2004-04-19 devnull void dwarfclose(Dwarf*);
386 a84cbb2a 2004-04-19 devnull int dwarfaddrtounit(Dwarf*, ulong, ulong*);
387 a84cbb2a 2004-04-19 devnull int dwarflookupfn(Dwarf*, ulong, ulong, DwarfSym*);
388 a84cbb2a 2004-04-19 devnull int dwarflookupname(Dwarf*, char*, DwarfSym*);
389 a84cbb2a 2004-04-19 devnull int dwarflookupnameinunit(Dwarf*, ulong, char*, DwarfSym*);
390 a84cbb2a 2004-04-19 devnull int dwarflookupsubname(Dwarf*, DwarfSym*, char*, DwarfSym*);
391 a84cbb2a 2004-04-19 devnull int dwarflookuptag(Dwarf*, ulong, ulong, DwarfSym*);
392 a84cbb2a 2004-04-19 devnull int dwarfenumunit(Dwarf*, ulong, DwarfSym*);
393 a84cbb2a 2004-04-19 devnull int dwarfseeksym(Dwarf*, ulong, ulong, DwarfSym*);
394 a84cbb2a 2004-04-19 devnull int dwarfenum(Dwarf*, DwarfSym*);
395 95f57b01 2004-04-21 devnull int dwarfnextsym(Dwarf*, DwarfSym*);
396 95f57b01 2004-04-21 devnull int dwarfnextsymat(Dwarf*, DwarfSym*, int);
397 a84cbb2a 2004-04-19 devnull int dwarfpctoline(Dwarf*, ulong, char**, char**, char**, ulong*, ulong*, ulong*);
398 a84cbb2a 2004-04-19 devnull int dwarfunwind(Dwarf*, ulong, DwarfExpr*, DwarfExpr*, DwarfExpr*, int);
399 a84cbb2a 2004-04-19 devnull ulong dwarfget1(DwarfBuf*);
400 a84cbb2a 2004-04-19 devnull ulong dwarfget2(DwarfBuf*);
401 a84cbb2a 2004-04-19 devnull ulong dwarfget4(DwarfBuf*);
402 a84cbb2a 2004-04-19 devnull uvlong dwarfget8(DwarfBuf*);
403 a84cbb2a 2004-04-19 devnull ulong dwarfget128(DwarfBuf*);
404 a84cbb2a 2004-04-19 devnull long dwarfget128s(DwarfBuf*);
405 a84cbb2a 2004-04-19 devnull ulong dwarfgetaddr(DwarfBuf*);
406 a84cbb2a 2004-04-19 devnull int dwarfgetn(DwarfBuf*, uchar*, int);
407 a84cbb2a 2004-04-19 devnull uchar *dwarfgetnref(DwarfBuf*, ulong);
408 a84cbb2a 2004-04-19 devnull char *dwarfgetstring(DwarfBuf*);
409 a84cbb2a 2004-04-19 devnull
410 a84cbb2a 2004-04-19 devnull
411 a84cbb2a 2004-04-19 devnull typedef struct DwarfAbbrev DwarfAbbrev;
412 a84cbb2a 2004-04-19 devnull typedef struct DwarfAttr DwarfAttr;
413 a84cbb2a 2004-04-19 devnull
414 a84cbb2a 2004-04-19 devnull struct DwarfAttr
415 a84cbb2a 2004-04-19 devnull {
416 a84cbb2a 2004-04-19 devnull ulong name;
417 a84cbb2a 2004-04-19 devnull ulong form;
418 a84cbb2a 2004-04-19 devnull };
419 a84cbb2a 2004-04-19 devnull
420 a84cbb2a 2004-04-19 devnull struct DwarfAbbrev
421 a84cbb2a 2004-04-19 devnull {
422 a84cbb2a 2004-04-19 devnull ulong num;
423 a84cbb2a 2004-04-19 devnull ulong tag;
424 a84cbb2a 2004-04-19 devnull uchar haskids;
425 a84cbb2a 2004-04-19 devnull DwarfAttr *attr;
426 a84cbb2a 2004-04-19 devnull int nattr;
427 a84cbb2a 2004-04-19 devnull };
428 a84cbb2a 2004-04-19 devnull
429 a84cbb2a 2004-04-19 devnull struct Dwarf
430 a84cbb2a 2004-04-19 devnull {
431 a84cbb2a 2004-04-19 devnull Elf *elf;
432 a84cbb2a 2004-04-19 devnull int fd;
433 a84cbb2a 2004-04-19 devnull char **reg;
434 a84cbb2a 2004-04-19 devnull int nreg;
435 a84cbb2a 2004-04-19 devnull int addrsize;
436 a84cbb2a 2004-04-19 devnull DwarfBlock abbrev;
437 a84cbb2a 2004-04-19 devnull DwarfBlock aranges;
438 a84cbb2a 2004-04-19 devnull DwarfBlock frame;
439 a84cbb2a 2004-04-19 devnull DwarfBlock info;
440 a84cbb2a 2004-04-19 devnull DwarfBlock line;
441 a84cbb2a 2004-04-19 devnull DwarfBlock pubnames;
442 a84cbb2a 2004-04-19 devnull DwarfBlock pubtypes;
443 a84cbb2a 2004-04-19 devnull DwarfBlock ranges;
444 a84cbb2a 2004-04-19 devnull DwarfBlock str;
445 a84cbb2a 2004-04-19 devnull
446 a84cbb2a 2004-04-19 devnull /* little cache */
447 a84cbb2a 2004-04-19 devnull struct {
448 a84cbb2a 2004-04-19 devnull DwarfAbbrev *a;
449 a84cbb2a 2004-04-19 devnull int na;
450 a84cbb2a 2004-04-19 devnull ulong off;
451 a84cbb2a 2004-04-19 devnull } acache;
452 a84cbb2a 2004-04-19 devnull };
453 a84cbb2a 2004-04-19 devnull
454 a84cbb2a 2004-04-19 devnull DwarfAbbrev *dwarfgetabbrev(Dwarf*, ulong, ulong);
455 a84cbb2a 2004-04-19 devnull
456 a84cbb2a 2004-04-19 devnull int dwarfgetinfounit(Dwarf*, ulong, DwarfBlock*);
457 a84cbb2a 2004-04-19 devnull
458 a84cbb2a 2004-04-19 devnull extern int dwarf386nregs;
459 a84cbb2a 2004-04-19 devnull extern char *dwarf386regs[];
460 a84cbb2a 2004-04-19 devnull extern char *dwarf386fp;