Linux business57.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
LiteSpeed
Server IP : 199.188.201.191 & Your IP : 18.222.112.116
Domains :
Cant Read [ /etc/named.conf ]
User : derozboy
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
python313 /
include /
python3.13 /
cpython /
Delete
Unzip
Name
Size
Permission
Date
Action
abstract.h
3.32
KB
-rw-r--r--
2025-02-04 14:51
bytearrayobject.h
1.14
KB
-rw-r--r--
2025-02-04 14:51
bytesobject.h
1.15
KB
-rw-r--r--
2025-02-04 14:51
cellobject.h
1.05
KB
-rw-r--r--
2025-02-04 14:51
ceval.h
1.09
KB
-rw-r--r--
2025-02-04 14:51
classobject.h
2.19
KB
-rw-r--r--
2025-02-04 14:51
code.h
14.77
KB
-rw-r--r--
2025-02-04 14:51
compile.h
2.07
KB
-rw-r--r--
2025-02-04 14:51
complexobject.h
909
B
-rw-r--r--
2025-02-04 14:51
context.h
1.79
KB
-rw-r--r--
2025-02-04 14:51
critical_section.h
5.46
KB
-rw-r--r--
2025-02-04 14:51
descrobject.h
1.56
KB
-rw-r--r--
2025-02-04 14:51
dictobject.h
3.78
KB
-rw-r--r--
2025-02-04 14:51
fileobject.h
652
B
-rw-r--r--
2025-02-04 14:51
fileutils.h
232
B
-rw-r--r--
2025-02-04 14:51
floatobject.h
900
B
-rw-r--r--
2025-02-04 14:51
frameobject.h
1.17
KB
-rw-r--r--
2025-02-04 14:51
funcobject.h
6.88
KB
-rw-r--r--
2025-02-04 14:51
genobject.h
2.93
KB
-rw-r--r--
2025-02-04 14:51
import.h
725
B
-rw-r--r--
2025-02-04 14:51
initconfig.h
8.05
KB
-rw-r--r--
2025-02-04 14:51
listobject.h
1.76
KB
-rw-r--r--
2025-02-04 14:51
lock.h
1.72
KB
-rw-r--r--
2025-02-04 14:51
longintrepr.h
5
KB
-rw-r--r--
2025-02-04 14:51
longobject.h
5.45
KB
-rw-r--r--
2025-02-04 14:51
memoryobject.h
2.17
KB
-rw-r--r--
2025-02-04 14:51
methodobject.h
2.22
KB
-rw-r--r--
2025-02-04 14:51
modsupport.h
1.02
KB
-rw-r--r--
2025-02-04 14:51
monitoring.h
7.52
KB
-rw-r--r--
2025-02-04 14:51
object.h
18.63
KB
-rw-r--r--
2025-02-04 14:51
objimpl.h
3.73
KB
-rw-r--r--
2025-02-04 14:51
odictobject.h
1.28
KB
-rw-r--r--
2025-02-04 14:51
picklebufobject.h
848
B
-rw-r--r--
2025-02-04 14:51
pthread_stubs.h
3.83
KB
-rw-r--r--
2025-02-04 14:51
pyatomic.h
16.14
KB
-rw-r--r--
2025-02-04 14:51
pyatomic_gcc.h
18.68
KB
-rw-r--r--
2025-02-04 14:51
pyatomic_msc.h
28.56
KB
-rw-r--r--
2025-02-04 14:51
pyatomic_std.h
23.77
KB
-rw-r--r--
2025-02-04 14:51
pyctype.h
1.35
KB
-rw-r--r--
2025-02-04 14:51
pydebug.h
1.38
KB
-rw-r--r--
2025-02-04 14:51
pyerrors.h
2.84
KB
-rw-r--r--
2025-02-04 14:51
pyfpe.h
444
B
-rw-r--r--
2025-02-04 14:51
pyframe.h
1.9
KB
-rw-r--r--
2025-02-04 14:51
pyhash.h
1.35
KB
-rw-r--r--
2025-02-04 14:51
pylifecycle.h
2.75
KB
-rw-r--r--
2025-02-04 14:51
pymem.h
2.78
KB
-rw-r--r--
2025-02-04 14:51
pystate.h
9.24
KB
-rw-r--r--
2025-02-04 14:51
pystats.h
5.31
KB
-rw-r--r--
2025-02-04 14:51
pythonrun.h
4.23
KB
-rw-r--r--
2025-02-04 14:51
pythread.h
1.48
KB
-rw-r--r--
2025-02-04 14:51
pytime.h
707
B
-rw-r--r--
2025-02-04 14:51
setobject.h
2
KB
-rw-r--r--
2025-02-04 14:51
sysmodule.h
775
B
-rw-r--r--
2025-02-04 14:51
traceback.h
282
B
-rw-r--r--
2025-02-04 14:51
tracemalloc.h
823
B
-rw-r--r--
2025-02-04 14:51
tupleobject.h
1.3
KB
-rw-r--r--
2025-02-04 14:51
unicodeobject.h
24.49
KB
-rw-r--r--
2025-02-04 14:51
warnings.h
564
B
-rw-r--r--
2025-02-04 14:51
weakrefobject.h
2.2
KB
-rw-r--r--
2025-02-04 14:51
Save
Rename
// This is the implementation of Python atomic operations using GCC's built-in // functions that match the C+11 memory model. This implementation is preferred // for GCC compatible compilers, such as Clang. These functions are available // in GCC 4.8+ without needing to compile with --std=c11 or --std=gnu11. #ifndef Py_ATOMIC_GCC_H # error "this header file must not be included directly" #endif // --- _Py_atomic_add -------------------------------------------------------- static inline int _Py_atomic_add_int(int *obj, int value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline int8_t _Py_atomic_add_int8(int8_t *obj, int8_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline int16_t _Py_atomic_add_int16(int16_t *obj, int16_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline int32_t _Py_atomic_add_int32(int32_t *obj, int32_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline int64_t _Py_atomic_add_int64(int64_t *obj, int64_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline intptr_t _Py_atomic_add_intptr(intptr_t *obj, intptr_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline unsigned int _Py_atomic_add_uint(unsigned int *obj, unsigned int value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline uint8_t _Py_atomic_add_uint8(uint8_t *obj, uint8_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline uint16_t _Py_atomic_add_uint16(uint16_t *obj, uint16_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline uint32_t _Py_atomic_add_uint32(uint32_t *obj, uint32_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline uint64_t _Py_atomic_add_uint64(uint64_t *obj, uint64_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline uintptr_t _Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } static inline Py_ssize_t _Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value) { return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } // --- _Py_atomic_compare_exchange ------------------------------------------- static inline int _Py_atomic_compare_exchange_int(int *obj, int *expected, int desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired) { return __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline int _Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *desired) { return __atomic_compare_exchange_n((void **)obj, (void **)expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } // --- _Py_atomic_exchange --------------------------------------------------- static inline int _Py_atomic_exchange_int(int *obj, int value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline int8_t _Py_atomic_exchange_int8(int8_t *obj, int8_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline int16_t _Py_atomic_exchange_int16(int16_t *obj, int16_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline int32_t _Py_atomic_exchange_int32(int32_t *obj, int32_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline int64_t _Py_atomic_exchange_int64(int64_t *obj, int64_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline intptr_t _Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline unsigned int _Py_atomic_exchange_uint(unsigned int *obj, unsigned int value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline uint8_t _Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline uint16_t _Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline uint32_t _Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline uint64_t _Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline uintptr_t _Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline Py_ssize_t _Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value) { return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } static inline void * _Py_atomic_exchange_ptr(void *obj, void *value) { return __atomic_exchange_n((void **)obj, value, __ATOMIC_SEQ_CST); } // --- _Py_atomic_and -------------------------------------------------------- static inline uint8_t _Py_atomic_and_uint8(uint8_t *obj, uint8_t value) { return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } static inline uint16_t _Py_atomic_and_uint16(uint16_t *obj, uint16_t value) { return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } static inline uint32_t _Py_atomic_and_uint32(uint32_t *obj, uint32_t value) { return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } static inline uint64_t _Py_atomic_and_uint64(uint64_t *obj, uint64_t value) { return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } static inline uintptr_t _Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value) { return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } // --- _Py_atomic_or --------------------------------------------------------- static inline uint8_t _Py_atomic_or_uint8(uint8_t *obj, uint8_t value) { return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } static inline uint16_t _Py_atomic_or_uint16(uint16_t *obj, uint16_t value) { return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } static inline uint32_t _Py_atomic_or_uint32(uint32_t *obj, uint32_t value) { return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } static inline uint64_t _Py_atomic_or_uint64(uint64_t *obj, uint64_t value) { return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } static inline uintptr_t _Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value) { return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } // --- _Py_atomic_load ------------------------------------------------------- static inline int _Py_atomic_load_int(const int *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline int8_t _Py_atomic_load_int8(const int8_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline int16_t _Py_atomic_load_int16(const int16_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline int32_t _Py_atomic_load_int32(const int32_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline int64_t _Py_atomic_load_int64(const int64_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline intptr_t _Py_atomic_load_intptr(const intptr_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline uint8_t _Py_atomic_load_uint8(const uint8_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline uint16_t _Py_atomic_load_uint16(const uint16_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline uint32_t _Py_atomic_load_uint32(const uint32_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline uint64_t _Py_atomic_load_uint64(const uint64_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline uintptr_t _Py_atomic_load_uintptr(const uintptr_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline unsigned int _Py_atomic_load_uint(const unsigned int *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline Py_ssize_t _Py_atomic_load_ssize(const Py_ssize_t *obj) { return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } static inline void * _Py_atomic_load_ptr(const void *obj) { return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_SEQ_CST); } // --- _Py_atomic_load_relaxed ----------------------------------------------- static inline int _Py_atomic_load_int_relaxed(const int *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline int8_t _Py_atomic_load_int8_relaxed(const int8_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline int16_t _Py_atomic_load_int16_relaxed(const int16_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline int32_t _Py_atomic_load_int32_relaxed(const int32_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline int64_t _Py_atomic_load_int64_relaxed(const int64_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline intptr_t _Py_atomic_load_intptr_relaxed(const intptr_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline uint8_t _Py_atomic_load_uint8_relaxed(const uint8_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline uint16_t _Py_atomic_load_uint16_relaxed(const uint16_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline uint32_t _Py_atomic_load_uint32_relaxed(const uint32_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline uint64_t _Py_atomic_load_uint64_relaxed(const uint64_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline uintptr_t _Py_atomic_load_uintptr_relaxed(const uintptr_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline unsigned int _Py_atomic_load_uint_relaxed(const unsigned int *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline Py_ssize_t _Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } static inline void * _Py_atomic_load_ptr_relaxed(const void *obj) { return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_RELAXED); } static inline unsigned long long _Py_atomic_load_ullong_relaxed(const unsigned long long *obj) { return __atomic_load_n(obj, __ATOMIC_RELAXED); } // --- _Py_atomic_store ------------------------------------------------------ static inline void _Py_atomic_store_int(int *obj, int value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_int8(int8_t *obj, int8_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_int16(int16_t *obj, int16_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_int32(int32_t *obj, int32_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_int64(int64_t *obj, int64_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_intptr(intptr_t *obj, intptr_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_uint8(uint8_t *obj, uint8_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_uint16(uint16_t *obj, uint16_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_uint32(uint32_t *obj, uint32_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_uint64(uint64_t *obj, uint64_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_uint(unsigned int *obj, unsigned int value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_ptr(void *obj, void *value) { __atomic_store_n((void **)obj, value, __ATOMIC_SEQ_CST); } static inline void _Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value) { __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } // --- _Py_atomic_store_relaxed ---------------------------------------------- static inline void _Py_atomic_store_int_relaxed(int *obj, int value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_ptr_relaxed(void *obj, void *value) { __atomic_store_n((void **)obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } static inline void _Py_atomic_store_ullong_relaxed(unsigned long long *obj, unsigned long long value) { __atomic_store_n(obj, value, __ATOMIC_RELAXED); } // --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ static inline void * _Py_atomic_load_ptr_acquire(const void *obj) { return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_ACQUIRE); } static inline uintptr_t _Py_atomic_load_uintptr_acquire(const uintptr_t *obj) { return (uintptr_t)__atomic_load_n(obj, __ATOMIC_ACQUIRE); } static inline void _Py_atomic_store_ptr_release(void *obj, void *value) { __atomic_store_n((void **)obj, value, __ATOMIC_RELEASE); } static inline void _Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value) { __atomic_store_n(obj, value, __ATOMIC_RELEASE); } static inline void _Py_atomic_store_int_release(int *obj, int value) { __atomic_store_n(obj, value, __ATOMIC_RELEASE); } static inline void _Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) { __atomic_store_n(obj, value, __ATOMIC_RELEASE); } static inline int _Py_atomic_load_int_acquire(const int *obj) { return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } static inline void _Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value) { __atomic_store_n(obj, value, __ATOMIC_RELEASE); } static inline void _Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value) { __atomic_store_n(obj, value, __ATOMIC_RELEASE); } static inline uint64_t _Py_atomic_load_uint64_acquire(const uint64_t *obj) { return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } static inline uint32_t _Py_atomic_load_uint32_acquire(const uint32_t *obj) { return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } static inline Py_ssize_t _Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) { return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } // --- _Py_atomic_fence ------------------------------------------------------ static inline void _Py_atomic_fence_seq_cst(void) { __atomic_thread_fence(__ATOMIC_SEQ_CST); } static inline void _Py_atomic_fence_acquire(void) { __atomic_thread_fence(__ATOMIC_ACQUIRE); } static inline void _Py_atomic_fence_release(void) { __atomic_thread_fence(__ATOMIC_RELEASE); }