1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 7 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2018 The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Author: Jason Greene <jason@inetgurus.net> | 16 +----------------------------------------------------------------------+ 17 */ 18 19 /* $Id$ */ 20 21 #ifndef PHP_PCNTL_H 22 #define PHP_PCNTL_H 23 24 #if defined(WCONTINUED) && defined(WIFCONTINUED) 25 #define HAVE_WCONTINUED 1 26 #endif 27 28 extern zend_module_entry pcntl_module_entry; 29 #define phpext_pcntl_ptr &pcntl_module_entry 30 31 #include "php_version.h" 32 #define PHP_PCNTL_VERSION PHP_VERSION 33 34 PHP_MINIT_FUNCTION(pcntl); 35 PHP_MSHUTDOWN_FUNCTION(pcntl); 36 PHP_RINIT_FUNCTION(pcntl); 37 PHP_RSHUTDOWN_FUNCTION(pcntl); 38 PHP_MINFO_FUNCTION(pcntl); 39 40 PHP_FUNCTION(pcntl_alarm); 41 PHP_FUNCTION(pcntl_fork); 42 PHP_FUNCTION(pcntl_waitpid); 43 PHP_FUNCTION(pcntl_wait); 44 PHP_FUNCTION(pcntl_wifexited); 45 PHP_FUNCTION(pcntl_wifstopped); 46 PHP_FUNCTION(pcntl_wifsignaled); 47 #ifdef HAVE_WCONTINUED 48 PHP_FUNCTION(pcntl_wifcontinued); 49 #endif 50 PHP_FUNCTION(pcntl_wexitstatus); 51 PHP_FUNCTION(pcntl_wtermsig); 52 PHP_FUNCTION(pcntl_wstopsig); 53 PHP_FUNCTION(pcntl_signal); 54 PHP_FUNCTION(pcntl_signal_get_handler); 55 PHP_FUNCTION(pcntl_signal_dispatch); 56 PHP_FUNCTION(pcntl_get_last_error); 57 PHP_FUNCTION(pcntl_strerror); 58 #ifdef HAVE_SIGPROCMASK 59 PHP_FUNCTION(pcntl_sigprocmask); 60 #endif 61 #ifdef HAVE_STRUCT_SIGINFO_T 62 # if HAVE_SIGWAITINFO && HAVE_SIGTIMEDWAIT 63 PHP_FUNCTION(pcntl_sigwaitinfo); 64 PHP_FUNCTION(pcntl_sigtimedwait); 65 # endif 66 #endif 67 PHP_FUNCTION(pcntl_exec); 68 #ifdef HAVE_GETPRIORITY 69 PHP_FUNCTION(pcntl_getpriority); 70 #endif 71 #ifdef HAVE_SETPRIORITY 72 PHP_FUNCTION(pcntl_setpriority); 73 #endif 74 PHP_FUNCTION(pcntl_async_signals); 75 76 struct php_pcntl_pending_signal { 77 struct php_pcntl_pending_signal *next; 78 zend_long signo; 79 #ifdef HAVE_STRUCT_SIGINFO_T 80 siginfo_t siginfo; 81 #endif 82 }; 83 84 ZEND_BEGIN_MODULE_GLOBALS(pcntl) 85 HashTable php_signal_table; 86 int processing_signal_queue; 87 struct php_pcntl_pending_signal *head, *tail, *spares; 88 int last_error; 89 volatile char pending_signals; 90 zend_bool async_signals; 91 ZEND_END_MODULE_GLOBALS(pcntl) 92 93 #ifdef ZTS 94 #define PCNTL_G(v) TSRMG(pcntl_globals_id, zend_pcntl_globals *, v) 95 #else 96 #define PCNTL_G(v) (pcntl_globals.v) 97 #endif 98 99 #define REGISTER_PCNTL_ERRNO_CONSTANT(name) REGISTER_LONG_CONSTANT("PCNTL_" #name, name, CONST_CS | CONST_PERSISTENT) 100 101 #endif /* PHP_PCNTL_H */ 102 103 104 /* 105 * Local variables: 106 * tab-width: 4 107 * c-basic-offset: 4 108 * indent-tabs-mode: t 109 * End: 110 */ 111