| Index: base/atomicops_internals_arm_gcc.h
|
| diff --git a/base/atomicops_internals_arm_gcc.h b/base/atomicops_internals_arm_gcc.h
|
| index 9f4fe2e586e2425270ae2f57da0730bc6bcda8b8..7c3d51dca93e9b1c21f7287d3f1338a2e08e9d10 100644
|
| --- a/base/atomicops_internals_arm_gcc.h
|
| +++ b/base/atomicops_internals_arm_gcc.h
|
| @@ -9,6 +9,10 @@
|
| #ifndef BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
|
| #define BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
|
|
|
| +#if defined(OS_QNX)
|
| +#include <sys/cpuinline.h>
|
| +#endif
|
| +
|
| namespace base {
|
| namespace subtle {
|
|
|
| @@ -40,10 +44,15 @@ namespace subtle {
|
| //
|
|
|
| inline void MemoryBarrier() {
|
| - // Note: This is a function call, which is also an implicit compiler
|
| - // barrier.
|
| +#if defined(OS_LINUX) || defined(OS_ANDROID)
|
| + // Note: This is a function call, which is also an implicit compiler barrier.
|
| typedef void (*KernelMemoryBarrierFunc)();
|
| ((KernelMemoryBarrierFunc)0xffff0fa0)();
|
| +#elif defined(OS_QNX)
|
| + __cpu_membarrier();
|
| +#else
|
| +#error MemoryBarrier() is not implemented on this platform.
|
| +#endif
|
| }
|
|
|
| // An ARM toolchain would only define one of these depending on which
|
|
|