/
opt
/
alt
/
php83
/
usr
/
include
/
php
/
Zend
/
/opt/alt/php83/usr/include/php/Zend
mkdir
upload
Name
Size
Mode
Actions
Optimizer/
-
0755
rm
zend.h
15916
0644
edit
dl
rm
zend_alloc.h
19278
0644
edit
dl
rm
zend_alloc_sizes.h
2629
0644
edit
dl
rm
zend_API.h
105866
0644
edit
dl
rm
zend_arena.h
6063
0644
edit
dl
rm
zend_ast.h
13340
0644
edit
dl
rm
zend_atomic.h
5704
0644
edit
dl
rm
zend_attributes.h
5661
0644
edit
dl
rm
zend_attributes_arginfo.h
12397
0644
edit
dl
rm
zend_bitset.h
8041
0644
edit
dl
rm
zend_build.h
1626
0644
edit
dl
rm
zend_builtin_functions.h
1513
0644
edit
dl
rm
zend_builtin_functions_arginfo.h
14190
0644
edit
dl
rm
zend_call_stack.h
2875
0644
edit
dl
rm
zend_closures.h
2290
0644
edit
dl
rm
zend_closures_arginfo.h
2084
0644
edit
dl
rm
zend_compile.h
50052
0644
edit
dl
rm
zend_config.h
32
0644
edit
dl
rm
zend_constants.h
6706
0644
edit
dl
rm
zend_constants_arginfo.h
1876
0644
edit
dl
rm
zend_cpuinfo.h
9097
0644
edit
dl
rm
zend_dtrace.h
2051
0644
edit
dl
rm
zend_enum.h
2924
0644
edit
dl
rm
zend_enum_arginfo.h
1704
0644
edit
dl
rm
zend_errors.h
2400
0644
edit
dl
rm
zend_exceptions.h
4551
0644
edit
dl
rm
zend_exceptions_arginfo.h
17916
0644
edit
dl
rm
zend_execute.h
22747
0644
edit
dl
rm
zend_extensions.h
6352
0644
edit
dl
rm
zend_fibers.h
5162
0644
edit
dl
rm
zend_fibers_arginfo.h
3569
0644
edit
dl
rm
zend_float.h
15438
0644
edit
dl
rm
zend_gc.h
4668
0644
edit
dl
rm
zend_gdb.h
1420
0644
edit
dl
rm
zend_generators.h
7515
0644
edit
dl
rm
zend_generators_arginfo.h
2787
0644
edit
dl
rm
zend_globals.h
9751
0644
edit
dl
rm
zend_globals_macros.h
2810
0644
edit
dl
rm
zend_hash.h
51307
0644
edit
dl
rm
zend_highlight.h
2296
0644
edit
dl
rm
zend_hrtime.h
3842
0644
edit
dl
rm
zend_inheritance.h
2487
0644
edit
dl
rm
zend_ini.h
12136
0644
edit
dl
rm
zend_ini_parser.h
2753
0644
edit
dl
rm
zend_ini_scanner.h
1901
0644
edit
dl
rm
zend_ini_scanner_defs.h
246
0644
edit
dl
rm
zend_interfaces.h
4118
0644
edit
dl
rm
zend_interfaces_arginfo.h
8029
0644
edit
dl
rm
zend_istdiostream.h
1537
0644
edit
dl
rm
zend_iterators.h
3786
0644
edit
dl
rm
zend_language_parser.h
6102
0644
edit
dl
rm
zend_language_scanner.h
3044
0644
edit
dl
rm
zend_language_scanner_defs.h
310
0644
edit
dl
rm
zend_list.h
3483
0644
edit
dl
rm
zend_llist.h
4001
0644
edit
dl
rm
zend_long.h
4227
0644
edit
dl
rm
zend_map_ptr.h
3006
0644
edit
dl
rm
zend_max_execution_timer.h
1484
0644
edit
dl
rm
zend_mmap.h
1512
0644
edit
dl
rm
zend_modules.h
4826
0644
edit
dl
rm
zend_multibyte.h
4913
0644
edit
dl
rm
zend_multiply.h
10208
0644
edit
dl
rm
zend_objects.h
1814
0644
edit
dl
rm
zend_objects_API.h
4631
0644
edit
dl
rm
zend_object_handlers.h
14563
0644
edit
dl
rm
zend_observer.h
6398
0644
edit
dl
rm
zend_operators.h
33783
0644
edit
dl
rm
zend_portability.h
24351
0644
edit
dl
rm
zend_ptr_stack.h
4296
0644
edit
dl
rm
zend_range_check.h
3000
0644
edit
dl
rm
zend_signal.h
4074
0644
edit
dl
rm
zend_smart_str.h
6934
0644
edit
dl
rm
zend_smart_string.h
4207
0644
edit
dl
rm
zend_smart_string_public.h
1240
0644
edit
dl
rm
zend_smart_str_public.h
1159
0644
edit
dl
rm
zend_sort.h
1535
0644
edit
dl
rm
zend_stack.h
2411
0644
edit
dl
rm
zend_stream.h
3616
0644
edit
dl
rm
zend_string.h
22407
0644
edit
dl
rm
zend_strtod.h
2151
0644
edit
dl
rm
zend_strtod_int.h
3135
0644
edit
dl
rm
zend_system_id.h
1404
0644
edit
dl
rm
zend_types.h
52036
0644
edit
dl
rm
zend_type_info.h
4544
0644
edit
dl
rm
zend_variables.h
3065
0644
edit
dl
rm
zend_virtual_cwd.h
13151
0644
edit
dl
rm
zend_vm.h
1994
0644
edit
dl
rm
zend_vm_def.h
292980
0644
edit
dl
rm
zend_vm_execute.h
2157964
0644
edit
dl
rm
zend_vm_handlers.h
92207
0644
edit
dl
rm
zend_vm_opcodes.h
12719
0644
edit
dl
rm
zend_vm_trace_handlers.h
3216
0644
edit
dl
rm
zend_vm_trace_lines.h
1755
0644
edit
dl
rm
zend_vm_trace_map.h
2665
0644
edit
dl
rm
zend_weakrefs.h
3226
0644
edit
dl
rm
zend_weakrefs_arginfo.h
3479
0644
edit
dl
rm
Edit:
/opt/alt/php83/usr/include/php/Zend/zend_atomic.h
(5704B)
/* +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | https://www.php.net/license/3_01.txt | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Levi Morrison <morrison.levi@gmail.com> | +----------------------------------------------------------------------+ */ #ifndef ZEND_ATOMIC_H #define ZEND_ATOMIC_H #include "zend_portability.h" #include <stdbool.h> #define ZEND_GCC_PREREQ(x, y) \ ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || (__GNUC__ > (x))) /* Builtins are used to avoid library linkage */ #if __has_feature(c_atomic) && defined(__clang__) #define HAVE_C11_ATOMICS 1 #elif ZEND_GCC_PREREQ(4, 7) #define HAVE_GNUC_ATOMICS 1 #elif defined(__GNUC__) #define HAVE_SYNC_ATOMICS 1 #elif !defined(ZEND_WIN32) #define HAVE_NO_ATOMICS 1 #endif #undef ZEND_GCC_PREREQ /* Treat zend_atomic_* types as opaque. They have definitions only for size * and alignment purposes. */ #if defined(ZEND_WIN32) || defined(HAVE_SYNC_ATOMICS) typedef struct zend_atomic_bool_s { volatile char value; } zend_atomic_bool; #elif defined(HAVE_C11_ATOMICS) typedef struct zend_atomic_bool_s { _Atomic(bool) value; } zend_atomic_bool; #else typedef struct zend_atomic_bool_s { volatile bool value; } zend_atomic_bool; #endif BEGIN_EXTERN_C() #ifdef ZEND_WIN32 #ifndef InterlockedExchange8 #define InterlockedExchange8 _InterlockedExchange8 #endif #ifndef InterlockedOr8 #define InterlockedOr8 _InterlockedOr8 #endif #define ZEND_ATOMIC_BOOL_INIT(obj, desired) ((obj)->value = (desired)) static zend_always_inline bool zend_atomic_bool_exchange_ex(zend_atomic_bool *obj, bool desired) { return InterlockedExchange8(&obj->value, desired); } /* On this platform it is non-const due to Iterlocked API*/ static zend_always_inline bool zend_atomic_bool_load_ex(zend_atomic_bool *obj) { /* Or'ing with false won't change the value. */ return InterlockedOr8(&obj->value, false); } static zend_always_inline void zend_atomic_bool_store_ex(zend_atomic_bool *obj, bool desired) { (void)InterlockedExchange8(&obj->value, desired); } #elif defined(HAVE_C11_ATOMICS) #define ZEND_ATOMIC_BOOL_INIT(obj, desired) __c11_atomic_init(&(obj)->value, (desired)) static zend_always_inline bool zend_atomic_bool_exchange_ex(zend_atomic_bool *obj, bool desired) { return __c11_atomic_exchange(&obj->value, desired, __ATOMIC_SEQ_CST); } static zend_always_inline bool zend_atomic_bool_load_ex(const zend_atomic_bool *obj) { return __c11_atomic_load(&obj->value, __ATOMIC_SEQ_CST); } static zend_always_inline void zend_atomic_bool_store_ex(zend_atomic_bool *obj, bool desired) { __c11_atomic_store(&obj->value, desired, __ATOMIC_SEQ_CST); } #elif defined(HAVE_GNUC_ATOMICS) #define ZEND_ATOMIC_BOOL_INIT(obj, desired) ((obj)->value = (desired)) static zend_always_inline bool zend_atomic_bool_exchange_ex(zend_atomic_bool *obj, bool desired) { bool prev = false; __atomic_exchange(&obj->value, &desired, &prev, __ATOMIC_SEQ_CST); return prev; } static zend_always_inline bool zend_atomic_bool_load_ex(const zend_atomic_bool *obj) { bool prev = false; __atomic_load(&obj->value, &prev, __ATOMIC_SEQ_CST); return prev; } static zend_always_inline void zend_atomic_bool_store_ex(zend_atomic_bool *obj, bool desired) { __atomic_store(&obj->value, &desired, __ATOMIC_SEQ_CST); } #elif defined(HAVE_SYNC_ATOMICS) #define ZEND_ATOMIC_BOOL_INIT(obj, desired) ((obj)->value = (desired)) static zend_always_inline bool zend_atomic_bool_exchange_ex(zend_atomic_bool *obj, bool desired) { bool prev = __sync_lock_test_and_set(&obj->value, desired); /* __sync_lock_test_and_set only does an acquire barrier, so sync * immediately after. */ __sync_synchronize(); return prev; } static zend_always_inline bool zend_atomic_bool_load_ex(zend_atomic_bool *obj) { /* Or'ing false won't change the value */ return __sync_fetch_and_or(&obj->value, false); } static zend_always_inline void zend_atomic_bool_store_ex(zend_atomic_bool *obj, bool desired) { __sync_synchronize(); obj->value = desired; __sync_synchronize(); } #elif defined(HAVE_NO_ATOMICS) #warning No atomics support detected. Please open an issue with platform details. #define ZEND_ATOMIC_BOOL_INIT(obj, desired) ((obj)->value = (desired)) static zend_always_inline void zend_atomic_bool_store_ex(zend_atomic_bool *obj, bool desired) { obj->value = desired; } static zend_always_inline bool zend_atomic_bool_load_ex(const zend_atomic_bool *obj) { return obj->value; } static zend_always_inline bool zend_atomic_bool_exchange_ex(zend_atomic_bool *obj, bool desired) { bool prev = obj->value; obj->value = desired; return prev; } #endif ZEND_API void zend_atomic_bool_init(zend_atomic_bool *obj, bool desired); ZEND_API bool zend_atomic_bool_exchange(zend_atomic_bool *obj, bool desired); ZEND_API void zend_atomic_bool_store(zend_atomic_bool *obj, bool desired); #if defined(ZEND_WIN32) || defined(HAVE_SYNC_ATOMICS) /* On these platforms it is non-const due to underlying APIs. */ ZEND_API bool zend_atomic_bool_load(zend_atomic_bool *obj); #else ZEND_API bool zend_atomic_bool_load(const zend_atomic_bool *obj); #endif END_EXTERN_C() #endif
Save
cmd:
run