1// SPDX-License-Identifier: GPL-2.0-only
2#ifndef LINUX_WAITID_H
3#define LINUX_WAITID_H
4
5struct waitid_info {
6	pid_t pid;
7	uid_t uid;
8	int status;
9	int cause;
10};
11
12struct 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
25bool pid_child_should_wake(struct wait_opts *wo, struct task_struct *p);
26long __do_wait(struct wait_opts *wo);
27int 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