diff options
| author | Mark Wielaard <[email protected]> | 2019-01-11 13:39:27 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2019-01-11 13:39:27 +0100 |
| commit | b244a241a82c28f7fef33f37d82bc47631ceca4e (patch) | |
| tree | 8b83c72f0a99dca6624f0903e8c3ee1eb26ad900 /libelf/libelfP.h | |
| parent | 029c76f0d4b06584e370b5fc0112712ba99a6219 (diff) | |
| parent | 4ea9a2db164caadf836a65d5cdffb09a2d5a37ce (diff) | |
Merge tag 'elfutils-0.175' into mjw/RH-DTSdts-0.175
elfutils 0.175 release
Diffstat (limited to 'libelf/libelfP.h')
| -rw-r--r-- | libelf/libelfP.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/libelf/libelfP.h b/libelf/libelfP.h index ed216c8c..9f3e8e9d 100644 --- a/libelf/libelfP.h +++ b/libelf/libelfP.h @@ -452,7 +452,8 @@ extern const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_ /* Given an Elf handle and a section type returns the Elf_Data d_type. Should not be called when SHF_COMPRESSED is set, the d_type should be ELF_T_BYTE. */ -extern Elf_Type __libelf_data_type (Elf *elf, int sh_type) internal_function; +extern Elf_Type __libelf_data_type (Elf *elf, int sh_type, GElf_Xword align) + internal_function; /* The libelf API does not have such a function but it is still useful. Get the memory size for the given type. @@ -460,9 +461,9 @@ extern Elf_Type __libelf_data_type (Elf *elf, int sh_type) internal_function; These functions cannot be marked internal since they are aliases of the export elfXX_fsize functions.*/ extern size_t __elf32_msize (Elf_Type __type, size_t __count, - unsigned int __version); + unsigned int __version) __const_attribute__; extern size_t __elf64_msize (Elf_Type __type, size_t __count, - unsigned int __version); + unsigned int __version) __const_attribute__; /* Create Elf descriptor from memory image. */ @@ -624,8 +625,13 @@ extern void __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, } \ } while (0) -/* Align offset to 4 bytes as needed for note name and descriptor data. */ -#define NOTE_ALIGN(n) (((n) + 3) & -4U) +/* Align offset to 4 bytes as needed for note name and descriptor data. + This is almost always used, except for GNU Property notes, which use + 8 byte padding... */ +#define NOTE_ALIGN4(n) (((n) + 3) & -4U) + +/* Special note padding rule for GNU Property notes. */ +#define NOTE_ALIGN8(n) (((n) + 7) & -8U) /* Convenience macro. */ #define INVALID_NDX(ndx, type, data) \ |
