/* SPDX-License-Identifier: LGPL-2.0-or-later */
/*
 * Relevant definitions from uapi/linux/elf.h and asm/elf.h
 */

#ifndef _ELF_H_
#define _ELF_H_

#include <libcflat.h>

/* 32-bit ELF base types. */
typedef u32	Elf32_Addr;
typedef u32	Elf32_Xword;
typedef s32	Elf32_Sxword;

/* 64-bit ELF base types. */
typedef u64	Elf64_Addr;
typedef u64	Elf64_Xword;
typedef s64	Elf64_Sxword;

typedef struct {
	Elf64_Sxword d_tag;             /* entry tag value */
	union {
		Elf64_Xword d_val;
		Elf64_Addr d_ptr;
	} d_un;
} Elf64_Dyn;

typedef struct elf64_rel {
	Elf64_Addr r_offset;    /* Location at which to apply the action */
	Elf64_Xword r_info;     /* index and type of relocation */
} Elf64_Rel;

typedef struct elf32_rela {
	Elf32_Addr r_offset;    /* Location at which to apply the action */
	Elf32_Xword r_info;     /* index and type of relocation */
	Elf32_Sxword r_addend;  /* Constant addend used to compute value */
} Elf32_Rela;

typedef struct elf64_rela {
	Elf64_Addr r_offset;    /* Location at which to apply the action */
	Elf64_Xword r_info;     /* index and type of relocation */
	Elf64_Sxword r_addend;  /* Constant addend used to compute value */
} Elf64_Rela;

/* This is the info that is needed to parse the dynamic section of the file */
#define DT_NULL		0
#define DT_RELA		7
#define DT_RELASZ	8
#define DT_RELAENT	9

/* x86 relocation types. */
#define R_X86_64_NONE		0       /* No reloc */
#define R_X86_64_RELATIVE	8       /* Adjust by program base */


/*
 * AArch64 static relocation types.
 */

/* Miscellaneous. */
#define R_AARCH64_NONE		256
#define R_AARCH64_RELATIVE	1027

/* The following are used with relocations */
#define ELF64_R_TYPE(i)		((i) & 0xffffffff)

/*
 * riscv static relocation types.
 */
#define R_RISCV_RELATIVE	3

#endif /* _ELF_H_ */
