1 /* This reloc does nothing.
*/
2 BPF_HOWTO (R_BPF_NONE
, /* type
*/
6 false
, /* pc_relative
*/
8 complain_overflow_dont
, /* complain_on_overflow
*/
9 bpf_elf_generic_reloc
, /* special_function
*/
10 "R_BPF_NONE", /* name
*/
11 false
, /* partial_inplace
*/
14 false
) /* pcrel_offset
*/
16 /* 64-immediate in LDDW instruction.
*/
17 BPF_HOWTO (R_BPF_64_64
, /* type
*/
21 false
, /* pc_relative
*/
23 complain_overflow_signed
, /* complain_on_overflow
*/
24 bpf_elf_generic_reloc
, /* special_function
*/
25 "R_BPF_64_64", /* name
*/
26 true
, /* partial_inplace
*/
27 MINUS_ONE
, /* src_mask
*/
28 MINUS_ONE
, /* dst_mask
*/
29 true
) /* pcrel_offset
*/
32 BPF_HOWTO (R_BPF_64_ABS32
, /* type
*/
36 false
, /* pc_relative
*/
38 complain_overflow_bitfield
, /* complain_on_overflow
*/
39 bpf_elf_generic_reloc
, /* special_function
*/
40 "R_BPF_64_ABS32", /* name
*/
41 true
, /* partial_inplace
*/
42 0xffffffff, /* src_mask
*/
43 0xffffffff, /* dst_mask
*/
44 true
) /* pcrel_offset
*/
47 BPF_HOWTO (R_BPF_64_ABS64
, /* type
*/
51 false
, /* pc_relative
*/
53 complain_overflow_bitfield
, /* complain_on_overflow
*/
54 bpf_elf_generic_reloc
, /* special_function
*/
55 "R_BPF_64_ABS64", /* name
*/
56 true
, /* partial_inplace
*/
58 MINUS_ONE
, /* dst_mask
*/
59 true
) /* pcrel_offset
*/
61 /* 32-bit PC
-relative address in call instructions.
*/
62 BPF_HOWTO (R_BPF_64_32
, /* type
*/
66 true
, /* pc_relative
*/
68 complain_overflow_signed
, /* complain_on_overflow
*/
69 bpf_elf_generic_reloc
, /* special_function
*/
70 "R_BPF_64_32", /* name
*/
71 true
, /* partial_inplace
*/
72 0xffffffff, /* src_mask
*/
73 0xffffffff, /* dst_mask
*/
74 true
) /* pcrel_offset
*/
76 /* 16-bit PC
-relative address in load instructions.
*/
77 BPF_HOWTO (R_BPF_GNU_64_16
, /* type
*/
81 true
, /* pc_relative
*/
83 complain_overflow_signed
, /* complain_on_overflow
*/
84 bpf_elf_generic_reloc
, /* special_function
*/
85 "R_BPF_GNU_64_16", /* name
*/
86 true
, /* partial_inplace
*/
87 0xffff, /* src_mask
*/
88 0xffff, /* dst_mask
*/
89 true
) /* pcrel_offset
*/
91 /* R_BPF_64_NODYLD32 is not used by GNU tools
- but it is generated by LLVM.
92 We provide an entry here so that tools like strip can safely handle BPF
93 binaries generated by other tools.
94 R_BPF_64_NODYLD32 should be fixed at linker like a R_BPF_64_ABS32.
95 The difference to ABS32 is that LLVM execution engine does not resolve
96 R_BPF_64_NODYLD32 relocations.
*/
97 BPF_HOWTO (R_BPF_64_NODYLD32
, /* type
*/
101 false
, /* pc_relative
*/
103 complain_overflow_bitfield
, /* complain_on_overflow
*/
104 bpf_elf_generic_reloc
, /* special_function
*/
105 "R_BPF_64_NODYLD32", /* name
*/
106 true
, /* partial_inplace
*/
107 0xffffffff, /* src_mask
*/
108 0xffffffff, /* dst_mask
*/
109 true
) /* pcrel_offset
*/