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
and
MakeXS at Sun Oct 24 17:35:34 PDT 2004