File indexing completed on 2025-05-11 08:24:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 #ifndef _AARCH64_ELF_MACHDEP_H_
0033 #define _AARCH64_ELF_MACHDEP_H_
0034
0035 #ifdef __aarch64__
0036
0037 #if defined(__AARCH64EB__)
0038 #define ELF64_MACHDEP_ENDIANNESS ELFDATA2MSB
0039 #define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
0040 #else
0041 #define ELF64_MACHDEP_ENDIANNESS ELFDATA2LSB
0042 #define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
0043 #endif
0044
0045
0046 #define EF_ARM_RELEXEC 0x00000001
0047 #define EF_ARM_HASENTRY 0x00000002
0048 #define EF_ARM_INTERWORK 0x00000004
0049 #define EF_ARM_SYMSARESORTED 0x00000004
0050 #define EF_ARM_APCS_26 0x00000008
0051 #define EF_ARM_DYNSYMSUSESEGIDX 0x00000008
0052 #define EF_ARM_APCS_FLOAT 0x00000010
0053 #define EF_ARM_MAPSYMSFIRST 0x00000010
0054 #define EF_ARM_PIC 0x00000020
0055 #define EF_ARM_ALIGN8 0x00000040
0056 #define EF_ARM_NEW_ABI 0x00000080
0057 #define EF_ARM_OLD_ABI 0x00000100
0058 #define EF_ARM_SOFT_FLOAT 0x00000200
0059 #define EF_ARM_BE8 0x00800000
0060 #define EF_ARM_EABIMASK 0xff000000
0061 #define EF_ARM_EABI_VER1 0x01000000
0062 #define EF_ARM_EABI_VER2 0x02000000
0063 #define EF_ARM_EABI_VER3 0x03000000
0064 #define EF_ARM_EABI_VER4 0x04000000
0065 #define EF_ARM_EABI_VER5 0x05000000
0066
0067 #define ELF32_MACHDEP_ID_CASES \
0068 case EM_ARM: \
0069 break;
0070
0071 #define ELF64_MACHDEP_ID_CASES \
0072 case EM_AARCH64: \
0073 break;
0074
0075 #define ELF64_MACHDEP_ID EM_AARCH64
0076 #define ELF32_MACHDEP_ID EM_ARM
0077
0078 #define KERN_ELFSIZE 64
0079 #define ARCH_ELFSIZE 64
0080
0081
0082
0083 #define R_AARCH64_NONE 0
0084 #define R_AARCH64_NONE2 256
0085
0086 #define R_AARCH64_ABS64 257
0087 #define R_AARCH64_ABS32 258
0088 #define R_AARCH64_ABS16 259
0089 #define R_AARCH64_PREL64 260
0090 #define R_AARCH64_PREL32 261
0091 #define R_AARCH64_PREL16 262
0092 #define R_AARCH64_MOVW_UABS_G0 263
0093 #define R_AARCH64_MOVW_UABS_G0_NC 264
0094 #define R_AARCH64_MOVW_UABS_G1 265
0095 #define R_AARCH64_MOVW_UABS_G1_NC 266
0096 #define R_AARCH64_MOVW_UABS_G2 267
0097 #define R_AARCH64_MOVW_UABS_G2_NC 268
0098 #define R_AARCH64_MOVW_UABS_G3 269
0099 #define R_AARCH64_MOVW_SABS_G0 270
0100 #define R_AARCH64_MOVW_SABS_G1 271
0101 #define R_AARCH64_MOVW_SABS_G2 272
0102 #define R_AARCH64_LD_PREL_LO19 273
0103 #define R_AARCH64_ADR_PREL_LO21 274
0104 #define R_AARCH64_ADR_PREL_PG_HI21 275
0105 #define R_AARCH64_ADR_PREL_PG_HI21_NC 276
0106 #define R_AARCH64_ADD_ABS_LO12_NC 277
0107 #define R_AARCH64_LDST8_ABS_LO12_NC 278
0108 #define R_AARCH_TSTBR14 279
0109 #define R_AARCH_CONDBR19 281
0110 #define R_AARCH_JUMP26 282
0111 #define R_AARCH_CALL26 283
0112 #define R_AARCH_LDST16_ABS_LO12_NC 284
0113 #define R_AARCH_LDST32_ABS_LO12_NC 285
0114 #define R_AARCH_LDST64_ABS_LO12_NC 286
0115 #define R_AARCH64_MOVW_PREL_G0 287
0116 #define R_AARCH64_MOVW_PREL_G0_NC 288
0117 #define R_AARCH64_MOVW_PREL_G1 289
0118 #define R_AARCH64_MOVW_PREL_G1_NC 290
0119 #define R_AARCH64_MOVW_PREL_G2 291
0120 #define R_AARCH64_MOVW_PREL_G2_NC 292
0121 #define R_AARCH64_MOVW_PREL_G3 293
0122
0123 #define R_AARCH64_LDST128_ABS_LO12_NC 299
0124 #define R_AARCH64_MOVW_GOTOFF_G0 300
0125 #define R_AARCH64_MOVW_GOTOFF_G0_NC 301
0126 #define R_AARCH64_MOVW_GOTOFF_G1 302
0127 #define R_AARCH64_MOVW_GOTOFF_G1_NC 303
0128 #define R_AARCH64_MOVW_GOTOFF_G2 304
0129 #define R_AARCH64_MOVW_GOTOFF_G2_NC 305
0130 #define R_AARCH64_MOVW_GOTOFF_G3 306
0131 #define R_AARCH64_GOTREL64 307
0132 #define R_AARCH64_GOTREL32 308
0133 #define R_AARCH64_GOT_LD_PREL19 309
0134 #define R_AARCH64_LD64_GOTOFF_LO15 310
0135 #define R_AARCH64_ADR_GOT_PAGE 311
0136 #define R_AARCH64_LD64_GOT_LO12_NC 312
0137 #define R_AARCH64_LD64_GOTPAGE_LO15 313
0138
0139 #define R_AARCH64_TLSGD_ADR_PREL21 512
0140 #define R_AARCH64_TLSGD_ADR_PAGE21 513
0141 #define R_AARCH64_TLSGD_ADD_LO12_NC 514
0142 #define R_AARCH64_TLSGD_MOVW_G1 515
0143 #define R_AARCH64_TLSGD_MOVW_G0_NV 516
0144 #define R_AARCH64_TLSLD_ADR_PREL21 517
0145 #define R_AARCH64_TLSLD_ADR_PAGE21 518
0146 #define R_AARCH64_TLSLD_ADD_LO12_NC 519
0147 #define R_AARCH64_TLSLD_MOVW_G1 520
0148 #define R_AARCH64_TLSLD_MOVW_G0_NC 521
0149 #define R_AARCH64_TLSLD_LD_PREL21 522
0150 #define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523
0151 #define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524
0152 #define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525
0153 #define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526
0154 #define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 528
0155 #define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
0156 #define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
0157 #define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529
0158 #define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530
0159 #define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531
0160 #define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532
0161 #define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533
0162 #define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534
0163 #define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535
0164 #define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536
0165 #define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537
0166 #define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538
0167 #define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539
0168 #define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540
0169 #define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541
0170 #define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542
0171 #define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543
0172 #define R_AARCH64_TLSLE_MOVW_TPREL_G2 544
0173 #define R_AARCH64_MOVW_TPREL_G1 545
0174 #define R_AARCH64_MOVW_TPREL_G1_NC 546
0175 #define R_AARCH64_MOVW_TPREL_G0 547
0176 #define R_AARCH64_MOVW_TPREL_G0_NC 548
0177 #define R_AARCH64_ADD_TPREL_HI12 549
0178 #define R_AARCH64_ADD_TPREL_LO12 550
0179 #define R_AARCH64_ADD_TPREL_LO12_NC 551
0180 #define R_AARCH64_LDST8_TPREL_LO12 552
0181 #define R_AARCH64_LDST8_TPREL_LO12_NC 553
0182 #define R_AARCH64_LDST16_TPREL_LO12 554
0183 #define R_AARCH64_LDST16_TPREL_LO12_NC 555
0184 #define R_AARCH64_LDST32_TPREL_LO12 556
0185 #define R_AARCH64_LDST32_TPREL_LO12_NC 557
0186 #define R_AARCH64_LDST64_TPREL_LO12 558
0187 #define R_AARCH64_LDST64_TPREL_LO12_NC 559
0188 #define R_AARCH64_TLSDESC_LD_PREL19 560
0189 #define R_AARCH64_TLSDESC_LD_PREL21 561
0190 #define R_AARCH64_TLSDESC_LD_PAGE21 562
0191 #define R_AARCH64_TLSDESC_LD64_LO12 563
0192 #define R_AARCH64_TLSDESC_ADD_LO12 564
0193 #define R_AARCH64_TLSDESC_OFF_G1 565
0194 #define R_AARCH64_TLSDESC_OFF_G0_NC 566
0195 #define R_AARCH64_TLSDESC_LDR 567
0196 #define R_AARCH64_TLSDESC_ADD 568
0197 #define R_AARCH64_TLSDESC_CALL 569
0198 #define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570
0199 #define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571
0200 #define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572
0201 #define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 572
0202
0203
0204 #define R_AARCH64_P32_COPY 180
0205 #define R_AARCH64_P32_GLOB_DAT 181
0206 #define R_AARCH64_P32_JUMP_SLOT 182
0207 #define R_AARCH64_P32_RELATIVE 183
0208 #define R_AARCH64_P32_TLS_DTPREL 184
0209 #define R_AARCH64_P32_TLS_DTPMOD 185
0210 #define R_AARCH64_P32_TLS_TPREL 186
0211 #define R_AARCH64_P32_TLSDESC 187
0212 #define R_AARCH64_P32_IRELATIVE 188
0213
0214 #define R_AARCH64_COPY 1024
0215 #define R_AARCH64_GLOB_DAT 1025
0216 #define R_AARCH64_JUMP_SLOT 1026
0217 #define R_AARCH64_RELATIVE 1027
0218 #define R_AARCH64_TLS_DTPREL64 1028
0219 #define R_AARCH64_TLS_DTPMOD64 1029
0220 #define R_AARCH64_TLS_TPREL64 1030
0221 #define R_AARCH64_TLSDESC 1031
0222 #define R_AARCH64_IRELATIVE 1032
0223
0224 #define R_TYPE(name) R_AARCH64_ ## name
0225 #define R_TLS_TYPE(name) R_AARCH64_ ## name ## 64
0226
0227
0228 #define PT_AARCH64_ARCHEXT (PT_LOPROC + 0)
0229 #define PT_AARCH64_UNWIND (PT_LOPROC + 1)
0230
0231
0232 #define SHF_ENTRYSECT 0x10000000
0233 #define SHF_COMDEF 0x80000000
0234
0235 #define SHT_AARCH64_ATTRIBUTES (SHT_LOPROC + 3)
0236
0237 #ifdef _KERNEL
0238 #ifdef ELFSIZE
0239 #define ELF_MD_PROBE_FUNC ELFNAME2(aarch64_netbsd,probe)
0240 #endif
0241
0242 struct exec_package;
0243
0244 int aarch64_netbsd_elf64_probe(struct lwp *, struct exec_package *, void *,
0245 char *, vaddr_t *);
0246 int aarch64_netbsd_elf32_probe(struct lwp *, struct exec_package *, void *,
0247 char *, vaddr_t *);
0248 #endif
0249
0250 #elif defined(__arm__)
0251
0252 #include <arm/elf_machdep.h>
0253
0254 #endif
0255
0256 #endif