| /* This reloc does nothing. */ | |
| BPF_HOWTO (R_BPF_NONE, /* type */ | |
| 0, /* rightshift */ | |
| 0, /* size */ | |
| 0, /* bitsize */ | |
| false, /* pc_relative */ | |
| 0, /* bitpos */ | |
| complain_overflow_dont, /* complain_on_overflow */ | |
| bpf_elf_generic_reloc, /* special_function */ | |
| "R_BPF_NONE", /* name */ | |
| false, /* partial_inplace */ | |
| 0, /* src_mask */ | |
| 0, /* dst_mask */ | |
| false) /* pcrel_offset */ | |
| /* 64-immediate in LDDW instruction. */ | |
| BPF_HOWTO (R_BPF_64_64, /* type */ | |
| 0, /* rightshift */ | |
| 8, /* size */ | |
| 64, /* bitsize */ | |
| false, /* pc_relative */ | |
| 32, /* bitpos */ | |
| complain_overflow_signed, /* complain_on_overflow */ | |
| bpf_elf_generic_reloc, /* special_function */ | |
| "R_BPF_64_64", /* name */ | |
| true, /* partial_inplace */ | |
| MINUS_ONE, /* src_mask */ | |
| MINUS_ONE, /* dst_mask */ | |
| true) /* pcrel_offset */ | |
| /* 32-bit data. */ | |
| BPF_HOWTO (R_BPF_64_ABS32, /* type */ | |
| 0, /* rightshift */ | |
| 4, /* size */ | |
| 32, /* bitsize */ | |
| false, /* pc_relative */ | |
| 0, /* bitpos */ | |
| complain_overflow_bitfield, /* complain_on_overflow */ | |
| bpf_elf_generic_reloc, /* special_function */ | |
| "R_BPF_64_ABS32", /* name */ | |
| true, /* partial_inplace */ | |
| 0xffffffff, /* src_mask */ | |
| 0xffffffff, /* dst_mask */ | |
| true) /* pcrel_offset */ | |
| /* 64-bit data. */ | |
| BPF_HOWTO (R_BPF_64_ABS64, /* type */ | |
| 0, /* rightshift */ | |
| 8, /* size */ | |
| 64, /* bitsize */ | |
| false, /* pc_relative */ | |
| 0, /* bitpos */ | |
| complain_overflow_bitfield, /* complain_on_overflow */ | |
| bpf_elf_generic_reloc, /* special_function */ | |
| "R_BPF_64_ABS64", /* name */ | |
| true, /* partial_inplace */ | |
| 0, /* src_mask */ | |
| MINUS_ONE, /* dst_mask */ | |
| true) /* pcrel_offset */ | |
| /* 32-bit PC-relative address in call instructions. */ | |
| BPF_HOWTO (R_BPF_64_32, /* type */ | |
| 0, /* rightshift */ | |
| 4, /* size */ | |
| 32, /* bitsize */ | |
| true, /* pc_relative */ | |
| 32, /* bitpos */ | |
| complain_overflow_signed, /* complain_on_overflow */ | |
| bpf_elf_generic_reloc, /* special_function */ | |
| "R_BPF_64_32", /* name */ | |
| true, /* partial_inplace */ | |
| 0xffffffff, /* src_mask */ | |
| 0xffffffff, /* dst_mask */ | |
| true) /* pcrel_offset */ | |
| /* 16-bit PC-relative address in load instructions. */ | |
| BPF_HOWTO (R_BPF_GNU_64_16, /* type */ | |
| 0, /* rightshift */ | |
| 2, /* size */ | |
| 16, /* bitsize */ | |
| true, /* pc_relative */ | |
| 16, /* bitpos */ | |
| complain_overflow_signed, /* complain_on_overflow */ | |
| bpf_elf_generic_reloc, /* special_function */ | |
| "R_BPF_GNU_64_16", /* name */ | |
| true, /* partial_inplace */ | |
| 0xffff, /* src_mask */ | |
| 0xffff, /* dst_mask */ | |
| true) /* pcrel_offset */ | |
| /* R_BPF_64_NODYLD32 is not used by GNU tools - but it is generated by LLVM. | |
| We provide an entry here so that tools like strip can safely handle BPF | |
| binaries generated by other tools. | |
| R_BPF_64_NODYLD32 should be fixed at linker like a R_BPF_64_ABS32. | |
| The difference to ABS32 is that LLVM execution engine does not resolve | |
| R_BPF_64_NODYLD32 relocations. */ | |
| BPF_HOWTO (R_BPF_64_NODYLD32, /* type */ | |
| 0, /* rightshift */ | |
| 4, /* size */ | |
| 32, /* bitsize */ | |
| false, /* pc_relative */ | |
| 0, /* bitpos */ | |
| complain_overflow_bitfield, /* complain_on_overflow */ | |
| bpf_elf_generic_reloc, /* special_function */ | |
| "R_BPF_64_NODYLD32", /* name */ | |
| true, /* partial_inplace */ | |
| 0xffffffff, /* src_mask */ | |
| 0xffffffff, /* dst_mask */ | |
| true) /* pcrel_offset */ |