This is Unofficial EPICS BASE Doxygen Site
epicsAtomicOSD.h
Go to the documentation of this file.
1 
2 /*************************************************************************\
3 * Copyright (c) 2011 LANS LLC, as Operator of
4 * Los Alamos National Laboratory.
5 * Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
6 * National Laboratory.
7 * EPICS BASE is distributed subject to a Software License Agreement found
8 * in file LICENSE that is included with this distribution.
9 \*************************************************************************/
10 
11 /*
12  * Author Jeffrey O. Hill
13  * johill@lanl.gov
14  */
15 
16 #ifndef epicsAtomicOSD_h
17 #define epicsAtomicOSD_h
18 
19 #define EPICS_ATOMIC_OS_NAME "WIN32"
20 
21 #ifdef VC_EXTRALEAN
22 # define VC_EXTRALEAN_DETECTED_epicsAtomicOSD_h
23 #else
24 # define VC_EXTRALEAN
25 #endif
26 
27 #ifdef STRICT
28 # define STRICT_DETECTED_epicsAtomicOSD_h
29 #else
30 # define STRICT
31 #endif
32 
33 #include "windows.h"
34 
35 #ifndef VC_EXTRALEAN_DETECTED_epicsAtomicOSD_h
36 # undef VC_EXTRALEAN
37 #endif
38 
39 #ifndef STRICT_DETECTED_epicsAtomicOSD_h
40 # undef STRICT
41 #endif
42 
43 #if defined ( _WIN64 )
44 # define MS_ATOMIC_64
45 #endif
46 
47 #define MS_LONG LONG
48 #define MS_InterlockedExchange InterlockedExchange
49 #define MS_InterlockedCompareExchange InterlockedCompareExchange
50 #define MS_InterlockedIncrement InterlockedIncrement
51 #define MS_InterlockedDecrement InterlockedDecrement
52 #define MS_InterlockedExchange InterlockedExchange
53 #define MS_InterlockedExchangeAdd InterlockedExchangeAdd
54 #if defined ( MS_ATOMIC_64 )
55 # define MS_LONGLONG LONGLONG
56 # define MS_InterlockedIncrement64 InterlockedIncrement64
57 # define MS_InterlockedDecrement64 InterlockedDecrement64
58 # define MS_InterlockedExchange64 InterlockedExchange64
59 # define MS_InterlockedExchangeAdd64 InterlockedExchangeAdd64
60 # define MS_InterlockedCompareExchange64 InterlockedCompareExchange64
61 #endif
62 
63 #include "epicsAtomicMS.h"
64 #include "epicsAtomicDefault.h"
65 
66 #endif /* epicsAtomicOSD_h */
67