diff options
Diffstat (limited to 'src/google/protobuf/stubs/atomicops.h')
-rw-r--r-- | src/google/protobuf/stubs/atomicops.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/google/protobuf/stubs/atomicops.h b/src/google/protobuf/stubs/atomicops.h index b1336e36..bbe2d845 100644 --- a/src/google/protobuf/stubs/atomicops.h +++ b/src/google/protobuf/stubs/atomicops.h @@ -62,6 +62,15 @@ namespace google { namespace protobuf { namespace internal { +#if defined(GOOGLE_PROTOBUF_ARCH_POWER) +#if defined(_LP64) || defined(__LP64__) +typedef int32 Atomic32; +typedef intptr_t Atomic64; +#else +typedef intptr_t Atomic32; +typedef int64 Atomic64; +#endif +#else typedef int32 Atomic32; #ifdef GOOGLE_PROTOBUF_ARCH_64_BIT // We need to be able to go between Atomic64 and AtomicWord implicitly. This @@ -75,6 +84,7 @@ typedef int64 Atomic64; typedef intptr_t Atomic64; #endif #endif +#endif // Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or // Atomic64 routines below, depending on your architecture. @@ -179,6 +189,10 @@ GOOGLE_PROTOBUF_ATOMICOPS_ERROR #elif defined(GOOGLE_PROTOBUF_OS_SOLARIS) #include <google/protobuf/stubs/atomicops_internals_solaris.h> +// AIX +#elif defined(GOOGLE_PROTOBUF_OS_AIX) +#include <google/protobuf/stubs/atomicops_internals_aix.h> + // Apple. #elif defined(GOOGLE_PROTOBUF_OS_APPLE) #include <google/protobuf/stubs/atomicops_internals_macosx.h> |