|
1 | 1 | /////////////////////////////////////////////////////////////////////////////// |
2 | | -// Copyright Christopher Kormanyos 2007 - 2024. |
| 2 | +// Copyright Christopher Kormanyos 2007 - 2025. |
3 | 3 | // Distributed under the Boost Software License, |
4 | 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt |
5 | 5 | // or copy at http://www.boost.org/LICENSE_1_0.txt) |
|
26 | 26 | using register_value_type = RegisterValueType; |
27 | 27 | using register_address_type = RegisterAddressType; |
28 | 28 |
|
29 | | - static auto reg_get() -> register_value_type { volatile register_value_type* pa = reinterpret_cast<register_value_type*>(address); return *pa; } |
30 | | - static auto reg_set() -> void { volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); *pa = value; } |
31 | | - static auto reg_and() -> void { volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); *pa = static_cast<register_value_type>(*pa & value); } |
32 | | - static auto reg_or () -> void { volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); *pa = static_cast<register_value_type>(*pa | value); } |
33 | | - static auto reg_not() -> void { volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); *pa = static_cast<register_value_type>(*pa & static_cast<register_value_type>(~value)); } |
| 29 | + static auto reg_get() -> register_value_type { volatile register_value_type* p_addr = reinterpret_cast<register_value_type*>(address); return *p_addr; } |
| 30 | + static auto reg_set() -> void { volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); *p_addr = value; } |
| 31 | + static auto reg_and() -> void { volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); *p_addr = static_cast<register_value_type>(*p_addr & value); } |
| 32 | + static auto reg_or () -> void { volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); *p_addr = static_cast<register_value_type>(*p_addr | value); } |
| 33 | + static auto reg_not() -> void { volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); *p_addr = static_cast<register_value_type>(*p_addr & static_cast<register_value_type>(~value)); } |
34 | 34 |
|
35 | 35 | template<const register_value_type mask_value> |
36 | 36 | static auto reg_msk() -> void |
37 | 37 | { |
38 | | - volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); |
| 38 | + volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); |
39 | 39 |
|
40 | | - *pa = |
| 40 | + *p_addr = |
41 | 41 | static_cast<register_value_type> |
42 | 42 | ( |
43 | 43 | static_cast<register_value_type>(reg_get() & static_cast<register_value_type>(~mask_value)) |
44 | 44 | | value |
45 | 45 | ); |
46 | 46 | } |
47 | 47 |
|
48 | | - static auto bit_set() -> void { volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); *pa = static_cast<register_value_type>(*pa | static_cast<register_value_type>(1ULL << value)); } |
49 | | - static auto bit_clr() -> void { volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); *pa = static_cast<register_value_type>(*pa & static_cast<register_value_type>(~static_cast<register_value_type>(1ULL << value))); } |
50 | | - static auto bit_not() -> void { volatile register_value_type* pa = reinterpret_cast<volatile register_value_type*>(address); *pa = static_cast<register_value_type>(*pa ^ static_cast<register_value_type>(1ULL << value)); } |
| 48 | + static auto bit_set() -> void { volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); *p_addr = static_cast<register_value_type>(*p_addr | static_cast<register_value_type>(1ULL << value)); } |
| 49 | + static auto bit_clr() -> void { volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); *p_addr = static_cast<register_value_type>(*p_addr & static_cast<register_value_type>(~static_cast<register_value_type>(1ULL << value))); } |
| 50 | + static auto bit_not() -> void { volatile register_value_type* p_addr = reinterpret_cast<volatile register_value_type*>(address); *p_addr = static_cast<register_value_type>(*p_addr ^ static_cast<register_value_type>(1ULL << value)); } |
51 | 51 | static auto bit_get() -> bool { return (static_cast<register_value_type>(reg_get() & static_cast<register_value_type>(1ULL << value)) != static_cast<register_value_type>(0U)); } |
52 | 52 | }; |
53 | 53 | } |
|
0 commit comments