@@ -37,7 +37,11 @@ class BPFHelperID(Enum):
3737 BPF_PROBE_READ_KERNEL_STR = 115
3838
3939
40- @HelperHandlerRegistry .register ("ktime" )
40+ @HelperHandlerRegistry .register (
41+ "ktime" ,
42+ param_types = [],
43+ return_type = ir .IntType (64 ),
44+ )
4145def bpf_ktime_get_ns_emitter (
4246 call ,
4347 map_ptr ,
@@ -60,7 +64,11 @@ def bpf_ktime_get_ns_emitter(
6064 return result , ir .IntType (64 )
6165
6266
63- @HelperHandlerRegistry .register ("lookup" )
67+ @HelperHandlerRegistry .register (
68+ "lookup" ,
69+ param_types = [ir .PointerType (ir .IntType (64 ))],
70+ return_type = ir .PointerType (ir .IntType (64 )),
71+ )
6472def bpf_map_lookup_elem_emitter (
6573 call ,
6674 map_ptr ,
@@ -102,6 +110,7 @@ def bpf_map_lookup_elem_emitter(
102110 return result , ir .PointerType ()
103111
104112
113+ # NOTE: This has special handling so we won't reflect the signature here.
105114@HelperHandlerRegistry .register ("print" )
106115def bpf_printk_emitter (
107116 call ,
@@ -150,7 +159,15 @@ def bpf_printk_emitter(
150159 return True
151160
152161
153- @HelperHandlerRegistry .register ("update" )
162+ @HelperHandlerRegistry .register (
163+ "update" ,
164+ param_types = [
165+ ir .PointerType (ir .IntType (64 )),
166+ ir .PointerType (ir .IntType (64 )),
167+ ir .IntType (64 ),
168+ ],
169+ return_type = ir .PointerType (ir .IntType (64 )),
170+ )
154171def bpf_map_update_elem_emitter (
155172 call ,
156173 map_ptr ,
@@ -205,7 +222,11 @@ def bpf_map_update_elem_emitter(
205222 return result , None
206223
207224
208- @HelperHandlerRegistry .register ("delete" )
225+ @HelperHandlerRegistry .register (
226+ "delete" ,
227+ param_types = [ir .PointerType (ir .IntType (64 ))],
228+ return_type = ir .PointerType (ir .IntType (64 )),
229+ )
209230def bpf_map_delete_elem_emitter (
210231 call ,
211232 map_ptr ,
@@ -245,7 +266,11 @@ def bpf_map_delete_elem_emitter(
245266 return result , None
246267
247268
248- @HelperHandlerRegistry .register ("comm" )
269+ @HelperHandlerRegistry .register (
270+ "comm" ,
271+ param_types = [ir .PointerType (ir .IntType (8 ))],
272+ return_type = ir .IntType (64 ),
273+ )
249274def bpf_get_current_comm_emitter (
250275 call ,
251276 map_ptr ,
@@ -302,7 +327,11 @@ def bpf_get_current_comm_emitter(
302327 return result , None
303328
304329
305- @HelperHandlerRegistry .register ("pid" )
330+ @HelperHandlerRegistry .register (
331+ "pid" ,
332+ param_types = [],
333+ return_type = ir .IntType (64 ),
334+ )
306335def bpf_get_current_pid_tgid_emitter (
307336 call ,
308337 map_ptr ,
@@ -330,7 +359,11 @@ def bpf_get_current_pid_tgid_emitter(
330359 return pid , ir .IntType (64 )
331360
332361
333- @HelperHandlerRegistry .register ("output" )
362+ @HelperHandlerRegistry .register (
363+ "output" ,
364+ param_types = [ir .PointerType (ir .IntType (8 ))],
365+ return_type = ir .IntType (64 ),
366+ )
334367def bpf_perf_event_output_handler (
335368 call ,
336369 map_ptr ,
@@ -405,7 +438,14 @@ def emit_probe_read_kernel_str_call(builder, dst_ptr, dst_size, src_ptr):
405438 return result
406439
407440
408- @HelperHandlerRegistry .register ("probe_read_str" )
441+ @HelperHandlerRegistry .register (
442+ "probe_read_str" ,
443+ param_types = [
444+ ir .PointerType (ir .IntType (8 )),
445+ ir .PointerType (ir .IntType (8 )),
446+ ],
447+ return_type = ir .IntType (64 ),
448+ )
409449def bpf_probe_read_kernel_str_emitter (
410450 call ,
411451 map_ptr ,
@@ -440,7 +480,11 @@ def bpf_probe_read_kernel_str_emitter(
440480 return result , ir .IntType (64 )
441481
442482
443- @HelperHandlerRegistry .register ("random" )
483+ @HelperHandlerRegistry .register (
484+ "random" ,
485+ param_types = [],
486+ return_type = ir .IntType (32 ),
487+ )
444488def bpf_get_prandom_u32_emitter (
445489 call ,
446490 map_ptr ,
@@ -462,7 +506,15 @@ def bpf_get_prandom_u32_emitter(
462506 return result , ir .IntType (32 )
463507
464508
465- @HelperHandlerRegistry .register ("probe_read" )
509+ @HelperHandlerRegistry .register (
510+ "probe_read" ,
511+ param_types = [
512+ ir .PointerType (ir .IntType (8 )),
513+ ir .IntType (32 ),
514+ ir .PointerType (ir .IntType (8 )),
515+ ],
516+ return_type = ir .IntType (64 ),
517+ )
466518def bpf_probe_read_emitter (
467519 call ,
468520 map_ptr ,
@@ -517,7 +569,11 @@ def bpf_probe_read_emitter(
517569 return result , ir .IntType (64 )
518570
519571
520- @HelperHandlerRegistry .register ("smp_processor_id" )
572+ @HelperHandlerRegistry .register (
573+ "smp_processor_id" ,
574+ param_types = [],
575+ return_type = ir .IntType (32 ),
576+ )
521577def bpf_get_smp_processor_id_emitter (
522578 call ,
523579 map_ptr ,
@@ -540,7 +596,11 @@ def bpf_get_smp_processor_id_emitter(
540596 return result , ir .IntType (32 )
541597
542598
543- @HelperHandlerRegistry .register ("uid" )
599+ @HelperHandlerRegistry .register (
600+ "uid" ,
601+ param_types = [],
602+ return_type = ir .IntType (64 ),
603+ )
544604def bpf_get_current_uid_gid_emitter (
545605 call ,
546606 map_ptr ,
@@ -622,8 +682,8 @@ def bpf_skb_store_bytes_emitter(
622682 builder ,
623683 local_sym_tab ,
624684 map_sym_tab ,
625- args_signature [2 ],
626685 struct_sym_tab ,
686+ args_signature [2 ],
627687 )
628688 len_val = get_int_value_from_arg (
629689 call .args [2 ],
0 commit comments