30 lines
674 B
C
30 lines
674 B
C
/* 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 */
|