Currently, the code creates a duplicate function directory and function declarations to keep track of the original implementation of functions used in userspace. This creates a lot of confusion inside the code, and it is no longer obvious if we want to access the version of the function suitable for userspace or the one for the bpf.
# TODO: I do not like this, because it resulted in maintaining two function
# directories. Maybe if we rename the function so we have bpf and userspace
# version of the function with different names the reference management
# become easier. At least it would be obviouse which version of the
# function we want to access.
Currently, the code creates a duplicate function directory and function declarations to keep track of the original implementation of functions used in userspace. This creates a lot of confusion inside the code, and it is no longer obvious if we want to access the version of the function suitable for userspace or the one for the bpf.