162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci#include "relocs.h" 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#define ELF_BITS 64 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#define ELF_MACHINE EM_MIPS 762306a36Sopenharmony_ci#define ELF_MACHINE_NAME "MIPS64" 862306a36Sopenharmony_ci#define SHT_REL_TYPE SHT_RELA 962306a36Sopenharmony_ci#define Elf_Rel Elf64_Rela 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_citypedef uint8_t Elf64_Byte; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_citypedef union { 1462306a36Sopenharmony_ci struct { 1562306a36Sopenharmony_ci Elf64_Word r_sym; /* Symbol index. */ 1662306a36Sopenharmony_ci Elf64_Byte r_ssym; /* Special symbol. */ 1762306a36Sopenharmony_ci Elf64_Byte r_type3; /* Third relocation. */ 1862306a36Sopenharmony_ci Elf64_Byte r_type2; /* Second relocation. */ 1962306a36Sopenharmony_ci Elf64_Byte r_type; /* First relocation. */ 2062306a36Sopenharmony_ci } fields; 2162306a36Sopenharmony_ci Elf64_Xword unused; 2262306a36Sopenharmony_ci} Elf64_Mips_Rela; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#define ELF_CLASS ELFCLASS64 2562306a36Sopenharmony_ci#define ELF_R_SYM(val) (((Elf64_Mips_Rela *)(&val))->fields.r_sym) 2662306a36Sopenharmony_ci#define ELF_R_TYPE(val) (((Elf64_Mips_Rela *)(&val))->fields.r_type) 2762306a36Sopenharmony_ci#define ELF_ST_TYPE(o) ELF64_ST_TYPE(o) 2862306a36Sopenharmony_ci#define ELF_ST_BIND(o) ELF64_ST_BIND(o) 2962306a36Sopenharmony_ci#define ELF_ST_VISIBILITY(o) ELF64_ST_VISIBILITY(o) 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#include "relocs.c" 32