11#include "vecmem/memory/device_address_space.hpp"
12#include "vecmem/memory/memory_order.hpp"
13#include "vecmem/utils/types.hpp"
45 VECMEM_HOST_AND_DEVICE
48 VECMEM_HOST_AND_DEVICE
61 VECMEM_HOST_AND_DEVICE
65 VECMEM_HOST_AND_DEVICE
69 VECMEM_HOST_AND_DEVICE
73 VECMEM_HOST_AND_DEVICE
78 VECMEM_HOST_AND_DEVICE
83 VECMEM_HOST_AND_DEVICE
94 VECMEM_HOST_AND_DEVICE
98 VECMEM_HOST_AND_DEVICE
103 VECMEM_HOST_AND_DEVICE
107 VECMEM_HOST_AND_DEVICE
111 VECMEM_HOST_AND_DEVICE
126#include "vecmem/memory/impl/dummy_device_atomic_ref.ipp"
Dummy / No-op atomic reference for unsupported devices / compilers.
Definition dummy_device_atomic_ref.hpp:27
VECMEM_HOST_AND_DEVICE value_type fetch_sub(value_type data, memory_order order=memory_order::seq_cst) const
Substitute a chosen value from the stored variable.
Definition dummy_device_atomic_ref.ipp:107
VECMEM_HOST_AND_DEVICE value_type exchange(value_type data, memory_order order=memory_order::seq_cst) const
Exchange the current value of the variable with a different one.
Definition dummy_device_atomic_ref.ipp:55
value_type & reference
Reference to a value given by the user.
Definition dummy_device_atomic_ref.hpp:40
VECMEM_HOST_AND_DEVICE void store(value_type data, memory_order order=memory_order::seq_cst) const
Set the variable to the desired value.
Definition dummy_device_atomic_ref.ipp:39
VECMEM_HOST_AND_DEVICE value_type fetch_add(value_type data, memory_order order=memory_order::seq_cst) const
Add a chosen value to the stored variable.
Definition dummy_device_atomic_ref.ipp:97
value_type difference_type
Difference between two objects.
Definition dummy_device_atomic_ref.hpp:36
value_type * pointer
Pointer to the value in global memory.
Definition dummy_device_atomic_ref.hpp:38
dummy_device_atomic_ref & operator=(const dummy_device_atomic_ref &)=delete
Disable the assignment operator.
VECMEM_HOST_AND_DEVICE value_type load(memory_order order=memory_order::seq_cst) const
Get the value of the variable.
Definition dummy_device_atomic_ref.ipp:46
T value_type
Type managed by the object.
Definition dummy_device_atomic_ref.hpp:34
VECMEM_HOST_AND_DEVICE value_type fetch_and(value_type data, memory_order order=memory_order::seq_cst) const
Replace the current value with the specified value AND-ed to it.
Definition dummy_device_atomic_ref.ipp:117
VECMEM_HOST_AND_DEVICE value_type fetch_or(value_type data, memory_order order=memory_order::seq_cst) const
Replace the current value with the specified value OR-d to it.
Definition dummy_device_atomic_ref.ipp:127
VECMEM_HOST_AND_DEVICE bool compare_exchange_strong(reference expected, value_type desired, memory_order success, memory_order failure) const
Compare against the current value, and exchange only if different.
Definition dummy_device_atomic_ref.ipp:82
VECMEM_HOST_AND_DEVICE value_type fetch_xor(value_type data, memory_order order=memory_order::seq_cst) const
Replace the current value with the specified value XOR-d to it.
Definition dummy_device_atomic_ref.ipp:137
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16
device_address_space
Custom definition for the device memory adress space.
Definition device_address_space.hpp:12
std::vector< T, vecmem::polymorphic_allocator< T > > vector
Alias type for vectors with our polymorphic allocator.
Definition vector.hpp:35
memory_order
Custom (dummy) definition for the memory order.
Definition memory_order.hpp:31