/* 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 */ |