Declare ext/posix constants in stubs (#9095)

This commit is contained in:
Máté Kocsis 2022-07-22 13:08:58 +02:00 committed by GitHub
parent f72d264560
commit 17f3631d95
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 275 additions and 78 deletions

View file

@ -23,7 +23,6 @@
#include "ext/standard/info.h" #include "ext/standard/info.h"
#include "ext/standard/php_string.h" #include "ext/standard/php_string.h"
#include "php_posix.h" #include "php_posix.h"
#include "posix_arginfo.h"
#ifdef HAVE_POSIX #ifdef HAVE_POSIX
@ -47,6 +46,8 @@
# include <sys/sysmacros.h> # include <sys/sysmacros.h>
#endif #endif
#include "posix_arginfo.h"
ZEND_DECLARE_MODULE_GLOBALS(posix) ZEND_DECLARE_MODULE_GLOBALS(posix)
static PHP_MINFO_FUNCTION(posix); static PHP_MINFO_FUNCTION(posix);
@ -71,82 +72,8 @@ static PHP_GINIT_FUNCTION(posix) /* {{{ */
/* {{{ PHP_MINIT_FUNCTION(posix) */ /* {{{ PHP_MINIT_FUNCTION(posix) */
static PHP_MINIT_FUNCTION(posix) static PHP_MINIT_FUNCTION(posix)
{ {
REGISTER_LONG_CONSTANT("POSIX_F_OK", F_OK, CONST_CS | CONST_PERSISTENT); register_posix_symbols(module_number);
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
return SUCCESS; return SUCCESS;
} }
/* }}} */ /* }}} */

View file

@ -2,6 +2,196 @@
/** @generate-class-entries */ /** @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_kill(int $process_id, int $signal): bool {}
function posix_getpid(): int {} function posix_getpid(): int {}

View file

@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead. /* 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_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) ZEND_ARG_TYPE_INFO(0, process_id, IS_LONG, 0)
@ -290,3 +290,83 @@ static const zend_function_entry ext_functions[] = {
#endif #endif
ZEND_FE_END 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
}