Iros
 
Loading...
Searching...
No Matches
irq_controller.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/any/prelude.h"
4#include "di/sync/prelude.h"
5#include "di/util/prelude.h"
6
7namespace iris {
9 using Type = u8;
10};
11
13
14struct IrqLineTag {
15 using Type = u8;
16};
17
19
24
25namespace detail {
26 struct SendEoiFunction : di::Dispatcher<SendEoiFunction, void(di::This&, IrqLine)> {};
27 struct EnableIrqLine : di::Dispatcher<EnableIrqLine, void(di::This&, IrqLine)> {};
28 struct DisableIrqLine : di::Dispatcher<DisableIrqLine, void(di::This&, IrqLine)> {};
29 struct ResponsibleIrqLineRange : di::Dispatcher<ResponsibleIrqLineRange, IrqLineRange(di::This const&)> {};
30}
31
32constexpr inline auto send_eoi = detail::SendEoiFunction {};
33constexpr inline auto enable_irq_line = detail::EnableIrqLine {};
34constexpr inline auto disable_irq_line = detail::DisableIrqLine {};
36
40
42}
Definition strong_int.h:44
Any< Interface, InlineStorage< inline_size, inline_align > > AnyInline
Definition any_inline.h:7
detail::DispatcherImpl< Self, Sig, Tags... > Dispatcher
Definition dispatcher.h:47
__UINT8_TYPE__ u8
Definition integers.h:9
Definition object_pool.h:14
Definition cxx_init.cpp:12
constexpr auto enable_irq_line
Definition irq_controller.h:33
di::meta::List< detail::SendEoiFunction, detail::EnableIrqLine, detail::DisableIrqLine, detail::ResponsibleIrqLineRange > IrqControllerInterface
Definition irq_controller.h:37
di::AnyInline< IrqControllerInterface > IrqController
Definition irq_controller.h:39
di::StrongInt< IrqLineTag > IrqLine
Definition irq_controller.h:18
constexpr auto responsible_irq_line_range
Definition irq_controller.h:35
di::StrongInt< GlobalIrqNumberTag > GlobalIrqNumber
Definition irq_controller.h:12
di::vocab::Expected< T, di::platform::GenericCode > Expected
Definition error.h:324
auto irq_controller_for_interrupt_number(GlobalIrqNumber irq_number) -> Expected< di::Synchronized< IrqController > & >
Definition irq_controller.cpp:6
constexpr auto disable_irq_line
Definition irq_controller.h:34
constexpr auto send_eoi
Definition irq_controller.h:32
Definition core.h:5
Definition irq_controller.h:8
u8 Type
Definition irq_controller.h:9
Definition irq_controller.h:20
IrqLine end_inclusive
Definition irq_controller.h:22
IrqLine start
Definition irq_controller.h:21
Definition irq_controller.h:14
u8 Type
Definition irq_controller.h:15
Definition irq_controller.h:28
Definition irq_controller.h:27
Definition irq_controller.h:29
Definition irq_controller.h:26