aboutsummaryrefslogtreecommitdiff
path: root/include/elf/arc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/elf/arc.h')
-rw-r--r--include/elf/arc.h32
1 files changed, 24 insertions, 8 deletions
diff --git a/include/elf/arc.h b/include/elf/arc.h
index 62398e1..707aeb4 100644
--- a/include/elf/arc.h
+++ b/include/elf/arc.h
@@ -28,25 +28,41 @@
/* Relocations. */
+#define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \
+ RELOC_NUMBER(R_##TYPE, VALUE)
+
START_RELOC_NUMBERS (elf_arc_reloc_type)
- RELOC_NUMBER (R_ARC_NONE, 0)
- RELOC_NUMBER (R_ARC_32, 1)
- RELOC_NUMBER (R_ARC_B26, 2)
- RELOC_NUMBER (R_ARC_B22_PCREL, 3)
+#include "arc-reloc.def"
END_RELOC_NUMBERS (R_ARC_max)
+#undef ARC_RELOC_HOWTO
+
/* Processor specific flags for the ELF header e_flags field. */
/* Four bit ARC machine type field. */
+#define EF_ARC_MACH_MSK 0x000000ff
+#define EF_ARC_OSABI_MSK 0x00000f00
+#define EF_ARC_ALL_MSK (EF_ARC_MACH_MSK | EF_ARC_OSABI_MSK)
+
+/* Four bit ARC machine type field. */
#define EF_ARC_MACH 0x0000000f
/* Various CPU types. */
+#define E_ARC_MACH_ARC600 0x00000002
+#define E_ARC_MACH_ARC601 0x00000004
+#define E_ARC_MACH_ARC700 0x00000003
-#define E_ARC_MACH_ARC5 0
-#define E_ARC_MACH_ARC6 1
-#define E_ARC_MACH_ARC7 2
-#define E_ARC_MACH_ARC8 3
+/* Processor specific flags for the ELF header e_flags field. */
+#define EF_ARC_CPU_GENERIC 0x00000000
+#define EF_ARC_CPU_ARCV2EM 0x00000005
+#define EF_ARC_CPU_ARCV2HS 0x00000006
+
+/* ARC Linux specific ABIs. */
+#define E_ARC_OSABI_ORIG 0x00000000 /* MUST be 0 for back-compat. */
+#define E_ARC_OSABI_V2 0x00000200
+#define E_ARC_OSABI_V3 0x00000300
+#define E_ARC_OSABI_CURRENT E_ARC_OSABI_V3
/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types. */