230 /* of itself */
231 #define DW_EH_PE_textrel 0x20
232 #define DW_EH_PE_datarel 0x30 /* Value is reletive to the beginning */
233 /* of the eh_frame_hdr segment */
234 /* ( segment type PT_AMD64_UNWIND ) */
235 /* when within that segment, or to */
236 /* the GOT when without. */
237 #define DW_EH_PE_funcrel 0x40
238 #define DW_EH_PE_aligned 0x50 /* value is an aligned void* */
239 #define DW_EH_PE_indirect 0x80 /* bit to signal indirection after */
240 /* relocation */
241
242
243 /* language/compiler enumeration */
244
245 typedef enum _LANG {
246 LANG_UNK = 0,
247 LANG_ANSI_C_V1 = 1
248 } LANG;
249
250 /*
251 * Little Endian Base 128 (leb128) encoding/decoding routines
252 */
253 extern uint64_t uleb_extract(unsigned char *, uint64_t *);
254 extern int64_t sleb_extract(unsigned char *, uint64_t *);
255 extern uint64_t dwarf_ehe_extract(unsigned char *, uint64_t *,
256 uint_t, unsigned char *, boolean_t, uint64_t,
257 uint64_t, uint64_t);
258
259 #ifdef __cplusplus
260 }
261 #endif
262
263
264 #endif /* _DWARF_H */
|
230 /* of itself */
231 #define DW_EH_PE_textrel 0x20
232 #define DW_EH_PE_datarel 0x30 /* Value is reletive to the beginning */
233 /* of the eh_frame_hdr segment */
234 /* ( segment type PT_AMD64_UNWIND ) */
235 /* when within that segment, or to */
236 /* the GOT when without. */
237 #define DW_EH_PE_funcrel 0x40
238 #define DW_EH_PE_aligned 0x50 /* value is an aligned void* */
239 #define DW_EH_PE_indirect 0x80 /* bit to signal indirection after */
240 /* relocation */
241
242
243 /* language/compiler enumeration */
244
245 typedef enum _LANG {
246 LANG_UNK = 0,
247 LANG_ANSI_C_V1 = 1
248 } LANG;
249
250 typedef enum {
251 DW_SUCCESS = 0,
252 DW_BAD_ENCODING,
253 DW_OVERFLOW,
254 } dwarf_error_t;
255
256 /*
257 * Little Endian Base 128 (leb128) encoding/decoding routines
258 */
259 extern dwarf_error_t uleb_extract(unsigned char *, uint64_t *, size_t,
260 uint64_t *);
261 extern dwarf_error_t sleb_extract(unsigned char *, uint64_t *, size_t,
262 int64_t *);
263 extern dwarf_error_t dwarf_ehe_extract(unsigned char *, size_t, uint64_t *,
264 uint64_t *, uint_t, unsigned char *, boolean_t,
265 uint64_t, uint64_t, uint64_t);
266
267 #ifdef __cplusplus
268 }
269 #endif
270
271
272 #endif /* _DWARF_H */
|