Skip to content

Commit 7bd9fd3

Browse files
committed
a
1 parent 3595296 commit 7bd9fd3

File tree

3 files changed

+18
-17
lines changed

3 files changed

+18
-17
lines changed

src/critnib/critnib.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
*
3-
* Copyright (C) 2023-2024 Intel Corporation
3+
* Copyright (C) 2023-2025 Intel Corporation
44
*
55
* Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
66
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
@@ -148,7 +148,7 @@ static void load64(uint64_t *src, uint64_t *dst) {
148148
* atomic store
149149
*/
150150
static void store(void *dst, void *src) {
151-
utils_atomic_store_release((word *)dst, (word)src);
151+
utils_atomic_store_release((word *)dst, src);
152152
}
153153

154154
/*

src/utils/utils_concurrency.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,12 @@ static __inline unsigned char utils_mssb_index(long long value) {
9898
}
9999

100100
void utils_atomic_load_acquire(void *ptr, void *dest);
101-
void utils_atomic_store_release(void *ptr, long long desired);
102-
void utils_atomic_increment(void *ptr);
103-
void utils_atomic_decrement(void *ptr);
104-
void utils_fetch_and_add64(void *ptr, long long value);
101+
void utils_atomic_store_release(void *ptr, void *desired);
102+
long long utils_atomic_increment(void *ptr);
103+
long long utils_atomic_decrement(void *ptr);
104+
long long utils_fetch_and_add64(void *ptr, long long value);
105105
// NOTE: windows version have different order of args
106-
void utils_compare_exchange(void *ptr, void *desired, void *expected)
106+
void utils_compare_exchange(void *ptr, void *desired, void *expected);
107107

108108
#else // !defined(_WIN32)
109109

src/utils/utils_windows_concurrency.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,33 +73,34 @@ void utils_atomic_load_acquire(void *ptr, void *dest) {
7373
*(long long *)dest = InterlockedOr64Acquire((long long volatile *)ptr, 0);
7474
}
7575

76-
void utils_atomic_store_release(void *ptr, long long desired) {
76+
void utils_atomic_store_release(void *ptr, void *desired) {
7777
ASSERT_IS_ALIGNED((uintptr_t)ptr, 64);
78-
InterlockedExchange64((long long volatile *)ptr, desired);
78+
InterlockedExchange64((long long volatile *)ptr, (long long)desired);
7979
}
8080

81-
void utils_atomic_increment(void *ptr) {
81+
long long utils_atomic_increment(void *ptr) {
8282
ASSERT_IS_ALIGNED((uintptr_t)ptr, 64);
83-
InterlockedIncrement64((long long volatile *)ptr)
83+
return InterlockedIncrement64((long long volatile *)ptr);
8484
}
8585

86-
void utils_atomic_decrement(void *ptr) {
86+
long long utils_atomic_decrement(void *ptr) {
8787
ASSERT_IS_ALIGNED((uintptr_t)ptr, 64);
88-
InterlockedDecrement64((long long volatile *)ptr)
88+
return InterlockedDecrement64((long long volatile *)ptr);
8989
}
9090

91-
void utils_fetch_and_add64(void *ptr, long long value) {
91+
long long utils_fetch_and_add64(void *ptr, long long value) {
9292
ASSERT_IS_ALIGNED((uintptr_t)ptr, 64);
93-
InterlockedExchangeAdd64((long long volatile *)(ptr), value);
93+
// returns the val of *ptr before the operation
94+
return InterlockedExchangeAdd64((long long volatile *)(ptr), value);
9495
}
9596

9697
// NOTE: windows version have different order of args
9798
void utils_compare_exchange(void *ptr, void *desired, void *expected) {
9899
ASSERT_IS_ALIGNED((uintptr_t)ptr, 64);
99100
ASSERT_IS_ALIGNED((uintptr_t)desired, 64);
100101
ASSERT_IS_ALIGNED((uintptr_t)expected, 64);
101-
InterlockedCompareExchange64((long long volatile *)ptr, *expected,
102-
*desired);
102+
InterlockedCompareExchange64((long long volatile *)ptr,
103+
*(long long *)expected, *(long long *)desired);
103104
}
104105

105106
static BOOL CALLBACK initOnceCb(PINIT_ONCE InitOnce, PVOID Parameter,

0 commit comments

Comments
 (0)