1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 7 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 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 #ifndef PHP_PCNTL_H 20 #define PHP_PCNTL_H 21 22 #if defined(WCONTINUED) && defined(WIFCONTINUED) 23 #define HAVE_WCONTINUED 1 24 #endif 25 26 extern zend_module_entry pcntl_module_entry; 27 #define phpext_pcntl_ptr &pcntl_module_entry 28 29 #include "php_version.h" 30 #define PHP_PCNTL_VERSION PHP_VERSION 31 32 PHP_MINIT_FUNCTION(pcntl); 33 PHP_MSHUTDOWN_FUNCTION(pcntl); 34 PHP_RINIT_FUNCTION(pcntl); 35 PHP_RSHUTDOWN_FUNCTION(pcntl); 36 PHP_MINFO_FUNCTION(pcntl); 37 38 PHP_FUNCTION(pcntl_alarm); 39 PHP_FUNCTION(pcntl_fork); 40 PHP_FUNCTION(pcntl_waitpid); 41 PHP_FUNCTION(pcntl_wait); 42 PHP_FUNCTION(pcntl_wifexited); 43 PHP_FUNCTION(pcntl_wifstopped); 44 PHP_FUNCTION(pcntl_wifsignaled); 45 #ifdef HAVE_WCONTINUED 46 PHP_FUNCTION(pcntl_wifcontinued); 47 #endif 48 PHP_FUNCTION(pcntl_wexitstatus); 49 PHP_FUNCTION(pcntl_wtermsig); 50 PHP_FUNCTION(pcntl_wstopsig); 51 PHP_FUNCTION(pcntl_signal); 52 PHP_FUNCTION(pcntl_signal_get_handler); 53 PHP_FUNCTION(pcntl_signal_dispatch); 54 PHP_FUNCTION(pcntl_get_last_error); 55 PHP_FUNCTION(pcntl_strerror); 56 #ifdef HAVE_SIGPROCMASK 57 PHP_FUNCTION(pcntl_sigprocmask); 58 #endif 59 #ifdef HAVE_STRUCT_SIGINFO_T 60 # if HAVE_SIGWAITINFO && HAVE_SIGTIMEDWAIT 61 PHP_FUNCTION(pcntl_sigwaitinfo); 62 PHP_FUNCTION(pcntl_sigtimedwait); 63 # endif 64 #endif 65 PHP_FUNCTION(pcntl_exec); 66 #ifdef HAVE_GETPRIORITY 67 PHP_FUNCTION(pcntl_getpriority); 68 #endif 69 #ifdef HAVE_SETPRIORITY 70 PHP_FUNCTION(pcntl_setpriority); 71 #endif 72 PHP_FUNCTION(pcntl_async_signals); 73 #ifdef HAVE_UNSHARE 74 PHP_FUNCTION(pcntl_unshare); 75 #endif 76 77 struct php_pcntl_pending_signal { 78 struct php_pcntl_pending_signal *next; 79 zend_long signo; 80 #ifdef HAVE_STRUCT_SIGINFO_T 81 siginfo_t siginfo; 82 #endif 83 }; 84 85 ZEND_BEGIN_MODULE_GLOBALS(pcntl) 86 HashTable php_signal_table; 87 int processing_signal_queue; 88 struct php_pcntl_pending_signal *head, *tail, *spares; 89 int last_error; 90 volatile char pending_signals; 91 zend_bool async_signals; 92 ZEND_END_MODULE_GLOBALS(pcntl) 93 94 #if defined(ZTS) && defined(COMPILE_DL_PCNTL) 95 ZEND_TSRMLS_CACHE_EXTERN() 96 #endif 97 98 ZEND_EXTERN_MODULE_GLOBALS(pcntl) 99 #define PCNTL_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(pcntl, v) 100 101 #define REGISTER_PCNTL_ERRNO_CONSTANT(name) REGISTER_LONG_CONSTANT("PCNTL_" #name, name, CONST_CS | CONST_PERSISTENT) 102 103 #endif /* PHP_PCNTL_H */ 104