4 class InterruptController
;
6 #include <drivers/bus/FDT.h>
7 #include <private/kernel/int.h>
8 #include <private/kernel/timer.h>
10 // ------------------------------------------------------ InterruptController
12 class InterruptController
{
14 virtual void EnableInterrupt(int irq
) = 0;
15 virtual void DisableInterrupt(int irq
) = 0;
17 virtual void HandleInterrupt() = 0;
19 static InterruptController
* Get() {
24 InterruptController(fdt_module_info
*fdtModule
, fdt_device_node node
)
25 : fFDT(fdtModule
), fNode(node
) {
27 panic("Multiple InterruptController objects created; that is currently unsupported!");
32 // Keep our node around as we might want to grab attributes from it
33 fdt_module_info
*fFDT
;
34 fdt_device_node fNode
;
36 static InterruptController
*sInstance
;
40 // ------------------------------------------------------ HardwareTimer
44 virtual void SetTimeout(bigtime_t timeout
) = 0;
45 virtual bigtime_t
Time() = 0;
46 virtual void Clear() = 0;
48 static HardwareTimer
* Get() {
53 HardwareTimer(fdt_module_info
*fdtModule
, fdt_device_node node
)
54 : fFDT(fdtModule
), fNode(node
) {
56 panic("Multiple HardwareTimer objects created; that is currently unsupported!");
61 // Keep our node around as we might want to grab attributes from it
62 fdt_module_info
*fFDT
;
63 fdt_device_node fNode
;
65 static HardwareTimer
*sInstance
;
68 #endif // ARCH_ARM_SOC_H