AK: Move fence functions to AK/Fences.h

This commit is contained in:
Sönke Holz authored and Sönke Holz committed 2026-08-16 16:57:03 +02:00
1 parent 8444f82579
commit 1320a0512a
6 files changed
+27 -12

No files matched your search

-10
View File
@@ -12,16 +12,6 @@
namespace AK {
static inline void atomic_signal_fence(MemoryOrder order) noexcept
{
return __atomic_signal_fence(order);
}
static inline void atomic_thread_fence(MemoryOrder order) noexcept
{
return __atomic_thread_fence(order);
}
template<typename T>
static inline T atomic_exchange(T volatile* var, T desired, MemoryOrder order = memory_order_seq_cst) noexcept
{
+23
View File
@@ -0,0 +1,23 @@
/*
* Copyright (c) 2026, Sönke Holz <[email protected]>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Types.h>
namespace AK {
static inline void atomic_signal_fence(MemoryOrder order) noexcept
{
return __atomic_signal_fence(order);
}
static inline void atomic_thread_fence(MemoryOrder order) noexcept
{
return __atomic_thread_fence(order);
}
}
+1 -1
View File
@@ -10,7 +10,7 @@
// This header provides architecture-agnostic abstractions for memory fences.
// These fences should only be used to enforce memory ordering constraints when interacting with device memory.
// When no device memory is involved, use atomic_thread_fence() from <AK/Atomic.h>.
// When no device memory is involved, use atomic_thread_fence() from <AK/Fences.h>.
// atomic_thread_fence() is generally not strong enough when interacting with device memory.
namespace Kernel {
+1 -1
View File
@@ -6,7 +6,7 @@
#pragma once
#include <AK/Atomic.h>
#include <AK/Fences.h>
#include <AK/Optional.h>
#include <AK/Types.h>
+1
View File
@@ -5,6 +5,7 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/Fences.h>
#include <AK/Singleton.h>
#include <Kernel/Debug.h>
#include <Kernel/Memory/InodeVMObject.h>
+1
View File
@@ -7,6 +7,7 @@
#pragma once
#include <AK/Atomic.h>
#include <AK/Fences.h>
#include <Kernel/Arch/Processor.h>
namespace Kernel {