| // SPDX-License-Identifier: GPL-2.0 | |
| /* Copyright (c) 2026 Christian Brauner <brauner@kernel.org> */ | |
| #ifndef _LINUX_SCHED_EXEC_STATE_H | |
| #define _LINUX_SCHED_EXEC_STATE_H | |
| #include <linux/init.h> | |
| #include <linux/rcupdate.h> | |
| #include <linux/refcount.h> | |
| #include <linux/sched/coredump.h> | |
| #include <linux/user_namespace.h> | |
| struct task_exec_state { | |
| refcount_t count; | |
| enum task_dumpable dumpable; | |
| struct user_namespace *user_ns; | |
| struct rcu_head rcu; | |
| }; | |
| extern struct task_exec_state init_task_exec_state; | |
| struct task_exec_state *alloc_task_exec_state(struct user_namespace *user_ns); | |
| void put_task_exec_state(struct task_exec_state *exec_state); | |
| struct task_exec_state *task_exec_state_rcu(const struct task_struct *tsk); | |
| struct task_exec_state *task_exec_state_replace(struct task_struct *tsk, | |
| struct task_exec_state *exec_state); | |
| int task_exec_state_copy(struct task_struct *tsk); | |
| void __init exec_state_init(void); | |
| DEFINE_FREE(put_task_exec_state, struct task_exec_state *, put_task_exec_state(_T)) | |
| #endif /* _LINUX_SCHED_EXEC_STATE_H */ |