From 1ff2408ba4d22518bcf7cea494441c7ae1c675cd Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Fri, 2 Sep 2011 09:59:03 -0600 Subject: [PATCH] o hoping that atomic_inc_ptr_nv and atomic_dec_ptr_nv interface definitions will be available if we use sys/atomic.h instead of atomic.h o fixed issue introduced by last revision where definition of lock functions and lock key were not present if its sunos 5.10 or greater (its time consuming to develop code if you can only run the (SUNPRO) compiler indirectly) --- src/libCom/osi/os/posix/epicsAtomicOSD.h | 11 +++++++++-- src/libCom/osi/os/solaris/epicsAtomicOSD.h | 14 ++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/libCom/osi/os/posix/epicsAtomicOSD.h b/src/libCom/osi/os/posix/epicsAtomicOSD.h index 4f14fa39c..76c70cd54 100644 --- a/src/libCom/osi/os/posix/epicsAtomicOSD.h +++ b/src/libCom/osi/os/posix/epicsAtomicOSD.h @@ -17,11 +17,18 @@ #define epicsAtomicOSD_h struct EpicsAtomicLockKey {}; -epicsShareFunc void epicsAtomicReadMemoryBarrier (); -epicsShareFunc void epicsAtomicWriteMemoryBarrier (); + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + epicsShareFunc void epicsAtomicLock ( struct EpicsAtomicLockKey * ); epicsShareFunc void epicsAtomicUnlock ( struct EpicsAtomicLockKey * ); +#ifdef __cplusplus +} /* end of extern "C" */ +#endif /* __cplusplus */ + #include "epicsAtomicDefault.h" #endif /* epicsAtomicOSD_h */ diff --git a/src/libCom/osi/os/solaris/epicsAtomicOSD.h b/src/libCom/osi/os/solaris/epicsAtomicOSD.h index c2d58cf47..a890994f1 100644 --- a/src/libCom/osi/os/solaris/epicsAtomicOSD.h +++ b/src/libCom/osi/os/solaris/epicsAtomicOSD.h @@ -21,7 +21,7 @@ /* * atomic.h exists only in Solaris 10 or higher */ -#include +#include #include "epicsAssert.h" @@ -157,18 +157,14 @@ EPICS_ATOMIC_INLINE size_t epicsAtomicSubSizeT ( size_t * pTarget, } /* end of extern "C" */ #endif /* __cplusplus */ -#else /* ifdef __SunOS_5_10 */ +#endif /* ifdef __SunOS_5_10 */ + +struct EpicsAtomicLockKey {}; #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ -/* - * its less than 5.10 so we forward reference to the out-of-line posix - * pthread lock implementation of epicsAtomicLock and epicsAtomicUnlock - * before including "epicsAtomicDefault.h" - */ -struct EpicsAtomicLockKey {}; epicsShareFunc void epicsAtomicLock ( struct EpicsAtomicLockKey * ); epicsShareFunc void epicsAtomicUnlock ( struct EpicsAtomicLockKey * ); @@ -176,8 +172,6 @@ epicsShareFunc void epicsAtomicUnlock ( struct EpicsAtomicLockKey * ); } /* end of extern "C" */ #endif /* __cplusplus */ -#endif /* ifdef __SunOS_5_10 */ - #include "epicsAtomicDefault.h" #endif /* epicsAtomicOSD_h */