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