X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcatomic.h;h=3a49aecf07f039d78de8d1241cd13ed470bbe597;hb=52e57c880aba9c5e89f59d962eb9af75670b76e0;hp=e2719b4c62a537d59310f8613790ea46a78217fb;hpb=6bc07a1a4175d3630257f8f6ae149ee0a1cdd3d9;p=silc.git diff --git a/lib/silcutil/silcatomic.h b/lib/silcutil/silcatomic.h index e2719b4c..3a49aecf 100644 --- a/lib/silcutil/silcatomic.h +++ b/lib/silcutil/silcatomic.h @@ -298,10 +298,10 @@ SILC_ATOMIC_INIT_F(name, bits, type) \ } #endif /* SILC_ATOMIC_MUTEX */ -SILC_ATOMIC_INIT(8, 8, SilcUInt8); -SILC_ATOMIC_INIT(16, 16, SilcUInt16); -SILC_ATOMIC_INIT(32, 32, SilcUInt32); -SILC_ATOMIC_INIT(_pointer, Pointer, void *); +SILC_ATOMIC_INIT(8, 8, SilcUInt8) +SILC_ATOMIC_INIT(16, 16, SilcUInt16) +SILC_ATOMIC_INIT(32, 32, SilcUInt32) +SILC_ATOMIC_INIT(_pointer, Pointer, void *) /****f* silcutil/SilcAtomicAPI/silc_atomic_uninit32 * @@ -372,13 +372,14 @@ SILC_ATOMIC_UNINIT_F(bits, t) \ #define SILC_ATOMIC_UNINIT(bits, t) \ SILC_ATOMIC_UNINIT_F(bits, t) \ { \ + memset(atomic, 0, sizeof(*atomic)); \ } #endif /* SILC_ATOMIC_MUTEX */ -SILC_ATOMIC_UNINIT(8, 8); -SILC_ATOMIC_UNINIT(16, 16); -SILC_ATOMIC_UNINIT(32, 32); -SILC_ATOMIC_UNINIT(_pointer, Pointer); +SILC_ATOMIC_UNINIT(8, 8) +SILC_ATOMIC_UNINIT(16, 16) +SILC_ATOMIC_UNINIT(32, 32) +SILC_ATOMIC_UNINIT(_pointer, Pointer) /****f* silcutil/SilcAtomicAPI/silc_atomic_set_int32 * @@ -478,9 +479,9 @@ SILC_ATOMIC_SET_INT_F(bits) \ } #endif /* !SILC_THREADS */ -SILC_ATOMIC_SET_INT(8, "b", "b"); -SILC_ATOMIC_SET_INT(16, "w", "w"); -SILC_ATOMIC_SET_INT(32, "l", ""); +SILC_ATOMIC_SET_INT(8, "b", "b") +SILC_ATOMIC_SET_INT(16, "w", "w") +SILC_ATOMIC_SET_INT(32, "l", "") /****f* silcutil/SilcAtomicAPI/silc_atomic_set_pointer * @@ -617,9 +618,9 @@ SILC_ATOMIC_GET_INT_F(bits) \ } #endif /* !SILC_THREADS */ -SILC_ATOMIC_GET_INT(8); -SILC_ATOMIC_GET_INT(16); -SILC_ATOMIC_GET_INT(32); +SILC_ATOMIC_GET_INT(8) +SILC_ATOMIC_GET_INT(16) +SILC_ATOMIC_GET_INT(32) /****f* silcutil/SilcAtomicAPI/silc_atomic_get_pointer * @@ -680,7 +681,7 @@ void *silc_atomic_get_pointer(SilcAtomicPointer *atomic) * ***/ -/****f* silcutil/SilcAtomicAPI/silc_atomic_add_int32 +/****f* silcutil/SilcAtomicAPI/silc_atomic_add_int16 * * SYNOPSIS * @@ -789,9 +790,9 @@ SILC_ATOMIC_ADD_INT_F(bits) \ } #endif /* !SILC_THREADS */ -SILC_ATOMIC_ADD_INT(8, "b"); -SILC_ATOMIC_ADD_INT(16, "w"); -SILC_ATOMIC_ADD_INT(32, "l"); +SILC_ATOMIC_ADD_INT(8, "b") +SILC_ATOMIC_ADD_INT(16, "w") +SILC_ATOMIC_ADD_INT(32, "l") /****f* silcutil/SilcAtomicAPI/silc_atomic_sub_int32 * @@ -941,9 +942,9 @@ SILC_ATOMIC_INC_F(bits) \ } #endif /* !SILC_THREADS */ -SILC_ATOMIC_INC(8, "b"); -SILC_ATOMIC_INC(16, "w"); -SILC_ATOMIC_INC(32, "l"); +SILC_ATOMIC_INC(8, "b") +SILC_ATOMIC_INC(16, "w") +SILC_ATOMIC_INC(32, "l") /****f* silcutil/SilcAtomicAPI/silc_atomic_dec32 * @@ -1047,9 +1048,9 @@ SILC_ATOMIC_DEC_F(bits) \ } #endif /* !SILC_THREADS */ -SILC_ATOMIC_DEC(8, "b"); -SILC_ATOMIC_DEC(16, "w"); -SILC_ATOMIC_DEC(32, "l"); +SILC_ATOMIC_DEC(8, "b") +SILC_ATOMIC_DEC(16, "w") +SILC_ATOMIC_DEC(32, "l") /****f* silcutil/SilcAtomicAPI/silc_atomic_cas32 * @@ -1173,9 +1174,9 @@ SILC_ATOMIC_CAS_F(bits) \ } #endif /* !SILC_THREADS */ -SILC_ATOMIC_CAS(8, "b"); -SILC_ATOMIC_CAS(16, "w"); -SILC_ATOMIC_CAS(32, "l"); +SILC_ATOMIC_CAS(8, "b") +SILC_ATOMIC_CAS(16, "w") +SILC_ATOMIC_CAS(32, "l") /****f* silcutil/SilcAtomicAPI/silc_atomic_cas_pointer * @@ -1208,7 +1209,8 @@ SilcBool silc_atomic_cas_pointer(SilcAtomicPointer *atomic, void *old_val, #elif defined(SILC_WIN32) /* Windows */ - return InterlockedCompareExchangePointer(&atomic->value, n, o) == o; + return InterlockedCompareExchangePointer(&atomic->value, new_val, old_val) + == old_val; #elif defined(__GNUC__) && defined(SILC_I486) /* GCC + i486 */