This is Unofficial EPICS BASE Doxygen Site
epicsAtomicOSD.h File Reference
#include <libComAPI.h>
#include "epicsMMIO.h"
#include "compilerSpecific.h"
#include "epicsInterrupt.h"
#include "epicsAtomicDefault.h"
+ Include dependency graph for epicsAtomicOSD.h:

Go to the source code of this file.

Classes

struct  EpicsAtomicLockKey
 

Macros

#define EPICS_ATOMIC_OS_NAME   "RTEMS"
 

Typedefs

typedef struct EpicsAtomicLockKey EpicsAtomicLockKey
 

Functions

EPICS_ATOMIC_INLINE void epicsAtomicReadMemoryBarrier (void)
 
EPICS_ATOMIC_INLINE void epicsAtomicWriteMemoryBarrier (void)
 
EPICS_ATOMIC_INLINE void epicsAtomicLock (struct EpicsAtomicLockKey *pkey)
 
EPICS_ATOMIC_INLINE void epicsAtomicUnlock (struct EpicsAtomicLockKey *pkey)
 

Macro Definition Documentation

#define EPICS_ATOMIC_OS_NAME   "RTEMS"

Definition at line 24 of file epicsAtomicOSD.h.

Typedef Documentation

Function Documentation

EPICS_ATOMIC_INLINE void epicsAtomicLock ( struct EpicsAtomicLockKey pkey)

Definition at line 48 of file epicsAtomicOSD.h.

49 {
50  pkey->key = epicsInterruptLock();
51 }
LIBCOM_API int epicsInterruptLock(void)
Definition: osdInterrupt.c:34
EPICS_ATOMIC_INLINE void epicsAtomicReadMemoryBarrier ( void  )

Definition at line 35 of file epicsAtomicOSD.h.

36 {
38 }
LIBCOM_API void epicsAtomicMemoryBarrierFallback(void)
EPICS_ATOMIC_INLINE void epicsAtomicUnlock ( struct EpicsAtomicLockKey pkey)

Definition at line 53 of file epicsAtomicOSD.h.

54 {
56 }
LIBCOM_API void epicsInterruptUnlock(int key)
Definition: osdInterrupt.c:41
EPICS_ATOMIC_INLINE void epicsAtomicWriteMemoryBarrier ( void  )

Definition at line 42 of file epicsAtomicOSD.h.

43 {
44  rwbarr();
45 }
#define rwbarr()
Explicit read/write memory barrier Prevents reordering of reads or writes around it.
Definition: epicsMMIODef.h:206