[Clang][Attr] Support btf_type_tag attribute
This patch introduced btf_type_tag attribute. The attribute is a type attribute and intends to address the below linux use cases. typedef int __user *__intp; int foo(int __user *arg, ...) static int do_execve(struct filename *filename, const char __user *const __user *__argv, const char __user *const __user *__envp) Here __user in the kernel defined as __attribute__((noderef, address_space(__user))) for sparse ([1]) type checking mode. For normal clang compilation, we intend to replace it with __attribute__((btf_type_tag("user"))) and record such informaiton in dwarf and BTF so such information later can be used in kernel for bpf verification or for other tracing functionalities. [1] https://www.kernel.org/doc/html/v4.11/dev-tools/sparse.html Differential Revision: https://reviews.llvm.org/D111199
Loading
Please register or sign in to comment