Use the actually correct define for solaris and gcc
And to avoid future confusion just namespace all of these to OSSL_ Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org> MergeDate: Thu Apr 30 11:52:48 2026 (Merged from https://github.com/openssl/openssl/pull/30738)
This commit is contained in:
parent
01fba667c2
commit
26c5742393
3 changed files with 29 additions and 29 deletions
|
|
@ -105,7 +105,7 @@
|
|||
*/
|
||||
typedef void *pvoid;
|
||||
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
#define ATOMIC_LOAD_N(t, p, o) __atomic_load_n(p, o)
|
||||
#define ATOMIC_STORE_N(t, p, v, o) __atomic_store_n(p, v, o)
|
||||
#define ATOMIC_STORE(t, p, v, o) __atomic_store(p, v, o)
|
||||
|
|
@ -1045,12 +1045,12 @@ int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
|
|||
|
||||
int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*val), val)) {
|
||||
*ret = __atomic_add_fetch(val, amount, __ATOMIC_ACQ_REL);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (ret != NULL) {
|
||||
*ret = atomic_add_int_nv((volatile unsigned int *)val, amount);
|
||||
|
|
@ -1072,12 +1072,12 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
|
|||
int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret,
|
||||
CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*val), val)) {
|
||||
*ret = __atomic_add_fetch(val, op, __ATOMIC_ACQ_REL);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (ret != NULL) {
|
||||
*ret = atomic_add_64_nv(val, op);
|
||||
|
|
@ -1098,12 +1098,12 @@ int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret,
|
|||
int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret,
|
||||
CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*val), val)) {
|
||||
*ret = __atomic_and_fetch(val, op, __ATOMIC_ACQ_REL);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (ret != NULL) {
|
||||
*ret = atomic_and_64_nv(val, op);
|
||||
|
|
@ -1124,12 +1124,12 @@ int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret,
|
|||
int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
|
||||
CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*val), val)) {
|
||||
*ret = __atomic_or_fetch(val, op, __ATOMIC_ACQ_REL);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (ret != NULL) {
|
||||
*ret = atomic_or_64_nv(val, op);
|
||||
|
|
@ -1149,12 +1149,12 @@ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
|
|||
|
||||
int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*val), val)) {
|
||||
__atomic_load(val, ret, __ATOMIC_ACQUIRE);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (ret != NULL) {
|
||||
*ret = atomic_or_64_nv(val, 0);
|
||||
|
|
@ -1172,12 +1172,12 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
|
|||
|
||||
int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*dst), dst)) {
|
||||
__atomic_store(dst, &val, __ATOMIC_RELEASE);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (dst != NULL) {
|
||||
atomic_swap_64(dst, val);
|
||||
|
|
@ -1195,12 +1195,12 @@ int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock)
|
|||
|
||||
int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*val), val)) {
|
||||
__atomic_load(val, ret, __ATOMIC_ACQUIRE);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (ret != NULL) {
|
||||
*ret = (int)atomic_or_uint_nv((unsigned int *)val, 0);
|
||||
|
|
@ -1218,12 +1218,12 @@ int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock)
|
|||
|
||||
int CRYPTO_atomic_store_int(int *dst, int val, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if defined(USE_GCC_ATOMICS)
|
||||
#if defined(OSSL_USE_GCC_ATOMICS)
|
||||
if (__atomic_is_lock_free(sizeof(*dst), dst)) {
|
||||
__atomic_store(dst, &val, __ATOMIC_RELEASE);
|
||||
return 1;
|
||||
}
|
||||
#elif defined(USE_SOLARIS_ATOMICS)
|
||||
#elif defined(OSSL_USE_SOLARIS_ATOMICS)
|
||||
/* This will work for all future Solaris versions. */
|
||||
if (dst != NULL) {
|
||||
atomic_swap_uint((unsigned int)dst, (unsigned int)val);
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ struct rcu_lock_st {
|
|||
/* signal to wake threads waiting on prior_lock */
|
||||
CRYPTO_CONDVAR *prior_signal;
|
||||
|
||||
/* lock used without USE_INTERLOCKEDOR64: VS2010 x86, mingw32 */
|
||||
/* lock used without OSSL_USE_INTERLOCKEDOR64: VS2010 x86, mingw32 */
|
||||
CRYPTO_RWLOCK *rw_lock;
|
||||
};
|
||||
|
||||
|
|
@ -327,7 +327,7 @@ static struct rcu_qp *update_qp(CRYPTO_RCU_LOCK *lock, uint32_t *curr_id)
|
|||
|
||||
/* update the reader index to be the prior qp */
|
||||
tmp = lock->current_alloc_idx;
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
/* This cannot fail, avoid unused result warning */
|
||||
ossl_unused int r = CRYPTO_THREAD_write_lock(lock->rw_lock);
|
||||
lock->reader_idx = tmp;
|
||||
|
|
@ -598,7 +598,7 @@ int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
|
|||
|
||||
int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_write_lock(lock))
|
||||
return 0;
|
||||
|
|
@ -619,7 +619,7 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
|
|||
int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret,
|
||||
CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_write_lock(lock))
|
||||
return 0;
|
||||
|
|
@ -639,7 +639,7 @@ int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret,
|
|||
int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret,
|
||||
CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_write_lock(lock))
|
||||
return 0;
|
||||
|
|
@ -659,7 +659,7 @@ int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret,
|
|||
int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
|
||||
CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_write_lock(lock))
|
||||
return 0;
|
||||
|
|
@ -678,7 +678,7 @@ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
|
|||
|
||||
int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_read_lock(lock))
|
||||
return 0;
|
||||
|
|
@ -695,7 +695,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
|
|||
|
||||
int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_read_lock(lock))
|
||||
return 0;
|
||||
|
|
@ -712,7 +712,7 @@ int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock)
|
|||
|
||||
int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_read_lock(lock))
|
||||
return 0;
|
||||
|
|
@ -730,7 +730,7 @@ int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock)
|
|||
|
||||
int CRYPTO_atomic_store_int(int *dst, int val, CRYPTO_RWLOCK *lock)
|
||||
{
|
||||
#if (!defined(USE_INTERLOCKEDOR64))
|
||||
#if (!defined(OSSL_USE_INTERLOCKEDOR64))
|
||||
OPENSSL_assert(lock != NULL);
|
||||
if (!CRYPTO_THREAD_read_lock(lock))
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -72,10 +72,10 @@ void CRYPTO_THREAD_clean_local(void);
|
|||
|
||||
#if defined(_MSC_VER)
|
||||
#if (!defined(_M_IX86) || _MSC_VER > 1600)
|
||||
#define USE_INTERLOCKEDOR64
|
||||
#define OSSL_USE_INTERLOCKEDOR64
|
||||
#endif
|
||||
#elif defined(__MINGW64__)
|
||||
#define USE_INTERLOCKEDOR64
|
||||
#define OSSL_USE_INTERLOCKEDOR64
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && defined(__ATOMIC_ACQUIRE) && !defined(BROKEN_CLANG_ATOMICS) \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue