static_inline int
rx_atomic_test_and_set_bit(rx_atomic_t *atomic, int bit) {
- return (fetch_and_or(&atomic->var, (1<<bit)) & 1<<bit) == 0;
+ return (fetch_and_or(&atomic->var, (1<<bit)) & 1<<bit) != 0;
}
static_inline int
#elif defined(AFS_DARWIN80_ENV) || defined(AFS_USR_DARWIN80_ENV)
-#include <libkern/OSAtomic.h>
-#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 <libkern/OSAtomic.h>
typedef struct {
volatile int var;
#define rx_atomic_inc(X) atomic_inc(X)
#define rx_atomic_inc_and_read(X) atomic_inc_return(X)
#define rx_atomic_add(X, V) atomic_add(V, X)
-#define rx_atomic_add_and_read(X, V) atomic_add_return(V, X);
+#define rx_atomic_add_and_read(X, V) atomic_add_return(V, X)
#define rx_atomic_dec(X) atomic_dec(X)
#define rx_atomic_dec_and_read(X) atomic_dec_return(X)
#define rx_atomic_sub(X, V) atomic_sub(V, X)