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)
This commit is contained in:
Jeff Hill
2011-09-02 09:59:03 -06:00
committed by Andrew Johnson
parent c76b800f2a
commit 1ff2408ba4
2 changed files with 13 additions and 12 deletions

View File

@@ -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 */

View File

@@ -21,7 +21,7 @@
/*
* atomic.h exists only in Solaris 10 or higher
*/
#include <atomic.h>
#include <sys/atomic.h>
#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 */