39template<
typename T >
inline
43 __asm__ __volatile__ (
"" :
"=m"(*
const_cast<T*
>(a)));
45 __asm__ __volatile__ (
"" :
"=m"(*
const_cast<T*
>(a)));
48 return *
static_cast<T
const volatile *
>(a);
70template<
typename T,
typename VAL >
inline
73 __asm__ __volatile__ (
"" :
"=m"(*a));
75 __asm__ __volatile__ (
"" : :
"m"(*a));
void write_now(T *a, VAL &&val)
Write a value at an address exactly once.
T access_once(T const *a)
Read the value at an address at most once.