9 static constexpr uint32_t Native = 0;
10 static constexpr uint32_t Linux32 = 8;
11 static constexpr uint32_t Query = 0xffffffffU;
13 uint32_t value()
const {
14 return __atomic_load_n(&m_Value, __ATOMIC_ACQUIRE);
16 bool select(uint32_t requested, uint32_t& previous) {
17 if (requested == Query) {
21 if (requested != Native && requested != Linux32)
23 previous = __atomic_exchange_n(&m_Value, requested, __ATOMIC_ACQ_REL);
27 __atomic_store_n(&m_Value, source.value(), __ATOMIC_RELEASE);
31 uint32_t m_Value = Native;