Alexei Starovoitov says: ==================== pull-request: bpf-next 2021-12-30 The following pull-request contains BPF updates for your *net-next* tree. We've added 72 non-merge commits during the last 20 day(s) which contain a total of 223 files changed, 3510 insertions(+), 1591 deletions(-). The main changes are: 1) Automatic setrlimit in libbpf when bpf is memcg's in the kernel, from Andrii. 2) Beautify and de-verbose verifier logs, from Christy. 3) Composable verifier types, from Hao. 4) bpf_strncmp helper, from Hou. 5) bpf.h header dependency cleanup, from Jakub. 6) get_func_[arg|ret|arg_cnt] helpers, from Jiri. 7) Sleepable local storage, from KP. 8) Extend kfunc with PTR_TO_CTX, PTR_TO_MEM argument support, from Kumar. ====================
Showing the changes to include/uapi (1 of 221 files). Show all
Unified · Split
| @@ -4983,6 +4983,41 @@ union bpf_attr { · 4982 unmodified lines | ||
| 4983 | 4983 | * Return |
| 4984 | 4984 | * The number of loops performed, **-EINVAL** for invalid **flags**, |
| 4985 | 4985 | * **-E2BIG** if **nr_loops** exceeds the maximum number of loops. |
| 4986 | + * | |
| 4987 | + * long bpf_strncmp(const char *s1, u32 s1_sz, const char *s2) | |
| 4988 | + * Description | |
| 4989 | + * Do strncmp() between **s1** and **s2**. **s1** doesn't need | |
| 4990 | + * to be null-terminated and **s1_sz** is the maximum storage | |
| 4991 | + * size of **s1**. **s2** must be a read-only string. | |
| 4992 | + * Return | |
| 4993 | + * An integer less than, equal to, or greater than zero | |
| 4994 | + * if the first **s1_sz** bytes of **s1** is found to be | |
| 4995 | + * less than, to match, or be greater than **s2**. | |
| 4996 | + * | |
| 4997 | + * long bpf_get_func_arg(void *ctx, u32 n, u64 *value) | |
| 4998 | + * Description | |
| 4999 | + * Get **n**-th argument (zero based) of the traced function (for tracing programs) | |
| 5000 | + * returned in **value**. | |
| 5001 | + * | |
| 5002 | + * Return | |
| 5003 | + * 0 on success. | |
| 5004 | + * **-EINVAL** if n >= arguments count of traced function. | |
| 5005 | + * | |
| 5006 | + * long bpf_get_func_ret(void *ctx, u64 *value) | |
| 5007 | + * Description | |
| 5008 | + * Get return value of the traced function (for tracing programs) | |
| 5009 | + * in **value**. | |
| 5010 | + * | |
| 5011 | + * Return | |
| 5012 | + * 0 on success. | |
| 5013 | + * **-EOPNOTSUPP** for tracing programs other than BPF_TRACE_FEXIT or BPF_MODIFY_RETURN. | |
| 5014 | + * | |
| 5015 | + * long bpf_get_func_arg_cnt(void *ctx) | |
| 5016 | + * Description | |
| 5017 | + * Get number of arguments of the traced function (for tracing programs). | |
| 5018 | + * | |
| 5019 | + * Return | |
| 5020 | + * The number of arguments of the traced function. | |
| 4986 | 5021 | */ |
| 4987 | 5022 | #define __BPF_FUNC_MAPPER(FN) \ |
| 4988 | 5023 | FN(unspec), \ |
| @@ -5167,6 +5202,10 @@ union bpf_attr { · 178 unmodified lines | ||
| 5167 | 5202 | FN(kallsyms_lookup_name), \ |
| 5168 | 5203 | FN(find_vma), \ |
| 5169 | 5204 | FN(loop), \ |
| 5205 | + FN(strncmp), \ | |
| 5206 | + FN(get_func_arg), \ | |
| 5207 | + FN(get_func_ret), \ | |
| 5208 | + FN(get_func_arg_cnt), \ | |
| 5170 | 5209 | /* */ |
| 5171 | 5210 | |
| 5172 | 5211 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |