RX: Pre-10 Solaris lacks atomic inc/dec
authorAndrew Deason <adeason@sinenomine.net>
Fri, 14 Jan 2011 21:13:46 +0000 (15:13 -0600)
committerJeffrey Altman <jaltman@openafs.org>
Sat, 15 Jan 2011 22:59:26 +0000 (14:59 -0800)
The atomic primitives in Solaris before Solaris 10 lack atomic_inc_32
&co. Make things easier and just implement them in terms of
atomic_add_32 &co when we are older than Solaris 10.

Change-Id: I70c829ef969824efd7843df80bd48e98477a5574
Reviewed-on: http://gerrit.openafs.org/3663
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

src/rx/rx_atomic.h

index e920afc..91bece8 100644 (file)
@@ -145,6 +145,13 @@ typedef atomic_t rx_atomic_t;
 #  include <atomic.h>
 # endif
 
+#ifndef AFS_SUN510_ENV
+# define atomic_inc_32(X)    atomic_add_32((X), 1)
+# define atomic_inc_32_nv(X) atomic_add_32_nv((X), 1)
+# define atomic_dec_32(X)    atomic_add_32((X), -1)
+# define atomic_dec_32_nv(X) atomic_add_32_nv((X), -1)
+#endif
+
 typedef struct {
     volatile unsigned int var;
 } rx_atomic_t;