summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAlan Maguire <alan.maguire@oracle.com>2020-09-28 14:31:09 +0300
committerAlexei Starovoitov <ast@kernel.org>2020-09-29 04:26:58 +0300
commiteb411377aed9e27835e77ee0710ee8f4649958f3 (patch)
tree90908f665c621d466093f55d1cbc4479e0dcd24a /tools
parenteb58bbf2e5c7917aa30bf8818761f26bbeeb2290 (diff)
downloadlinux-eb411377aed9e27835e77ee0710ee8f4649958f3.tar.xz
bpf: Add bpf_seq_printf_btf helper
A helper is added to allow seq file writing of kernel data structures using vmlinux BTF. Its signature is long bpf_seq_printf_btf(struct seq_file *m, struct btf_ptr *ptr, u32 btf_ptr_size, u64 flags); Flags and struct btf_ptr definitions/use are identical to the bpf_snprintf_btf helper, and the helper returns 0 on success or a negative error value. Suggested-by: Alexei Starovoitov <alexei.starovoitov@gmail.com> Signed-off-by: Alan Maguire <alan.maguire@oracle.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/1601292670-1616-8-git-send-email-alan.maguire@oracle.com
Diffstat (limited to 'tools')
-rw-r--r--tools/include/uapi/linux/bpf.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index cca9eb1b13e5..96ddb00b91dc 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -3630,6 +3630,14 @@ union bpf_attr {
* The number of bytes that were written (or would have been
* written if output had to be truncated due to string size),
* or a negative error in cases of failure.
+ *
+ * long bpf_seq_printf_btf(struct seq_file *m, struct btf_ptr *ptr, u32 ptr_size, u64 flags)
+ * Description
+ * Use BTF to write to seq_write a string representation of
+ * *ptr*->ptr, using *ptr*->type_id as per bpf_snprintf_btf().
+ * *flags* are identical to those used for bpf_snprintf_btf.
+ * Return
+ * 0 on success or a negative error in case of failure.
*/
#define __BPF_FUNC_MAPPER(FN) \
FN(unspec), \
@@ -3782,6 +3790,7 @@ union bpf_attr {
FN(d_path), \
FN(copy_from_user), \
FN(snprintf_btf), \
+ FN(seq_printf_btf), \
/* */
/* integer value in 'imm' field of BPF_CALL instruction selects which helper