diff options
Diffstat (limited to 'libelf/libelfP.h')
-rw-r--r-- | libelf/libelfP.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/libelf/libelfP.h b/libelf/libelfP.h index 6624f38a..ed061abb 100644 --- a/libelf/libelfP.h +++ b/libelf/libelfP.h @@ -1,5 +1,6 @@ /* Internal interfaces for libelf. Copyright (C) 1998-2010, 2015, 2016 Red Hat, Inc. + Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org> This file is part of elfutils. Contributed by Ulrich Drepper <drepper@redhat.com>, 1998. @@ -62,6 +63,7 @@ #define ELF32_FSZ_SWORD 4 #define ELF32_FSZ_XWORD 8 #define ELF32_FSZ_SXWORD 8 +#define ELF32_FSZ_RELR 4 /* Same for 64 bits objects. */ #define ELF64_FSZ_ADDR 8 @@ -71,6 +73,7 @@ #define ELF64_FSZ_SWORD 4 #define ELF64_FSZ_XWORD 8 #define ELF64_FSZ_SXWORD 8 +#define ELF64_FSZ_RELR 8 /* This is an extension of the ELF_F_* enumeration. The values here are @@ -262,11 +265,7 @@ typedef struct Elf_ScnList typedef struct Elf_Data_Chunk { Elf_Data_Scn data; - union - { - Elf_Scn dummy_scn; - struct Elf_Data_Chunk *next; - }; + Elf_Scn dummy_scn; int64_t offset; /* The original raw offset in the Elf image. */ } Elf_Data_Chunk; @@ -324,7 +323,7 @@ struct Elf Elf_ScnList *scns_last; /* Last element in the section list. If NULL the data has not yet been read from the file. */ - Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */ + void *rawchunks; /* Tree of elf_getdata_rawchunk results. */ unsigned int scnincr; /* Number of sections allocate the last time. */ int ehdr_flags; /* Flags (dirty) for ELF header. */ @@ -343,7 +342,7 @@ struct Elf Elf_ScnList *scns_last; /* Last element in the section list. If NULL the data has not yet been read from the file. */ - Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */ + void *rawchunks; /* Tree of elf_getdata_rawchunk results. */ unsigned int scnincr; /* Number of sections allocate the last time. */ int ehdr_flags; /* Flags (dirty) for ELF header. */ @@ -368,7 +367,7 @@ struct Elf Elf_ScnList *scns_last; /* Last element in the section list. If NULL the data has not yet been read from the file. */ - Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */ + void *rawchunks; /* Tree of elf_getdata_rawchunk results. */ unsigned int scnincr; /* Number of sections allocate the last time. */ int ehdr_flags; /* Flags (dirty) for ELF header. */ @@ -515,6 +514,8 @@ extern Elf32_Shdr *__elf32_getshdr_rdlock (Elf_Scn *__scn) internal_function; extern Elf64_Shdr *__elf64_getshdr_rdlock (Elf_Scn *__scn) internal_function; extern Elf32_Shdr *__elf32_getshdr_wrlock (Elf_Scn *__scn) internal_function; extern Elf64_Shdr *__elf64_getshdr_wrlock (Elf_Scn *__scn) internal_function; +extern Elf32_Chdr *__elf32_getchdr_wrlock (Elf_Scn *__scn) internal_function; +extern Elf64_Chdr *__elf64_getchdr_wrlock (Elf_Scn *__scn) internal_function; extern Elf_Scn *__elf_getscn_internal (Elf *__elf, size_t __index) attribute_hidden; extern Elf_Scn *__elf_nextscn_internal (Elf *__elf, Elf_Scn *__scn) @@ -524,6 +525,8 @@ extern Elf_Data *__elf_getdata_internal (Elf_Scn *__scn, Elf_Data *__data) attribute_hidden; extern Elf_Data *__elf_getdata_rdlock (Elf_Scn *__scn, Elf_Data *__data) internal_function; +extern Elf_Data *__elf_getdata_wrlock (Elf_Scn *__scn, Elf_Data *__data) + internal_function; extern Elf_Data *__elf_rawdata_internal (Elf_Scn *__scn, Elf_Data *__data) attribute_hidden; /* Should be called to setup first section data element if |