stapbpf PR27030 WIP :: new bpf/uconversions.stp tapset
Tentative version of user_long_error() for bpf, needs more testing.
NEXT, the __bpf_probe_read_user_error() helper can be used to implement
the other user_{char,short,int} tapset functions.
This patch starts a new practice for tapset layout for tapset functions
that have a lkm/dyninst implementation and a separate bpf implementation:
- The lkm/dyninst implementation is placed in the toplevel tapset/
directory, surrounded by %( runtime != "bpf" %? ... %).
- The bpf implementation is placed in the tapset/bpf/ directory.
Once applied to the rest of the tapsets, this practice should work to
eliminate the current proliferation of two-way
%( runtime != "bpf" %? implementation1 %: implementation2 %)
conditionals in the runtime code, and allow bpf versions of numerous
remaining tapset functions to be implemented and cleanly placed
into separate files under bpf/.