1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in 12 * the documentation and/or other materials provided with the 13 * distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 18 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 19 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 22 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 */ 28 29 #include <sys/wait.h> 30 31 #include "header_checks.h" 32 33 static void sys_wait_h() { 34 MACRO(WCONTINUED); 35 MACRO(WNOHANG); 36 MACRO(WUNTRACED); 37 38 #if !defined(WEXITSTATUS) 39 #error WEXITSTATUS 40 #endif 41 #if !defined(WIFCONTINUED) 42 #error WIFCONTINUED 43 #endif 44 #if !defined(WIFEXITED) 45 #error WIFEXITED 46 #endif 47 #if !defined(WIFSIGNALED) 48 #error WIFSIGNALED 49 #endif 50 #if !defined(WIFSTOPPED) 51 #error WIFSTOPPED 52 #endif 53 #if !defined(WSTOPSIG) 54 #error WSTOPSIG 55 #endif 56 #if !defined(WTERMSIG) 57 #error WTERMSIG 58 #endif 59 60 MACRO(WEXITED); 61 MACRO(WNOWAIT); 62 MACRO(WSTOPPED); 63 64 TYPE(idtype_t); 65 MACRO(P_ALL); 66 MACRO(P_PGID); 67 MACRO(P_PID); 68 69 TYPE(id_t); 70 TYPE(pid_t); 71 TYPE(siginfo_t); 72 TYPE(union sigval); 73 74 FUNCTION(wait, pid_t (*f)(int*)); 75 FUNCTION(waitid, int (*f)(idtype_t, id_t, siginfo_t*, int)); 76 FUNCTION(waitpid, pid_t (*f)(pid_t, int*, int)); 77 } 78