215 #define DW_EH_PE_udata8 0x04 /* An 8 bytes unsigned value. */
216 #define DW_EH_PE_signed 0x08 /* bit on for all signed encodings */
217 #define DW_EH_PE_sleb128 0x09 /* Signed value is encoded using */
218 /* the Little Endian */
219 /* Base 128 (LEB128) */
220 #define DW_EH_PE_sdata2 0x0a /* A 2 bytes signed value. */
221 #define DW_EH_PE_sdata4 0x0b /* A 4 bytes signed value. */
222 #define DW_EH_PE_sdata8 0x0c /* An 8 bytes signed value. */
223
224 /*
225 * Dwarf Exception Header application
226 */
227 #define DW_EH_PE_absptr 0x00 /* Value is used with no */
228 /* modification. */
229 #define DW_EH_PE_pcrel 0x10 /* Value is reletive to the location */
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 #define DW_EH_PE_funcrel 0x40
236 #define DW_EH_PE_aligned 0x50 /* value is an aligned void* */
237 #define DW_EH_PE_indirect 0x80 /* bit to signal indirection after */
238 /* relocation */
239
240
241 /* language/compiler enumeration */
242
243 typedef enum _LANG {
244 LANG_UNK = 0,
245 LANG_ANSI_C_V1 = 1
246 } LANG;
247
248 /*
249 * Little Endian Base 128 (leb128) encoding/decoding routines
250 */
251 extern uint64_t uleb_extract(unsigned char *, uint64_t *);
252 extern int64_t sleb_extract(unsigned char *, uint64_t *);
253 extern uint64_t dwarf_ehe_extract(unsigned char *, uint64_t *,
254 uint_t, unsigned char *, uint64_t, uint64_t);
255
256 #ifdef __cplusplus
257 }
258 #endif
259
260
261 #endif /* _DWARF_H */
|
215 #define DW_EH_PE_udata8 0x04 /* An 8 bytes unsigned value. */
216 #define DW_EH_PE_signed 0x08 /* bit on for all signed encodings */
217 #define DW_EH_PE_sleb128 0x09 /* Signed value is encoded using */
218 /* the Little Endian */
219 /* Base 128 (LEB128) */
220 #define DW_EH_PE_sdata2 0x0a /* A 2 bytes signed value. */
221 #define DW_EH_PE_sdata4 0x0b /* A 4 bytes signed value. */
222 #define DW_EH_PE_sdata8 0x0c /* An 8 bytes signed value. */
223
224 /*
225 * Dwarf Exception Header application
226 */
227 #define DW_EH_PE_absptr 0x00 /* Value is used with no */
228 /* modification. */
229 #define DW_EH_PE_pcrel 0x10 /* Value is reletive to the location */
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 */
|