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.