v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::base::AsAtomicImpl< TAtomicStorageType > Class Template Reference

#include <atomic-utils.h>

Inheritance diagram for v8::base::AsAtomicImpl< TAtomicStorageType >:
Collaboration diagram for v8::base::AsAtomicImpl< TAtomicStorageType >:

Classes

struct  cast_helper
 
struct  cast_helper< base::StrongAlias< T, U > >
 
struct  cast_helper< U * >
 

Public Types

using AtomicStorageType = TAtomicStorageType
 

Static Public Member Functions

template<typename T >
static T SeqCst_Load (T *addr)
 
template<typename T >
static T Acquire_Load (T *addr)
 
template<typename T >
static T Relaxed_Load (T *addr)
 
template<typename T >
static void SeqCst_Store (T *addr, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static void Release_Store (T *addr, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static void Relaxed_Store (T *addr, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static T SeqCst_Swap (T *addr, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static T Release_CompareAndSwap (T *addr, typename std::remove_reference< T >::type old_value, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static T Relaxed_CompareAndSwap (T *addr, typename std::remove_reference< T >::type old_value, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static T AcquireRelease_CompareAndSwap (T *addr, typename std::remove_reference< T >::type old_value, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static T SeqCst_CompareAndSwap (T *addr, typename std::remove_reference< T >::type old_value, typename std::remove_reference< T >::type new_value)
 
template<typename T >
static bool Release_SetBits (T *addr, T bits, T mask)
 
template<typename T >
static bool Relaxed_SetBits (T *addr, T bits, T mask)
 

Static Private Member Functions

template<typename T >
static AtomicStorageTypeto_storage_addr (T *value)
 
template<typename T >
static const AtomicStorageTypeto_storage_addr (const T *value)
 

Detailed Description

template<typename TAtomicStorageType>
class v8::base::AsAtomicImpl< TAtomicStorageType >

Definition at line 66 of file atomic-utils.h.

Member Typedef Documentation

◆ AtomicStorageType

template<typename TAtomicStorageType >
using v8::base::AsAtomicImpl< TAtomicStorageType >::AtomicStorageType = TAtomicStorageType

Definition at line 68 of file atomic-utils.h.

Member Function Documentation

◆ Acquire_Load()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::Acquire_Load ( T * addr)
inlinestatic

Definition at line 78 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AcquireRelease_CompareAndSwap()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::AcquireRelease_CompareAndSwap ( T * addr,
typename std::remove_reference< T >::type old_value,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 144 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Relaxed_CompareAndSwap()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::Relaxed_CompareAndSwap ( T * addr,
typename std::remove_reference< T >::type old_value,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 134 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Relaxed_Load()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::Relaxed_Load ( T * addr)
inlinestatic

Definition at line 85 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Relaxed_SetBits()

template<typename TAtomicStorageType >
template<typename T >
static bool v8::base::AsAtomicImpl< TAtomicStorageType >::Relaxed_SetBits ( T * addr,
T bits,
T mask )
inlinestatic

Definition at line 183 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Relaxed_Store()

template<typename TAtomicStorageType >
template<typename T >
static void v8::base::AsAtomicImpl< TAtomicStorageType >::Relaxed_Store ( T * addr,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 108 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Release_CompareAndSwap()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::Release_CompareAndSwap ( T * addr,
typename std::remove_reference< T >::type old_value,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 124 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Release_SetBits()

template<typename TAtomicStorageType >
template<typename T >
static bool v8::base::AsAtomicImpl< TAtomicStorageType >::Release_SetBits ( T * addr,
T bits,
T mask )
inlinestatic

Definition at line 166 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Release_Store()

template<typename TAtomicStorageType >
template<typename T >
static void v8::base::AsAtomicImpl< TAtomicStorageType >::Release_Store ( T * addr,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 100 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SeqCst_CompareAndSwap()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::SeqCst_CompareAndSwap ( T * addr,
typename std::remove_reference< T >::type old_value,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 154 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SeqCst_Load()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::SeqCst_Load ( T * addr)
inlinestatic

Definition at line 71 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SeqCst_Store()

template<typename TAtomicStorageType >
template<typename T >
static void v8::base::AsAtomicImpl< TAtomicStorageType >::SeqCst_Store ( T * addr,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 92 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SeqCst_Swap()

template<typename TAtomicStorageType >
template<typename T >
static T v8::base::AsAtomicImpl< TAtomicStorageType >::SeqCst_Swap ( T * addr,
typename std::remove_reference< T >::type new_value )
inlinestatic

Definition at line 116 of file atomic-utils.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ to_storage_addr() [1/2]

template<typename TAtomicStorageType >
template<typename T >
static const AtomicStorageType * v8::base::AsAtomicImpl< TAtomicStorageType >::to_storage_addr ( const T * value)
inlinestaticprivate

Definition at line 232 of file atomic-utils.h.

◆ to_storage_addr() [2/2]

template<typename TAtomicStorageType >
template<typename T >
static AtomicStorageType * v8::base::AsAtomicImpl< TAtomicStorageType >::to_storage_addr ( T * value)
inlinestaticprivate

Definition at line 228 of file atomic-utils.h.

Here is the caller graph for this function:

The documentation for this class was generated from the following file: