xref: /linux/kernel/exit.h (revision 2e521a20)
1*2e521a20SJens Axboe // SPDX-License-Identifier: GPL-2.0-only
2*2e521a20SJens Axboe #ifndef LINUX_WAITID_H
3*2e521a20SJens Axboe #define LINUX_WAITID_H
4*2e521a20SJens Axboe 
5*2e521a20SJens Axboe struct waitid_info {
6*2e521a20SJens Axboe 	pid_t pid;
7*2e521a20SJens Axboe 	uid_t uid;
8*2e521a20SJens Axboe 	int status;
9*2e521a20SJens Axboe 	int cause;
10*2e521a20SJens Axboe };
11*2e521a20SJens Axboe 
12*2e521a20SJens Axboe struct wait_opts {
13*2e521a20SJens Axboe 	enum pid_type		wo_type;
14*2e521a20SJens Axboe 	int			wo_flags;
15*2e521a20SJens Axboe 	struct pid		*wo_pid;
16*2e521a20SJens Axboe 
17*2e521a20SJens Axboe 	struct waitid_info	*wo_info;
18*2e521a20SJens Axboe 	int			wo_stat;
19*2e521a20SJens Axboe 	struct rusage		*wo_rusage;
20*2e521a20SJens Axboe 
21*2e521a20SJens Axboe 	wait_queue_entry_t		child_wait;
22*2e521a20SJens Axboe 	int			notask_error;
23*2e521a20SJens Axboe };
24*2e521a20SJens Axboe 
25*2e521a20SJens Axboe bool pid_child_should_wake(struct wait_opts *wo, struct task_struct *p);
26*2e521a20SJens Axboe long __do_wait(struct wait_opts *wo);
27*2e521a20SJens Axboe int kernel_waitid_prepare(struct wait_opts *wo, int which, pid_t upid,
28*2e521a20SJens Axboe 			  struct waitid_info *infop, int options,
29*2e521a20SJens Axboe 			  struct rusage *ru);
30*2e521a20SJens Axboe #endif
31