Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
766c5803 MR |
2 | #include "relocs.h" |
3 | ||
4 | #define ELF_BITS 64 | |
5 | ||
6 | #define ELF_MACHINE EM_MIPS | |
7 | #define ELF_MACHINE_NAME "MIPS64" | |
8 | #define SHT_REL_TYPE SHT_RELA | |
9 | #define Elf_Rel Elf64_Rela | |
10 | ||
11 | typedef uint8_t Elf64_Byte; | |
12 | ||
828a5428 HH |
13 | typedef union { |
14 | struct { | |
15 | Elf64_Word r_sym; /* Symbol index. */ | |
16 | Elf64_Byte r_ssym; /* Special symbol. */ | |
17 | Elf64_Byte r_type3; /* Third relocation. */ | |
18 | Elf64_Byte r_type2; /* Second relocation. */ | |
19 | Elf64_Byte r_type; /* First relocation. */ | |
20 | } fields; | |
21 | Elf64_Xword unused; | |
766c5803 MR |
22 | } Elf64_Mips_Rela; |
23 | ||
24 | #define ELF_CLASS ELFCLASS64 | |
828a5428 HH |
25 | #define ELF_R_SYM(val) (((Elf64_Mips_Rela *)(&val))->fields.r_sym) |
26 | #define ELF_R_TYPE(val) (((Elf64_Mips_Rela *)(&val))->fields.r_type) | |
766c5803 MR |
27 | #define ELF_ST_TYPE(o) ELF64_ST_TYPE(o) |
28 | #define ELF_ST_BIND(o) ELF64_ST_BIND(o) | |
29 | #define ELF_ST_VISIBILITY(o) ELF64_ST_VISIBILITY(o) | |
30 | ||
31 | #include "relocs.c" |