Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> writes: [...] > > +Helper functions > > +~~~~~~~~~~~~~~~~ > > +Helper functions are a concept whereby BPF programs can call into a > > +set of function calls exposed by the eBPF runtime. Each helper > > +function is identified by an integer used in a ``BPF_CALL`` instruction. > > +The available helper functions may differ for each eBPF program type. > > + > > +Conceptually, each helper function is implemented with a commonly > > +shared function signature defined as: > > + > > + uint64_t function(uint64_t r1, uint64_t r2, uint64_t r3, uint64_t > > + r4, uint64_t r5) > > + > > +In actuality, each helper function is defined as taking between 0 and > > +5 arguments, with the remaining registers being ignored. The > > +definition of a helper function is responsible for specifying the > > +type (e.g., integer, pointer, etc.) of the value returned, the number of > arguments, and the type of each argument. > > If we explain helpers in the doc then we should explain kfuncs and bpf-to-bpf > calls as well. > Otherwise it looks incomplete and eventually will suffer the same issue as '64- > bit instructionS'. Agree, and blurbs were indeed added in [PATCH 14/15] ebpf-docs: Add extended call instructions Dave