|
3 | 3 | #include <interrupt/fwd.hpp> |
4 | 4 | #include <interrupt/policies.hpp> |
5 | 5 |
|
| 6 | +#include <stdx/compiler.hpp> |
6 | 7 | #include <stdx/concepts.hpp> |
7 | 8 | #include <stdx/type_traits.hpp> |
8 | 9 |
|
@@ -44,19 +45,20 @@ template <typename...> inline auto injected_hal = null_hal{}; |
44 | 45 | struct hal { |
45 | 46 | template <typename... Ts> |
46 | 47 | requires(sizeof...(Ts) == 0) |
47 | | - static auto init() -> void { |
| 48 | + ALWAYS_INLINE static auto init() -> void { |
48 | 49 | injected_hal<Ts...>.init(); |
49 | 50 | } |
50 | 51 |
|
51 | 52 | template <bool Enable, irq_num_t IrqNumber, int Priority, typename... Ts> |
52 | 53 | requires(sizeof...(Ts) == 0) |
53 | | - static auto irq_init() -> void { |
| 54 | + ALWAYS_INLINE static auto irq_init() -> void { |
54 | 55 | injected_hal<Ts...>.template irq_init<Enable, IrqNumber, Priority>(); |
55 | 56 | } |
56 | 57 |
|
57 | 58 | template <status_policy P, typename... Ts> |
58 | 59 | requires(sizeof...(Ts) == 0) |
59 | | - static auto run(irq_num_t irq, stdx::invocable auto const &isr) -> void { |
| 60 | + ALWAYS_INLINE static auto run(irq_num_t irq, |
| 61 | + stdx::invocable auto const &isr) -> void { |
60 | 62 | injected_hal<Ts...>.template run<P>(irq, isr); |
61 | 63 | } |
62 | 64 | }; |
|
0 commit comments