php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_portability.h File Reference
#include <zend_config.h>
#include "../TSRM/TSRM.h"
#include <stdio.h>
#include <assert.h>
#include <math.h>
#include <stdarg.h>
#include <stddef.h>
#include <limits.h>
#include "zend_range_check.h"

Go to the source code of this file.

Data Structures

union  zend_max_align_t
 

Macros

#define BEGIN_EXTERN_C()
 
#define END_EXTERN_C()
 
#define ZEND_PATHS_SEPARATOR   ':'
 
#define ZEND_GCC_VERSION   0
 
#define __has_attribute(x)
 
#define __has_builtin(x)
 
#define __has_feature(x)
 
#define ZEND_ASSUME(c)
 
#define ZEND_ASSERT(c)
 
#define _ZEND_UNREACHABLE()
 
#define ZEND_UNREACHABLE()
 
#define ZEND_FALLTHROUGH   ((void)0)
 
#define EMPTY_SWITCH_DEFAULT_CASE()
 
#define ZEND_IGNORE_VALUE(x)
 
#define zend_quiet_write(...)
 
#define DL_HANDLE   void *
 
#define ZEND_EXTENSIONS_SUPPORT   0
 
#define ALLOCA_FLAG(name)
 
#define SET_ALLOCA_FLAG(name)
 
#define do_alloca(p, use_heap)
 
#define free_alloca(p, use_heap)
 
#define ZEND_ATTRIBUTE_MALLOC
 
#define ZEND_ATTRIBUTE_ALLOC_SIZE(X)
 
#define ZEND_ATTRIBUTE_ALLOC_SIZE2(X, Y)
 
#define ZEND_ATTRIBUTE_CONST
 
#define ZEND_ATTRIBUTE_FORMAT(type, idx, first)
 
#define ZEND_ATTRIBUTE_PTR_FORMAT(type, idx, first)
 
#define ZEND_ATTRIBUTE_DEPRECATED
 
#define ZEND_ATTRIBUTE_UNUSED
 
#define ZEND_ATTRIBUTE_NONNULL
 
#define ZEND_ATTRIBUTE_NONNULL_ARGS(...)
 
#define ZEND_COLD
 
#define ZEND_OPT_SIZE
 
#define ZEND_OPT_SPEED
 
#define ZEND_ATTRIBUTE_UNUSED_LABEL
 
#define ZEND_ATTRIBUTE_COLD_LABEL
 
#define ZEND_FASTCALL
 
#define ZEND_NORETURN
 
#define ZEND_STACK_ALIGNED
 
#define ZEND_ELEMENT_COUNT(m)
 
#define ZEND_CONST_COND(_condition, _default)
 
#define zend_always_inline   inline
 
#define zend_never_inline
 
#define EXPECTED(condition)
 
#define UNEXPECTED(condition)
 
#define XtOffsetOf(s_type, field)
 
#define SETJMP(a)
 
#define LONGJMP(a, b)
 
#define JMP_BUF   sigjmp_buf
 
#define ZEND_FILE_LINE_D   void
 
#define ZEND_FILE_LINE_DC
 
#define ZEND_FILE_LINE_ORIG_D   void
 
#define ZEND_FILE_LINE_ORIG_DC
 
#define ZEND_FILE_LINE_RELAY_C
 
#define ZEND_FILE_LINE_RELAY_CC
 
#define ZEND_FILE_LINE_C
 
#define ZEND_FILE_LINE_CC
 
#define ZEND_FILE_LINE_EMPTY_C
 
#define ZEND_FILE_LINE_EMPTY_CC
 
#define ZEND_FILE_LINE_ORIG_RELAY_C
 
#define ZEND_FILE_LINE_ORIG_RELAY_CC
 
#define Z_DBG(expr)
 
#define ZTS_V   0
 
#define LONG_MAX   2147483647L
 
#define LONG_MIN   (- LONG_MAX - 1)
 
#define MAX_LENGTH_OF_DOUBLE   32
 
#define MAX(a, b)
 
#define MIN(a, b)
 
#define ZEND_BIT_TEST(bits, bit)
 
#define ZEND_INFINITY   INFINITY
 
#define ZEND_NAN   NAN
 
#define zend_isnan(a)
 
#define zend_isinf(a)
 
#define zend_finite(a)
 
#define ZEND_STRL(str)
 
#define ZEND_STRS(str)
 
#define ZEND_NORMALIZE_BOOL(n)
 
#define ZEND_TRUTH(x)
 
#define ZEND_LOG_XOR(a, b)
 
#define ZEND_THREEWAY_COMPARE(a, b)
 
#define ZEND_MAX_RESERVED_RESOURCES   6
 
#define ZEND_SECURE_ZERO(var, size)
 
#define ZEND_VALID_SOCKET(sock)
 
#define ZEND_INTRIN_SSSE3_FUNC_DECL(func)
 
#define ZEND_INTRIN_SSE4_2_FUNC_DECL(func)
 
#define ZEND_INTRIN_PCLMUL_FUNC_DECL(func)
 
#define ZEND_INTRIN_SSE4_2_PCLMUL_FUNC_DECL(func)
 
#define ZEND_INTRIN_AVX2_FUNC_DECL(func)
 
#define ZEND_INTRIN_AVX512_FUNC_DECL(func)
 
#define ZEND_INTRIN_AVX512_VBMI_FUNC_DECL(func)
 
#define ZEND_SET_ALIGNED(alignment, decl)
 
#define ZEND_SLIDE_TO_ALIGNED(alignment, ptr)
 
#define ZEND_SLIDE_TO_ALIGNED16(ptr)
 
#define ZEND_EXPAND_VA(code)
 
#define ZEND_IGNORE_LEAKS_BEGIN()
 
#define ZEND_IGNORE_LEAKS_END()
 
#define ZEND_VOIDP(ptr)
 
#define ZEND_INDIRECT_RETURN
 
#define __ZEND_DO_PRAGMA(x)
 
#define _ZEND_DO_PRAGMA(x)
 
#define ZEND_DIAGNOSTIC_IGNORED_START(warning)
 
#define ZEND_DIAGNOSTIC_IGNORED_END
 
#define ZEND_CGG_DIAGNOSTIC_IGNORED_START   ZEND_DIAGNOSTIC_IGNORED_START
 
#define ZEND_CGG_DIAGNOSTIC_IGNORED_END   ZEND_DIAGNOSTIC_IGNORED_END
 
#define ZEND_STATIC_ASSERT(c, m)
 

Functions

char * alloca ()
 

Macro Definition Documentation

◆ __has_attribute

#define __has_attribute ( x)
Value:
0

Definition at line 81 of file zend_portability.h.

◆ __has_builtin

#define __has_builtin ( x)
Value:
0

Definition at line 84 of file zend_portability.h.

◆ __has_feature

#define __has_feature ( x)
Value:
0

Definition at line 87 of file zend_portability.h.

◆ __ZEND_DO_PRAGMA

#define __ZEND_DO_PRAGMA ( x)
Value:
_Pragma(#x)

Definition at line 764 of file zend_portability.h.

◆ _ZEND_DO_PRAGMA

#define _ZEND_DO_PRAGMA ( x)
Value:
#define __ZEND_DO_PRAGMA(x)

Definition at line 765 of file zend_portability.h.

◆ _ZEND_UNREACHABLE

#define _ZEND_UNREACHABLE ( )
Value:
#define ZEND_ASSUME(c)

Definition at line 112 of file zend_portability.h.

◆ ALLOCA_FLAG

#define ALLOCA_FLAG ( name)

Definition at line 218 of file zend_portability.h.

◆ BEGIN_EXTERN_C

#define BEGIN_EXTERN_C ( )

Definition at line 28 of file zend_portability.h.

◆ DL_HANDLE

#define DL_HANDLE   void *

Definition at line 185 of file zend_portability.h.

◆ do_alloca

#define do_alloca ( p,
use_heap )
Value:
p
Definition session.c:1105
#define emalloc(size)
Definition zend_alloc.h:151

Definition at line 220 of file zend_portability.h.

◆ EMPTY_SWITCH_DEFAULT_CASE

#define EMPTY_SWITCH_DEFAULT_CASE ( )
Value:
default: ZEND_UNREACHABLE(); break;
#define ZEND_UNREACHABLE()

Definition at line 130 of file zend_portability.h.

◆ END_EXTERN_C

#define END_EXTERN_C ( )

Definition at line 29 of file zend_portability.h.

◆ EXPECTED

#define EXPECTED ( condition)
Value:
(condition)

Definition at line 389 of file zend_portability.h.

◆ free_alloca

#define free_alloca ( p,
use_heap )
Value:
#define efree(ptr)
Definition zend_alloc.h:155

Definition at line 221 of file zend_portability.h.

◆ JMP_BUF

#define JMP_BUF   sigjmp_buf

Definition at line 400 of file zend_portability.h.

◆ LONG_MAX

#define LONG_MAX   2147483647L

Definition at line 448 of file zend_portability.h.

◆ LONG_MIN

#define LONG_MIN   (- LONG_MAX - 1)

Definition at line 452 of file zend_portability.h.

◆ LONGJMP

#define LONGJMP ( a,
b )
Value:
siglongjmp(a, b)
$obj a
Definition test.php:84

Definition at line 399 of file zend_portability.h.

◆ MAX

#define MAX ( a,
b )
Value:
(((a)>(b))?(a):(b))

Definition at line 459 of file zend_portability.h.

◆ MAX_LENGTH_OF_DOUBLE

#define MAX_LENGTH_OF_DOUBLE   32

Definition at line 455 of file zend_portability.h.

◆ MIN

#define MIN ( a,
b )
Value:
(((a)<(b))?(a):(b))

Definition at line 460 of file zend_portability.h.

◆ SET_ALLOCA_FLAG

#define SET_ALLOCA_FLAG ( name)

Definition at line 219 of file zend_portability.h.

◆ SETJMP

#define SETJMP ( a)
Value:
sigsetjmp(a, 0)

Definition at line 398 of file zend_portability.h.

◆ UNEXPECTED

#define UNEXPECTED ( condition)
Value:
(condition)

Definition at line 390 of file zend_portability.h.

◆ XtOffsetOf

#define XtOffsetOf ( s_type,
field )
Value:
offsetof(s_type, field)
#define offsetof(STRUCTURE, FIELD)

Definition at line 394 of file zend_portability.h.

◆ Z_DBG

#define Z_DBG ( expr)

Definition at line 438 of file zend_portability.h.

◆ zend_always_inline

#define zend_always_inline   inline

Definition at line 375 of file zend_portability.h.

◆ ZEND_ASSERT

#define ZEND_ASSERT ( c)
Value:

Definition at line 106 of file zend_portability.h.

◆ ZEND_ASSUME

#define ZEND_ASSUME ( c)

Definition at line 100 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_ALLOC_SIZE

#define ZEND_ATTRIBUTE_ALLOC_SIZE ( X)

Definition at line 236 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_ALLOC_SIZE2

#define ZEND_ATTRIBUTE_ALLOC_SIZE2 ( X,
Y )

Definition at line 237 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_COLD_LABEL

#define ZEND_ATTRIBUTE_COLD_LABEL

Definition at line 302 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_CONST

#define ZEND_ATTRIBUTE_CONST

Definition at line 243 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_DEPRECATED

#define ZEND_ATTRIBUTE_DEPRECATED

Definition at line 263 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_FORMAT

#define ZEND_ATTRIBUTE_FORMAT ( type,
idx,
first )

Definition at line 249 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_MALLOC

#define ZEND_ATTRIBUTE_MALLOC

Definition at line 229 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_NONNULL

#define ZEND_ATTRIBUTE_NONNULL

Definition at line 278 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_NONNULL_ARGS

#define ZEND_ATTRIBUTE_NONNULL_ARGS ( ...)

Definition at line 279 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_PTR_FORMAT

#define ZEND_ATTRIBUTE_PTR_FORMAT ( type,
idx,
first )

Definition at line 255 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_UNUSED

#define ZEND_ATTRIBUTE_UNUSED

Definition at line 269 of file zend_portability.h.

◆ ZEND_ATTRIBUTE_UNUSED_LABEL

#define ZEND_ATTRIBUTE_UNUSED_LABEL

Definition at line 301 of file zend_portability.h.

◆ ZEND_BIT_TEST

#define ZEND_BIT_TEST ( bits,
bit )
Value:
(((bits)[(bit) / (sizeof((bits)[0])*8)] >> ((bit) & (sizeof((bits)[0])*8-1))) & 1)

Definition at line 462 of file zend_portability.h.

◆ ZEND_CGG_DIAGNOSTIC_IGNORED_END

#define ZEND_CGG_DIAGNOSTIC_IGNORED_END   ZEND_DIAGNOSTIC_IGNORED_END
Deprecated

Definition at line 786 of file zend_portability.h.

◆ ZEND_CGG_DIAGNOSTIC_IGNORED_START

#define ZEND_CGG_DIAGNOSTIC_IGNORED_START   ZEND_DIAGNOSTIC_IGNORED_START
Deprecated

Definition at line 784 of file zend_portability.h.

◆ ZEND_COLD

#define ZEND_COLD

Definition at line 292 of file zend_portability.h.

◆ ZEND_CONST_COND

#define ZEND_CONST_COND ( _condition,
_default )
Value:
(_default)

Definition at line 352 of file zend_portability.h.

◆ ZEND_DIAGNOSTIC_IGNORED_END

#define ZEND_DIAGNOSTIC_IGNORED_END

Definition at line 780 of file zend_portability.h.

◆ ZEND_DIAGNOSTIC_IGNORED_START

#define ZEND_DIAGNOSTIC_IGNORED_START ( warning)

Definition at line 779 of file zend_portability.h.

◆ ZEND_ELEMENT_COUNT

#define ZEND_ELEMENT_COUNT ( m)

Definition at line 345 of file zend_portability.h.

◆ ZEND_EXPAND_VA

#define ZEND_EXPAND_VA ( code)
Value:
code

Definition at line 735 of file zend_portability.h.

◆ ZEND_EXTENSIONS_SUPPORT

#define ZEND_EXTENSIONS_SUPPORT   0

Definition at line 186 of file zend_portability.h.

◆ ZEND_FALLTHROUGH

#define ZEND_FALLTHROUGH   ((void)0)

Definition at line 125 of file zend_portability.h.

◆ ZEND_FASTCALL

#define ZEND_FASTCALL

Definition at line 312 of file zend_portability.h.

◆ ZEND_FILE_LINE_C

#define ZEND_FILE_LINE_C

Definition at line 427 of file zend_portability.h.

◆ ZEND_FILE_LINE_CC

#define ZEND_FILE_LINE_CC

Definition at line 428 of file zend_portability.h.

◆ ZEND_FILE_LINE_D

#define ZEND_FILE_LINE_D   void

Definition at line 421 of file zend_portability.h.

◆ ZEND_FILE_LINE_DC

#define ZEND_FILE_LINE_DC

Definition at line 422 of file zend_portability.h.

◆ ZEND_FILE_LINE_EMPTY_C

#define ZEND_FILE_LINE_EMPTY_C

Definition at line 429 of file zend_portability.h.

◆ ZEND_FILE_LINE_EMPTY_CC

#define ZEND_FILE_LINE_EMPTY_CC

Definition at line 430 of file zend_portability.h.

◆ ZEND_FILE_LINE_ORIG_D

#define ZEND_FILE_LINE_ORIG_D   void

Definition at line 423 of file zend_portability.h.

◆ ZEND_FILE_LINE_ORIG_DC

#define ZEND_FILE_LINE_ORIG_DC

Definition at line 424 of file zend_portability.h.

◆ ZEND_FILE_LINE_ORIG_RELAY_C

#define ZEND_FILE_LINE_ORIG_RELAY_C

Definition at line 431 of file zend_portability.h.

◆ ZEND_FILE_LINE_ORIG_RELAY_CC

#define ZEND_FILE_LINE_ORIG_RELAY_CC

Definition at line 432 of file zend_portability.h.

◆ ZEND_FILE_LINE_RELAY_C

#define ZEND_FILE_LINE_RELAY_C

Definition at line 425 of file zend_portability.h.

◆ ZEND_FILE_LINE_RELAY_CC

#define ZEND_FILE_LINE_RELAY_CC

Definition at line 426 of file zend_portability.h.

◆ zend_finite

#define zend_finite ( a)
Value:
isfinite(a)

Definition at line 480 of file zend_portability.h.

◆ ZEND_GCC_VERSION

#define ZEND_GCC_VERSION   0

Definition at line 76 of file zend_portability.h.

◆ ZEND_IGNORE_LEAKS_BEGIN

#define ZEND_IGNORE_LEAKS_BEGIN ( )

Definition at line 747 of file zend_portability.h.

◆ ZEND_IGNORE_LEAKS_END

#define ZEND_IGNORE_LEAKS_END ( )

Definition at line 748 of file zend_portability.h.

◆ ZEND_IGNORE_VALUE

#define ZEND_IGNORE_VALUE ( x)
Value:
((void) (x))
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)

Definition at line 135 of file zend_portability.h.

◆ ZEND_INDIRECT_RETURN

#define ZEND_INDIRECT_RETURN

Definition at line 761 of file zend_portability.h.

◆ ZEND_INFINITY

#define ZEND_INFINITY   INFINITY

Definition at line 465 of file zend_portability.h.

◆ ZEND_INTRIN_AVX2_FUNC_DECL

#define ZEND_INTRIN_AVX2_FUNC_DECL ( func)

Definition at line 675 of file zend_portability.h.

◆ ZEND_INTRIN_AVX512_FUNC_DECL

#define ZEND_INTRIN_AVX512_FUNC_DECL ( func)

Definition at line 695 of file zend_portability.h.

◆ ZEND_INTRIN_AVX512_VBMI_FUNC_DECL

#define ZEND_INTRIN_AVX512_VBMI_FUNC_DECL ( func)

Definition at line 715 of file zend_portability.h.

◆ ZEND_INTRIN_PCLMUL_FUNC_DECL

#define ZEND_INTRIN_PCLMUL_FUNC_DECL ( func)

Definition at line 626 of file zend_portability.h.

◆ ZEND_INTRIN_SSE4_2_FUNC_DECL

#define ZEND_INTRIN_SSE4_2_FUNC_DECL ( func)

Definition at line 600 of file zend_portability.h.

◆ ZEND_INTRIN_SSE4_2_PCLMUL_FUNC_DECL

#define ZEND_INTRIN_SSE4_2_PCLMUL_FUNC_DECL ( func)

Definition at line 652 of file zend_portability.h.

◆ ZEND_INTRIN_SSSE3_FUNC_DECL

#define ZEND_INTRIN_SSSE3_FUNC_DECL ( func)

Definition at line 575 of file zend_portability.h.

◆ zend_isinf

#define zend_isinf ( a)
Value:
isinf(a)

Definition at line 479 of file zend_portability.h.

◆ zend_isnan

#define zend_isnan ( a)
Value:
isnan(a)

Definition at line 478 of file zend_portability.h.

◆ ZEND_LOG_XOR

#define ZEND_LOG_XOR ( a,
b )
Value:
#define ZEND_TRUTH(x)

Definition at line 488 of file zend_portability.h.

◆ ZEND_MAX_RESERVED_RESOURCES

#define ZEND_MAX_RESERVED_RESOURCES   6

Definition at line 496 of file zend_portability.h.

◆ ZEND_NAN

#define ZEND_NAN   NAN

Definition at line 467 of file zend_portability.h.

◆ zend_never_inline

#define zend_never_inline

Definition at line 380 of file zend_portability.h.

◆ ZEND_NORETURN

#define ZEND_NORETURN

Definition at line 322 of file zend_portability.h.

◆ ZEND_NORMALIZE_BOOL

#define ZEND_NORMALIZE_BOOL ( n)
Value:
((n) ? (((n)<0) ? -1 : 1) : 0)
zend_long n
Definition ffi.c:4979

Definition at line 485 of file zend_portability.h.

◆ ZEND_OPT_SIZE

#define ZEND_OPT_SIZE

Definition at line 293 of file zend_portability.h.

◆ ZEND_OPT_SPEED

#define ZEND_OPT_SPEED

Definition at line 294 of file zend_portability.h.

◆ ZEND_PATHS_SEPARATOR

#define ZEND_PATHS_SEPARATOR   ':'

Definition at line 44 of file zend_portability.h.

◆ zend_quiet_write

#define zend_quiet_write ( ...)
Value:
ZEND_IGNORE_VALUE(write(__VA_ARGS__))
#define ZEND_IGNORE_VALUE(x)

Definition at line 138 of file zend_portability.h.

◆ ZEND_SECURE_ZERO

#define ZEND_SECURE_ZERO ( var,
size )
Value:
new_type size
Definition ffi.c:4365
#define explicit_bzero
Definition php.h:179

Definition at line 504 of file zend_portability.h.

◆ ZEND_SET_ALIGNED

#define ZEND_SET_ALIGNED ( alignment,
decl )
Value:
decl

Definition at line 725 of file zend_portability.h.

◆ ZEND_SLIDE_TO_ALIGNED

#define ZEND_SLIDE_TO_ALIGNED ( alignment,
ptr )
Value:
(((uintptr_t)(ptr) + ((alignment)-1)) & ~((alignment)-1))
void * ptr
Definition ffi.c:3814

Definition at line 728 of file zend_portability.h.

◆ ZEND_SLIDE_TO_ALIGNED16

#define ZEND_SLIDE_TO_ALIGNED16 ( ptr)
Value:
#define Z_UL(i)
Definition zend_long.h:49
#define ZEND_SLIDE_TO_ALIGNED(alignment, ptr)

Definition at line 729 of file zend_portability.h.

◆ ZEND_STACK_ALIGNED

#define ZEND_STACK_ALIGNED

Definition at line 328 of file zend_portability.h.

◆ ZEND_STATIC_ASSERT

#define ZEND_STATIC_ASSERT ( c,
m )

Definition at line 791 of file zend_portability.h.

◆ ZEND_STRL

#define ZEND_STRL ( str)
Value:
(str), (sizeof(str)-1)

Definition at line 483 of file zend_portability.h.

◆ ZEND_STRS

#define ZEND_STRS ( str)
Value:
(str), (sizeof(str))

Definition at line 484 of file zend_portability.h.

◆ ZEND_THREEWAY_COMPARE

#define ZEND_THREEWAY_COMPARE ( a,
b )
Value:
((a) == (b) ? 0 : ((a) < (b) ? -1 : 1))

Do a three-way comparison of two integers and returns -1, 0 or 1 depending on whether a is smaller, equal or larger than #b.

Definition at line 494 of file zend_portability.h.

◆ ZEND_TRUTH

#define ZEND_TRUTH ( x)
Value:
((x) ? 1 : 0)

Definition at line 487 of file zend_portability.h.

◆ ZEND_UNREACHABLE

#define ZEND_UNREACHABLE ( )
Value:
#define _ZEND_UNREACHABLE()

Definition at line 118 of file zend_portability.h.

◆ ZEND_VALID_SOCKET

#define ZEND_VALID_SOCKET ( sock)
Value:
((sock) >= 0)

Definition at line 511 of file zend_portability.h.

◆ ZEND_VOIDP

#define ZEND_VOIDP ( ptr)
Value:
(ptr)

Definition at line 755 of file zend_portability.h.

◆ ZTS_V

#define ZTS_V   0

Definition at line 444 of file zend_portability.h.

Function Documentation

◆ alloca()

char * alloca ( )