|
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