xref: /PHP-7.2/ext/pcntl/php_pcntl.h (revision 7a7ec01a)
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