From 74f837fd943ddfa20d349a83d6286a0183cb4663 Mon Sep 17 00:00:00 2001 From: Dave Botsch Date: Thu, 3 Nov 2016 12:22:21 -0400 Subject: [PATCH] Define OSATOMIC_USE_INLINED to get usable atomics on DARWIN In Mac OS 10.12, legacy interfaces for atomic operations have been deprecated. Defining OSATOMIC_USE_INLINED gets us inline implementations of the OSAtomic interfaces in terms of the primitives. This is a transition convenience. Also indent preprocessor directives within the main DARWIN block to improve readability. Change-Id: Id10ae007d5427486f1b0a307a04a90f263201150 Reviewed-on: https://gerrit.openafs.org/12433 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk --- src/rx/rx_atomic.h | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/rx/rx_atomic.h b/src/rx/rx_atomic.h index dfcb064d97..5bf35fee83 100644 --- a/src/rx/rx_atomic.h +++ b/src/rx/rx_atomic.h @@ -184,14 +184,21 @@ rx_atomic_test_and_clear_bit(rx_atomic_t *atomic, int bit) { #elif defined(AFS_DARWIN80_ENV) || defined(AFS_USR_DARWIN80_ENV) -#include -#if defined(KERNEL) && !defined(UKERNEL) -#define OSAtomicIncrement32 OSIncrementAtomic -#define OSAtomicAdd32 OSAddAtomic -#define OSAtomicDecrement32 OSDecrementAtomic -#define OSAtomicOr32 OSBitOrAtomic -#define OSAtomicAnd32 OSBitAndAtomic -#endif +# if defined (AFS_DARWIN160_ENV) || defined(AFS_USR_DARWIN160_ENV) +# define OSATOMIC_USE_INLINED 1 +# else + +# if defined(KERNEL) && !defined(UKERNEL) +# define OSAtomicIncrement32 OSIncrementAtomic +# define OSAtomicAdd32 OSAddAtomic +# define OSAtomicDecrement32 OSDecrementAtomic +# define OSAtomicOr32 OSBitOrAtomic +# define OSAtomicAnd32 OSBitAndAtomic +# endif + +# endif /* end defined DARWIN160 */ + +# include typedef struct { volatile int var;