Print this page
5688 ELF tools need to be more careful with dwarf data
*** 245,262 ****
typedef enum _LANG {
LANG_UNK = 0,
LANG_ANSI_C_V1 = 1
} LANG;
/*
* Little Endian Base 128 (leb128) encoding/decoding routines
*/
! extern uint64_t uleb_extract(unsigned char *, uint64_t *);
! extern int64_t sleb_extract(unsigned char *, uint64_t *);
! extern uint64_t dwarf_ehe_extract(unsigned char *, uint64_t *,
! uint_t, unsigned char *, boolean_t, uint64_t,
! uint64_t, uint64_t);
#ifdef __cplusplus
}
#endif
--- 245,270 ----
typedef enum _LANG {
LANG_UNK = 0,
LANG_ANSI_C_V1 = 1
} LANG;
+ typedef enum {
+ DW_SUCCESS = 0,
+ DW_BAD_ENCODING,
+ DW_OVERFLOW,
+ } dwarf_error_t;
+
/*
* Little Endian Base 128 (leb128) encoding/decoding routines
*/
! extern dwarf_error_t uleb_extract(unsigned char *, uint64_t *, size_t,
! uint64_t *);
! extern dwarf_error_t sleb_extract(unsigned char *, uint64_t *, size_t,
! int64_t *);
! extern dwarf_error_t dwarf_ehe_extract(unsigned char *, size_t, uint64_t *,
! uint64_t *, uint_t, unsigned char *, boolean_t,
! uint64_t, uint64_t, uint64_t);
#ifdef __cplusplus
}
#endif