Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

at_win32_atomic.h

Go to the documentation of this file.
00001 //
00002 // The Austria library is copyright (c) Gianni Mariani 2004.
00003 // 
00004 // Grant Of License.  Grants to LICENSEE the non-exclusive right to use the Austria
00005 // library subject to the terms of the LGPL.
00006 // 
00007 // A copy of the license is available in this directory or one may be found at this URL:
00008 //      http://www.gnu.org/copyleft/lesser.txt
00009 // 
00015 #include "at_exports.h"
00016 
00017 #ifndef x_at_win32_atomic_h_x
00018 #define x_at_win32_atomic_h_x 1
00019 
00020 // Austria namespace
00021 namespace at
00022 {
00023 
00024 // ======== AtomicCountType ===========================================
00030 typedef long AtomicCountType;
00031 
00032 
00033 
00034 // ======== AtomicIncrement ===========================================
00043 AUSTRIA_EXPORT AtomicCountType AtomicIncrement(
00044     volatile AtomicCountType    * io_val
00045 ) throw ();
00046 
00047 // ======== AtomicDecrement ===========================================
00056 AUSTRIA_EXPORT AtomicCountType AtomicDecrement(
00057     volatile AtomicCountType    * io_val
00058 ) throw ();
00059 
00060 // ======== AtomicBump ===========================================
00070 AUSTRIA_EXPORT AtomicCountType AtomicBump(
00071     volatile AtomicCountType    * io_val,
00072     AtomicCountType                i_add_val
00073 ) throw ();
00074 
00075 
00076 
00077 // ======== AtomicExchangeablePointer =================================
00084 typedef void * AtomicExchangeablePointer;
00085 
00086 // ======== AtomicExchangeableValue =================================
00093 typedef long AtomicExchangeableValue;
00094 
00095 
00096 // ======== AtomicExchange =======================================
00107 AUSTRIA_EXPORT AtomicExchangeablePointer AtomicExchange(
00108     volatile AtomicExchangeablePointer      * io_mem_loc,
00109     AtomicExchangeablePointer                 i_val
00110 );
00111 
00112 AUSTRIA_EXPORT AtomicExchangeableValue AtomicExchange(
00113     volatile AtomicExchangeableValue      * io_mem_loc,
00114     AtomicExchangeableValue                 i_val
00115 );
00116 
00117 
00118 // ======== AtomicCompareExchangeValue ================================
00129 AUSTRIA_EXPORT AtomicExchangeableValue AtomicCompareExchange(
00130     volatile AtomicExchangeableValue      * io_mem_loc,
00131     AtomicExchangeableValue                 i_val,
00132     AtomicExchangeableValue                 i_cmp
00133 );
00134 
00135 // ======== AtomicCompareExchangePointer ==============================
00147 AUSTRIA_EXPORT AtomicExchangeablePointer AtomicCompareExchange(
00148     volatile AtomicExchangeablePointer      * io_mem_loc,
00149     AtomicExchangeablePointer                 i_val,
00150     AtomicExchangeablePointer                 i_cmp
00151 );
00152 
00153 }; // namespace
00154 
00155 #endif // x_at_win32_atomic_h_x
00156 
00157 

Generated for Austria by doxygen and MakeXS at Sun Oct 24 17:35:34 PDT 2004