posix env: Implement missing atomic operations

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
This commit is contained in:
Michal Mielewczyk 2025-01-28 16:01:58 +01:00
parent a2272266f6
commit 495c67e74e

10
env/posix/ocf_env.h vendored
View File

@ -1,6 +1,6 @@
/* /*
* Copyright(c) 2019-2022 Intel Corporation * Copyright(c) 2019-2022 Intel Corporation
* Copyright(c) 2023-2024 Huawei Technologies * Copyright(c) 2023-2025 Huawei Technologies
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -378,12 +378,12 @@ typedef struct {
static inline int env_atomic_read(const env_atomic *a) static inline int env_atomic_read(const env_atomic *a)
{ {
return a->counter; /* TODO */ return __atomic_load_n(&a->counter, __ATOMIC_SEQ_CST);
} }
static inline void env_atomic_set(env_atomic *a, int i) static inline void env_atomic_set(env_atomic *a, int i)
{ {
a->counter = i; /* TODO */ __atomic_store_n(&a->counter, i, __ATOMIC_SEQ_CST);
} }
static inline void env_atomic_add(int i, env_atomic *a) static inline void env_atomic_add(int i, env_atomic *a)
@ -453,12 +453,12 @@ static inline int env_atomic_add_unless(env_atomic *a, int i, int u)
static inline long env_atomic64_read(const env_atomic64 *a) static inline long env_atomic64_read(const env_atomic64 *a)
{ {
return a->counter; /* TODO */ return __atomic_load_n(&a->counter, __ATOMIC_SEQ_CST);
} }
static inline void env_atomic64_set(env_atomic64 *a, long i) static inline void env_atomic64_set(env_atomic64 *a, long i)
{ {
a->counter = i; /* TODO */ __atomic_store_n(&a->counter, i, __ATOMIC_SEQ_CST);
} }
static inline void env_atomic64_add(long i, env_atomic64 *a) static inline void env_atomic64_add(long i, env_atomic64 *a)