35 #ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_ARM_GCC_H_ 36 #define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_ARM_GCC_H_ 63 if (!pLinuxKernelCmpxchg(old_value, new_value,
64 const_cast<Atomic32*>(ptr))) {
68 }
while (prev_value == old_value);
77 }
while (pLinuxKernelCmpxchg(old_value, new_value,
78 const_cast<Atomic32*>(ptr)));
92 Atomic32 new_value = old_value + increment;
93 if (pLinuxKernelCmpxchg(old_value, new_value,
94 const_cast<Atomic32*>(ptr)) == 0) {
119 pLinuxKernelMemoryBarrier();
151 #endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_ARM_GCC_H_ Atomic32(* LinuxKernelCmpxchgFunc)(Atomic32 old_value, Atomic32 new_value, volatile Atomic32 *ptr)
Definition: atomicops_internals_arm_gcc.h:47
void(* LinuxKernelMemoryBarrierFunc)(void)
Definition: atomicops_internals_arm_gcc.h:53
Atomic32 Acquire_Load(volatile const Atomic32 *ptr)
Definition: atomicops_internals_arm64_gcc.h:167
void Acquire_Store(volatile Atomic32 *ptr, Atomic32 value)
Definition: atomicops_internals_arm64_gcc.h:149
Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:52
LinuxKernelCmpxchgFunc pLinuxKernelCmpxchg __attribute__((weak))
void
Definition: AVFoundationCFSoftLinking.h:81
const FieldDescriptor const OneofDescriptor value
Definition: descriptor.h:1717
void Release_Store(volatile Atomic32 *ptr, Atomic32 value)
Definition: atomicops_internals_arm64_gcc.h:154
EGLAttrib * value
Definition: eglext.h:120
Definition: __init__.py:1
Atomic32 Release_Load(volatile const Atomic32 *ptr)
Definition: atomicops_internals_arm64_gcc.h:180
Definition: document.h:393
Atomic32 Release_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:136
Atomic32 Barrier_AtomicIncrement(volatile Atomic32 *ptr, Atomic32 increment)
Definition: atomicops_internals_arm64_gcc.h:118
Definition: gflags_completions.h:115
Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32 *ptr, Atomic32 increment)
Definition: atomicops_internals_arm64_gcc.h:97
int32 Atomic32
Definition: atomicops.h:75
Atomic32 NoBarrier_AtomicExchange(volatile Atomic32 *ptr, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:77
void NoBarrier_Store(volatile Atomic32 *ptr, Atomic32 value)
Definition: atomicops_internals_arm64_gcc.h:145
Atomic32 NoBarrier_Load(volatile const Atomic32 *ptr)
Definition: atomicops_internals_arm64_gcc.h:163
Atomic32 Acquire_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:127
void MemoryBarrier()
Definition: atomicops_internals_arm64_gcc.h:40