/* +----------------------------------------------------------------------+ | Copyright © The PHP Group and Contributors. | +----------------------------------------------------------------------+ | This source file is subject to the Modified BSD License that is | | bundled with this package in the file LICENSE, and is available | | through the World Wide Web at . | | | | SPDX-License-Identifier: BSD-3-Clause | +----------------------------------------------------------------------+ | Author: Jason Greene | +----------------------------------------------------------------------+ */ #ifndef PHP_PCNTL_H #define PHP_PCNTL_H #include "pcntl_decl.h" #if defined(HAVE_DECL_WCONTINUED) && HAVE_DECL_WCONTINUED == 1 && defined(HAVE_WIFCONTINUED) && HAVE_WIFCONTINUED == 1 #define HAVE_WCONTINUED 1 #endif extern zend_module_entry pcntl_module_entry; #define phpext_pcntl_ptr &pcntl_module_entry #include "php_version.h" #define PHP_PCNTL_VERSION PHP_VERSION PHP_MINIT_FUNCTION(pcntl); PHP_MSHUTDOWN_FUNCTION(pcntl); PHP_RINIT_FUNCTION(pcntl); PHP_RSHUTDOWN_FUNCTION(pcntl); PHP_MINFO_FUNCTION(pcntl); struct php_pcntl_pending_signal { struct php_pcntl_pending_signal *next; zend_long signo; siginfo_t siginfo; }; ZEND_BEGIN_MODULE_GLOBALS(pcntl) HashTable php_signal_table; bool processing_signal_queue; volatile bool pending_signals; bool async_signals; /* some OSes define NSIG to be > UINT8_MAX */ uint16_t num_signals; int last_error; struct php_pcntl_pending_signal *head, *tail, *spares; ZEND_END_MODULE_GLOBALS(pcntl) #if defined(ZTS) && defined(COMPILE_DL_PCNTL) ZEND_TSRMLS_CACHE_EXTERN() #endif ZEND_EXTERN_MODULE_GLOBALS(pcntl) #define PCNTL_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(pcntl, v) #endif /* PHP_PCNTL_H */