From: Dave Botsch Date: Thu, 3 Nov 2016 16:22:21 +0000 (-0400) Subject: Define OSATOMIC_USE_INLINED to get usable atomics on DARWIN X-Git-Tag: upstream/1.8.0_pre1^2~17 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=74f837fd943ddfa20d349a83d6286a0183cb4663;p=packages%2Fo%2Fopenafs.git 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 --- diff --git a/src/rx/rx_atomic.h b/src/rx/rx_atomic.h index dfcb064d9..5bf35fee8 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;