| /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ |
| /* Copyright (c) 2021 Hengqi Chen */ |
| |
| #ifndef __CORE_FIXES_BPF_H |
| #define __CORE_FIXES_BPF_H |
| |
| #include <vmlinux.h> |
| #include <bpf/bpf_core_read.h> |
| |
| /** |
| * commit 2f064a59a1 ("sched: Change task_struct::state") changes |
| * the name of task_struct::state to task_struct::__state |
| * see: |
| * https://github.com/torvalds/linux/commit/2f064a59a1 |
| */ |
| struct task_struct___x { |
| unsigned int __state; |
| }; |
| |
| static __s64 get_task_state(void *task) |
| { |
| struct task_struct___x *t = task; |
| |
| if (bpf_core_field_exists(t->__state)) |
| return t->__state; |
| return ((struct task_struct *)task)->state; |
| } |
| |
| #endif /* __CORE_FIXES_BPF_H */ |