1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (c) 2020, Oracle and/or its affiliates. */
4 #include <bpf/bpf_helpers.h>
5 #include <bpf/bpf_tracing.h>
6 #include <bpf/bpf_core_read.h>
10 char _license
[] SEC("license") = "GPL";
17 int dump_task_struct(struct bpf_iter__task
*ctx
)
19 struct seq_file
*seq
= ctx
->meta
->seq
;
20 struct task_struct
*task
= ctx
->task
;
21 static struct btf_ptr ptr
= { };
24 #if __has_builtin(__builtin_btf_type_id)
25 ptr
.type_id
= bpf_core_type_id_kernel(struct task_struct
);
28 if (ctx
->meta
->seq_num
== 0)
29 BPF_SEQ_PRINTF(seq
, "Raw BTF task\n");
31 ret
= bpf_seq_printf_btf(seq
, &ptr
, sizeof(ptr
), 0);
37 /* NULL task or task->fs, don't count it as an error. */