✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server366.web-hosting.com ​🇻​♯➤ 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 67.223.118.204 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.217.176
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/alt/php82/usr/include/php/Zend//zend_atomic.h
/*
   +----------------------------------------------------------------------+
   | 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


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
10 May 2026 7.33 PM
root / linksafe
0755
Optimizer
--
9 Jun 2026 5.05 AM
root / linksafe
0755
zend.h
15.272 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_API.h
98.022 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_alloc.h
18.826 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_alloc_sizes.h
2.567 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_arena.h
5.921 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_ast.h
12.695 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_atomic.h
5.57 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_attributes.h
5.478 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_attributes_arginfo.h
10.503 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_bitset.h
7.739 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_build.h
1.588 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_builtin_functions.h
1.478 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_builtin_functions_arginfo.h
13.852 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_closures.h
2.236 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_closures_arginfo.h
2.035 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_compile.h
47.688 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_config.h
0.031 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_constants.h
6.549 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_constants_arginfo.h
1.32 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_cpuinfo.h
7.379 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_dtrace.h
2.003 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_enum.h
2.775 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_enum_arginfo.h
1.664 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_errors.h
2.344 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_exceptions.h
4.444 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_exceptions_arginfo.h
17.344 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_execute.h
20.074 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_extensions.h
6.203 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_fibers.h
4.846 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_fibers_arginfo.h
3.485 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_float.h
15.076 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_gc.h
3.82 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_gdb.h
1.387 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_generators.h
7.336 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_generators_arginfo.h
2.722 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_globals.h
8.985 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_globals_macros.h
2.744 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_hash.h
50.108 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_highlight.h
2.242 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_inheritance.h
2.369 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_ini.h
11.647 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_ini_parser.h
2.666 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_ini_scanner.h
1.845 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_ini_scanner_defs.h
0.22 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_interfaces.h
4.021 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_interfaces_arginfo.h
7.841 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_istdiostream.h
1.501 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_iterators.h
3.697 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_language_parser.h
5.959 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_language_scanner.h
2.973 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_language_scanner_defs.h
0.303 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_list.h
3.394 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_llist.h
3.907 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_long.h
4.128 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_map_ptr.h
2.936 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_max_execution_timer.h
1.449 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_mmap.h
1.474 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_modules.h
4.713 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_multibyte.h
4.782 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_multiply.h
9.969 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_object_handlers.h
14.019 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_objects.h
1.771 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_objects_API.h
4.542 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_observer.h
6.248 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_operators.h
33.016 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_portability.h
22.256 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_ptr_stack.h
4.195 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_range_check.h
2.93 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_signal.h
3.979 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_smart_str.h
6.76 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_smart_str_public.h
1.132 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_smart_string.h
4.108 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_smart_string_public.h
1.211 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_sort.h
1.499 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_stack.h
2.304 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_stream.h
3.531 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_string.h
20.23 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_strtod.h
2.101 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_strtod_int.h
3.334 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_system_id.h
1.371 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_type_info.h
4.438 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_types.h
46.475 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_variables.h
2.993 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_virtual_cwd.h
12.702 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm.h
1.947 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm_def.h
281.454 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm_execute.h
2.02 MB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm_handlers.h
89.361 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm_opcodes.h
12.387 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm_trace_handlers.h
3.141 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm_trace_lines.h
1.714 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_vm_trace_map.h
2.603 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_weakrefs.h
2.738 KB
10 May 2026 7.33 PM
root / linksafe
0644
zend_weakrefs_arginfo.h
3.397 KB
10 May 2026 7.33 PM
root / linksafe
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF