mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-26 14:17:26 -04:00
sched/headers: Move the get_task_struct()/put_task_struct() and related APIs from <linux/sched.h> to <linux/sched/task.h>
These belong into the task lifetime API header. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
dcc2dc45f7
commit
cda66725c1
2 changed files with 15 additions and 14 deletions
|
@ -1135,20 +1135,6 @@ static inline int is_global_init(struct task_struct *tsk)
|
||||||
|
|
||||||
extern struct pid *cad_pid;
|
extern struct pid *cad_pid;
|
||||||
|
|
||||||
extern void free_task(struct task_struct *tsk);
|
|
||||||
#define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
|
|
||||||
|
|
||||||
extern void __put_task_struct(struct task_struct *t);
|
|
||||||
|
|
||||||
static inline void put_task_struct(struct task_struct *t)
|
|
||||||
{
|
|
||||||
if (atomic_dec_and_test(&t->usage))
|
|
||||||
__put_task_struct(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct task_struct *task_rcu_dereference(struct task_struct **ptask);
|
|
||||||
struct task_struct *try_get_task_struct(struct task_struct **ptask);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Per process flags
|
* Per process flags
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -75,6 +75,21 @@ extern long do_fork(unsigned long, unsigned long, unsigned long, int __user *, i
|
||||||
struct task_struct *fork_idle(int);
|
struct task_struct *fork_idle(int);
|
||||||
extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
||||||
|
|
||||||
|
extern void free_task(struct task_struct *tsk);
|
||||||
|
|
||||||
|
#define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
|
||||||
|
|
||||||
|
extern void __put_task_struct(struct task_struct *t);
|
||||||
|
|
||||||
|
static inline void put_task_struct(struct task_struct *t)
|
||||||
|
{
|
||||||
|
if (atomic_dec_and_test(&t->usage))
|
||||||
|
__put_task_struct(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct task_struct *task_rcu_dereference(struct task_struct **ptask);
|
||||||
|
struct task_struct *try_get_task_struct(struct task_struct **ptask);
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
|
#ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
|
||||||
extern int arch_task_struct_size __read_mostly;
|
extern int arch_task_struct_size __read_mostly;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue