This is Unofficial EPICS BASE Doxygen Site
epicsAtomicDefault.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

EPICS_ATOMIC_INLINE int epicsAtomicIncrIntT (int *pTarget)
 
EPICS_ATOMIC_INLINE size_t epicsAtomicIncrSizeT (size_t *pTarget)
 
EPICS_ATOMIC_INLINE int epicsAtomicDecrIntT (int *pTarget)
 
EPICS_ATOMIC_INLINE size_t epicsAtomicDecrSizeT (size_t *pTarget)
 
EPICS_ATOMIC_INLINE int epicsAtomicAddIntT (int *pTarget, int delta)
 
EPICS_ATOMIC_INLINE size_t epicsAtomicAddSizeT (size_t *pTarget, size_t delta)
 
EPICS_ATOMIC_INLINE size_t epicsAtomicSubSizeT (size_t *pTarget, size_t delta)
 
EPICS_ATOMIC_INLINE void epicsAtomicSetIntT (int *pTarget, int newVal)
 
EPICS_ATOMIC_INLINE void epicsAtomicSetSizeT (size_t *pTarget, size_t newVal)
 
EPICS_ATOMIC_INLINE void epicsAtomicSetPtrT (EpicsAtomicPtrT *pTarget, EpicsAtomicPtrT newVal)
 
EPICS_ATOMIC_INLINE int epicsAtomicGetIntT (const int *pTarget)
 
EPICS_ATOMIC_INLINE size_t epicsAtomicGetSizeT (const size_t *pTarget)
 
EPICS_ATOMIC_INLINE EpicsAtomicPtrT epicsAtomicGetPtrT (const EpicsAtomicPtrT *pTarget)
 
EPICS_ATOMIC_INLINE int epicsAtomicCmpAndSwapIntT (int *pTarget, int oldval, int newval)
 
EPICS_ATOMIC_INLINE size_t epicsAtomicCmpAndSwapSizeT (size_t *pTarget, size_t oldval, size_t newval)
 
EPICS_ATOMIC_INLINE EpicsAtomicPtrT epicsAtomicCmpAndSwapPtrT (EpicsAtomicPtrT *pTarget, EpicsAtomicPtrT oldval, EpicsAtomicPtrT newval)
 

Function Documentation

EPICS_ATOMIC_INLINE int epicsAtomicAddIntT ( int *  pTarget,
int  delta 
)

Definition at line 93 of file epicsAtomicDefault.h.

94 {
96  int result;
97 
98  epicsAtomicLock ( & key );
99  result = *pTarget += delta;
100  epicsAtomicUnlock ( & key );
101  return result;
102 }
pvac::PutEvent result
Definition: clientSync.cpp:117
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE size_t epicsAtomicAddSizeT ( size_t *  pTarget,
size_t  delta 
)

Definition at line 106 of file epicsAtomicDefault.h.

107 {
108  EpicsAtomicLockKey key;
109  size_t result;
110 
111  epicsAtomicLock ( & key );
112  result = *pTarget += delta;
113  epicsAtomicUnlock ( & key );
114  return result;
115 }
pvac::PutEvent result
Definition: clientSync.cpp:117
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE int epicsAtomicCmpAndSwapIntT ( int *  pTarget,
int  oldval,
int  newval 
)

Definition at line 191 of file epicsAtomicDefault.h.

192 {
193  EpicsAtomicLockKey key;
194  int cur;
195 
196  epicsAtomicLock ( & key );
197  cur = *pTarget;
198  if ( cur == oldval ) {
199  *pTarget = newval;
200  }
201  epicsAtomicUnlock ( & key );
202  return cur;
203 }
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE EpicsAtomicPtrT epicsAtomicCmpAndSwapPtrT ( EpicsAtomicPtrT pTarget,
EpicsAtomicPtrT  oldval,
EpicsAtomicPtrT  newval 
)

Definition at line 224 of file epicsAtomicDefault.h.

227 {
228  EpicsAtomicLockKey key;
229  EpicsAtomicPtrT cur;
230 
231  epicsAtomicLock ( & key );
232  cur = *pTarget;
233  if ( cur == oldval ) {
234  *pTarget = newval;
235  }
236  epicsAtomicUnlock ( & key );
237  return cur;
238 }
void * EpicsAtomicPtrT
Definition: epicsAtomic.h:28
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE size_t epicsAtomicCmpAndSwapSizeT ( size_t *  pTarget,
size_t  oldval,
size_t  newval 
)

Definition at line 207 of file epicsAtomicDefault.h.

209 {
210  EpicsAtomicLockKey key;
211  size_t cur;
212 
213  epicsAtomicLock ( & key );
214  cur = *pTarget;
215  if ( cur == oldval ) {
216  *pTarget = newval;
217  }
218  epicsAtomicUnlock ( & key );
219  return cur;
220 }
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE int epicsAtomicDecrIntT ( int *  pTarget)

Definition at line 64 of file epicsAtomicDefault.h.

65 {
67  int result;
68 
69  epicsAtomicLock ( & key );
70  result = --(*pTarget);
71  epicsAtomicUnlock ( & key );
72  return result;
73 }
pvac::PutEvent result
Definition: clientSync.cpp:117
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE size_t epicsAtomicDecrSizeT ( size_t *  pTarget)

Definition at line 77 of file epicsAtomicDefault.h.

78 {
80  size_t result;
81 
82  epicsAtomicLock ( & key );
83  result = --(*pTarget);
84  epicsAtomicUnlock ( & key );
85  return result;
86 }
pvac::PutEvent result
Definition: clientSync.cpp:117
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE int epicsAtomicGetIntT ( const int *  pTarget)

Definition at line 163 of file epicsAtomicDefault.h.

164 {
166  return *pTarget;
167 }
EPICS_ATOMIC_INLINE void epicsAtomicReadMemoryBarrier(void)
Definition: epicsAtomicCD.h:91
EPICS_ATOMIC_INLINE EpicsAtomicPtrT epicsAtomicGetPtrT ( const EpicsAtomicPtrT pTarget)

Definition at line 180 of file epicsAtomicDefault.h.

181 {
183  return *pTarget;
184 }
EPICS_ATOMIC_INLINE void epicsAtomicReadMemoryBarrier(void)
Definition: epicsAtomicCD.h:91
EPICS_ATOMIC_INLINE size_t epicsAtomicGetSizeT ( const size_t *  pTarget)

Definition at line 171 of file epicsAtomicDefault.h.

172 {
174  return *pTarget;
175 }
EPICS_ATOMIC_INLINE void epicsAtomicReadMemoryBarrier(void)
Definition: epicsAtomicCD.h:91
EPICS_ATOMIC_INLINE int epicsAtomicIncrIntT ( int *  pTarget)

Definition at line 35 of file epicsAtomicDefault.h.

36 {
38  int result;
39 
40  epicsAtomicLock ( & key );
41  result = ++(*pTarget);
42  epicsAtomicUnlock ( & key );
43  return result;
44 }
pvac::PutEvent result
Definition: clientSync.cpp:117
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE size_t epicsAtomicIncrSizeT ( size_t *  pTarget)

Definition at line 48 of file epicsAtomicDefault.h.

49 {
51  size_t result;
52 
53  epicsAtomicLock ( & key );
54  result = ++(*pTarget);
55  epicsAtomicUnlock ( & key );
56  return result;
57 }
pvac::PutEvent result
Definition: clientSync.cpp:117
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)
EPICS_ATOMIC_INLINE void epicsAtomicSetIntT ( int *  pTarget,
int  newVal 
)

Definition at line 135 of file epicsAtomicDefault.h.

136 {
137  *pTarget = newVal;
139 }
EPICS_ATOMIC_INLINE void epicsAtomicWriteMemoryBarrier(void)
EPICS_ATOMIC_INLINE void epicsAtomicSetPtrT ( EpicsAtomicPtrT pTarget,
EpicsAtomicPtrT  newVal 
)

Definition at line 151 of file epicsAtomicDefault.h.

153 {
154  *pTarget = newVal;
156 }
EPICS_ATOMIC_INLINE void epicsAtomicWriteMemoryBarrier(void)
EPICS_ATOMIC_INLINE void epicsAtomicSetSizeT ( size_t *  pTarget,
size_t  newVal 
)

Definition at line 143 of file epicsAtomicDefault.h.

144 {
145  *pTarget = newVal;
147 }
EPICS_ATOMIC_INLINE void epicsAtomicWriteMemoryBarrier(void)
EPICS_ATOMIC_INLINE size_t epicsAtomicSubSizeT ( size_t *  pTarget,
size_t  delta 
)

Definition at line 119 of file epicsAtomicDefault.h.

120 {
121  EpicsAtomicLockKey key;
122  size_t result;
123 
124  epicsAtomicLock ( & key );
125  result = *pTarget -= delta;
126  epicsAtomicUnlock ( & key );
127  return result;
128 }
pvac::PutEvent result
Definition: clientSync.cpp:117
void epicsAtomicLock(EpicsAtomicLockKey *)
void epicsAtomicUnlock(EpicsAtomicLockKey *)