diff --git a/ext/posix/posix.c b/ext/posix/posix.c index e6655f0d95b..ed7a93c5409 100644 --- a/ext/posix/posix.c +++ b/ext/posix/posix.c @@ -23,7 +23,6 @@ #include "ext/standard/info.h" #include "ext/standard/php_string.h" #include "php_posix.h" -#include "posix_arginfo.h" #ifdef HAVE_POSIX @@ -47,6 +46,8 @@ # include #endif +#include "posix_arginfo.h" + ZEND_DECLARE_MODULE_GLOBALS(posix) static PHP_MINFO_FUNCTION(posix); @@ -71,82 +72,8 @@ static PHP_GINIT_FUNCTION(posix) /* {{{ */ /* {{{ PHP_MINIT_FUNCTION(posix) */ static PHP_MINIT_FUNCTION(posix) { - REGISTER_LONG_CONSTANT("POSIX_F_OK", F_OK, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("POSIX_X_OK", X_OK, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("POSIX_W_OK", W_OK, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("POSIX_R_OK", R_OK, CONST_CS | CONST_PERSISTENT); -#ifdef S_IFREG - REGISTER_LONG_CONSTANT("POSIX_S_IFREG", S_IFREG, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef S_IFCHR - REGISTER_LONG_CONSTANT("POSIX_S_IFCHR", S_IFCHR, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef S_IFBLK - REGISTER_LONG_CONSTANT("POSIX_S_IFBLK", S_IFBLK, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef S_IFIFO - REGISTER_LONG_CONSTANT("POSIX_S_IFIFO", S_IFIFO, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef S_IFSOCK - REGISTER_LONG_CONSTANT("POSIX_S_IFSOCK", S_IFSOCK, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_AS - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_AS", RLIMIT_AS, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_CORE - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_CORE", RLIMIT_CORE, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_CPU - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_CPU", RLIMIT_CPU, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_DATA - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_DATA", RLIMIT_DATA, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_FSIZE - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_FSIZE", RLIMIT_FSIZE, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_LOCKS - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_LOCKS", RLIMIT_LOCKS, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_MEMLOCK - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_MEMLOCK", RLIMIT_MEMLOCK, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_MSGQUEUE - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_MSGQUEUE", RLIMIT_MSGQUEUE, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_NICE - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NICE", RLIMIT_NICE, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_NOFILE - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NOFILE", RLIMIT_NOFILE, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_NPROC - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NPROC", RLIMIT_NPROC, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_RSS - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_RSS", RLIMIT_RSS, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_RTPRIO - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_RTPRIO", RLIMIT_RTPRIO, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_RTTIME - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_RTTIME", RLIMIT_RTTIME, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_SIGPENDING - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_SIGPENDING", RLIMIT_SIGPENDING, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_STACK - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_STACK", RLIMIT_STACK, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_KQUEUES - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_KQUEUES", RLIMIT_KQUEUES, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef RLIMIT_NPTS - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NPTS", RLIMIT_NPTS, CONST_CS | CONST_PERSISTENT); -#endif -#ifdef HAVE_SETRLIMIT - REGISTER_LONG_CONSTANT("POSIX_RLIMIT_INFINITY", RLIM_INFINITY, CONST_CS | CONST_PERSISTENT); -#endif + register_posix_symbols(module_number); + return SUCCESS; } /* }}} */ diff --git a/ext/posix/posix.stub.php b/ext/posix/posix.stub.php index 3904bae912d..d3df0cd69d4 100644 --- a/ext/posix/posix.stub.php +++ b/ext/posix/posix.stub.php @@ -2,6 +2,196 @@ /** @generate-class-entries */ +/** + * @var int + * @cvalue F_OK + */ +const POSIX_F_OK = UNKNOWN; +/** + * @var int + * @cvalue X_OK + */ +const POSIX_X_OK = UNKNOWN; +/** + * @var int + * @cvalue W_OK + */ +const POSIX_W_OK = UNKNOWN; +/** + * @var int + * @cvalue R_OK + */ +const POSIX_R_OK = UNKNOWN; + +#ifdef S_IFREG +/** + * @var int + * @cvalue S_IFREG + */ +const POSIX_S_IFREG = UNKNOWN; +#endif +#ifdef S_IFCHR +/** + * @var int + * @cvalue S_IFCHR + */ +const POSIX_S_IFCHR = UNKNOWN; +#endif +#ifdef S_IFBLK +/** + * @var int + * @cvalue S_IFBLK + */ +const POSIX_S_IFBLK = UNKNOWN; +#endif +#ifdef S_IFIFO +/** + * @var int + * @cvalue S_IFIFO + */ +const POSIX_S_IFIFO = UNKNOWN; +#endif +#ifdef S_IFSOCK +/** + * @var int + * @cvalue S_IFSOCK + */ +const POSIX_S_IFSOCK = UNKNOWN; +#endif +#ifdef RLIMIT_AS +/** + * @var int + * @cvalue RLIMIT_AS + */ +const POSIX_RLIMIT_AS = UNKNOWN; +#endif +#ifdef RLIMIT_CORE +/** + * @var int + * @cvalue RLIMIT_CORE + */ +const POSIX_RLIMIT_CORE = UNKNOWN; +#endif +#ifdef RLIMIT_CPU +/** + * @var int + * @cvalue RLIMIT_CPU + */ +const POSIX_RLIMIT_CPU = UNKNOWN; +#endif +#ifdef RLIMIT_DATA +/** + * @var int + * @cvalue RLIMIT_DATA + */ +const POSIX_RLIMIT_DATA = UNKNOWN; +#endif +#ifdef RLIMIT_FSIZE +/** + * @var int + * @cvalue RLIMIT_FSIZE + */ +const POSIX_RLIMIT_FSIZE = UNKNOWN; +#endif +#ifdef RLIMIT_LOCKS +/** + * @var int + * @cvalue RLIMIT_LOCKS + */ +const POSIX_RLIMIT_LOCKS = UNKNOWN; +#endif +#ifdef RLIMIT_MEMLOCK +/** + * @var int + * @cvalue RLIMIT_MEMLOCK + */ +const POSIX_RLIMIT_MEMLOCK = UNKNOWN; +#endif +#ifdef RLIMIT_MSGQUEUE +/** + * @var int + * @cvalue RLIMIT_MSGQUEUE + */ +const POSIX_RLIMIT_MSGQUEUE = UNKNOWN; +#endif +#ifdef RLIMIT_NICE +/** + * @var int + * @cvalue RLIMIT_NICE + */ +const POSIX_RLIMIT_NICE = UNKNOWN; +#endif +#ifdef RLIMIT_NOFILE +/** + * @var int + * @cvalue RLIMIT_NOFILE + */ +const POSIX_RLIMIT_NOFILE = UNKNOWN; +#endif +#ifdef RLIMIT_NPROC +/** + * @var int + * @cvalue RLIMIT_NPROC + */ +const POSIX_RLIMIT_NPROC = UNKNOWN; +#endif +#ifdef RLIMIT_RSS +/** + * @var int + * @cvalue RLIMIT_RSS + */ +const POSIX_RLIMIT_RSS = UNKNOWN; +#endif +#ifdef RLIMIT_RTPRIO +/** + * @var int + * @cvalue RLIMIT_RTPRIO + */ +const POSIX_RLIMIT_RTPRIO = UNKNOWN; +#endif +#ifdef RLIMIT_RTTIME +/** + * @var int + * @cvalue RLIMIT_RTTIME + */ +const POSIX_RLIMIT_RTTIME = UNKNOWN; +#endif +#ifdef RLIMIT_SIGPENDING +/** + * @var int + * @cvalue RLIMIT_SIGPENDING + */ +const POSIX_RLIMIT_SIGPENDING = UNKNOWN; +#endif +#ifdef RLIMIT_STACK +/** + * @var int + * @cvalue RLIMIT_STACK + */ +const POSIX_RLIMIT_STACK = UNKNOWN; +#endif +#ifdef RLIMIT_KQUEUES +/** + * @var int + * @cvalue RLIMIT_KQUEUES + */ +const POSIX_RLIMIT_KQUEUES = UNKNOWN; +#endif +#ifdef RLIMIT_NPTS +/** + * @var int + * @cvalue RLIMIT_NPTS + */ +const POSIX_RLIMIT_NPTS = UNKNOWN; +#endif +#ifdef HAVE_SETRLIMIT +/** + * @var int + * @cvalue RLIM_INFINITY + */ +const POSIX_RLIMIT_INFINITY = UNKNOWN; +#endif + function posix_kill(int $process_id, int $signal): bool {} function posix_getpid(): int {} diff --git a/ext/posix/posix_arginfo.h b/ext/posix/posix_arginfo.h index 19c423fab16..1f0a2435825 100644 --- a/ext/posix/posix_arginfo.h +++ b/ext/posix/posix_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: b8806b9b67bf24cc64fe1957306f1c720a61ea58 */ + * Stub hash: e7f501e4ca2c30f6bf52ea5912037c1e59743949 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_kill, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, process_id, IS_LONG, 0) @@ -290,3 +290,83 @@ static const zend_function_entry ext_functions[] = { #endif ZEND_FE_END }; + +static void register_posix_symbols(int module_number) +{ + REGISTER_LONG_CONSTANT("POSIX_F_OK", F_OK, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("POSIX_X_OK", X_OK, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("POSIX_W_OK", W_OK, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("POSIX_R_OK", R_OK, CONST_CS | CONST_PERSISTENT); +#if defined(S_IFREG) + REGISTER_LONG_CONSTANT("POSIX_S_IFREG", S_IFREG, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(S_IFCHR) + REGISTER_LONG_CONSTANT("POSIX_S_IFCHR", S_IFCHR, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(S_IFBLK) + REGISTER_LONG_CONSTANT("POSIX_S_IFBLK", S_IFBLK, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(S_IFIFO) + REGISTER_LONG_CONSTANT("POSIX_S_IFIFO", S_IFIFO, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(S_IFSOCK) + REGISTER_LONG_CONSTANT("POSIX_S_IFSOCK", S_IFSOCK, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_AS) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_AS", RLIMIT_AS, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_CORE) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_CORE", RLIMIT_CORE, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_CPU) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_CPU", RLIMIT_CPU, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_DATA) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_DATA", RLIMIT_DATA, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_FSIZE) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_FSIZE", RLIMIT_FSIZE, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_LOCKS) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_LOCKS", RLIMIT_LOCKS, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_MEMLOCK) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_MEMLOCK", RLIMIT_MEMLOCK, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_MSGQUEUE) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_MSGQUEUE", RLIMIT_MSGQUEUE, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_NICE) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NICE", RLIMIT_NICE, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_NOFILE) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NOFILE", RLIMIT_NOFILE, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_NPROC) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NPROC", RLIMIT_NPROC, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_RSS) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_RSS", RLIMIT_RSS, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_RTPRIO) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_RTPRIO", RLIMIT_RTPRIO, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_RTTIME) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_RTTIME", RLIMIT_RTTIME, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_SIGPENDING) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_SIGPENDING", RLIMIT_SIGPENDING, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_STACK) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_STACK", RLIMIT_STACK, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_KQUEUES) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_KQUEUES", RLIMIT_KQUEUES, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(RLIMIT_NPTS) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_NPTS", RLIMIT_NPTS, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(HAVE_SETRLIMIT) + REGISTER_LONG_CONSTANT("POSIX_RLIMIT_INFINITY", RLIM_INFINITY, CONST_CS | CONST_PERSISTENT); +#endif +}