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