[U-Boot] [PATCH v2 04/47] elf: Add a few definitions for 64-bit relocation
Bin Meng
bmeng.cn at gmail.com
Sun Aug 2 15:00:16 CEST 2015
On Fri, Jul 31, 2015 at 11:31 PM, Simon Glass <sjg at chromium.org> wrote:
> Provide the types necessary to relocate 64-bit images.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
>
> ---
>
> Changes in v2:
> - Follow existing file conventions for type definitions
>
> include/elf.h | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/include/elf.h b/include/elf.h
> index 63d9341..a35e085 100644
> --- a/include/elf.h
> +++ b/include/elf.h
> @@ -28,6 +28,16 @@ typedef int32_t Elf32_Sword; /* Signed large integer */
> typedef uint32_t Elf32_Word; /* Unsigned large integer */
> typedef uint16_t Elf32_Half; /* Unsigned medium integer */
>
> +/* 64-bit ELF base types. */
> +typedef uint64_t Elf64_Addr;
> +typedef uint16_t Elf64_Half;
> +typedef int16_t Elf64_SHalf;
> +typedef uint64_t Elf64_Off;
> +typedef int32_t Elf64_Sword;
> +typedef uint32_t Elf64_Word;
> +typedef uint64_t Elf64_Xword;
> +typedef int64_t Elf64_Sxword;
> +
> /* e_ident[] identification indexes */
> #define EI_MAG0 0 /* file ID */
> #define EI_MAG1 1 /* file ID */
> @@ -379,6 +389,11 @@ typedef struct
> Elf32_Sword r_addend;
> } Elf32_Rela;
>
> +typedef struct {
> + Elf64_Addr r_offset; /* Location at which to apply the action */
> + Elf64_Xword r_info; /* index and type of relocation */
> +} Elf64_Rel;
> +
> /* Extract relocation info - r_info */
> #define ELF32_R_SYM(i) ((i) >> 8)
> #define ELF32_R_TYPE(i) ((unsigned char) (i))
> @@ -431,6 +446,17 @@ typedef struct
>
> extern Elf32_Dyn _DYNAMIC[];
>
> +typedef struct {
> + Elf64_Sxword d_tag; /* entry tag value */
> + union {
> + Elf64_Xword d_val;
> + Elf64_Addr d_ptr;
> + } d_un;
> +} Elf64_Dyn;
> +
> +#define ELF64_R_SYM(i) ((i) >> 32)
> +#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
> +
> /* Dynamic Array Tags - d_tag */
> #define DT_NULL 0 /* marks end of _DYNAMIC array */
> #define DT_NEEDED 1 /* string table offset of needed lib */
> --
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
More information about the U-Boot
mailing list