Module rbpf::helpers [] [src]

This module implements some built-in helpers that can be called from within an eBPF program.

These helpers may originate from several places:

  • Some of them mimic the helpers available in the Linux kernel.
  • Some of them were proposed as example helpers in uBPF and they were adapted here.
  • Other helpers may be specific to rbpf.

The prototype for helpers is always the same: five u64 as arguments, and a u64 as a return value. Hence some helpers have unused arguments, or return a 0 value in all cases, in order to respect this convention.

Constants

BPF_TRACE_PRINTK_IDX

Index of helper bpf_trace_printk(), equivalent to bpf_trace_printf(), in Linux kernel, see https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/bpf.h.

Functions

bpf_trace_printf

Prints its last three arguments to standard output. The first two arguments are unused. Returns 0.

gather_bytes

The idea is to assemble five bytes into a single u64. For compatibility with the helpers API, each argument must be a u64.

memfrob

Same as void *memfrob(void *s, size_t n); in string.h in C. See the GNU manual page (in section 3) for memfrob. The memory is directly modified, and the helper returns 0 in all cases. Arguments 3 to 5 are unused.

sqrti

Compute and return the square root of argument 1, cast as a float. Arguments 2 to 5 are unused.

strcmp

C-like strcmp, return 0 if the strings are equal, and a non-null value otherwise.