Iros
 
Loading...
Searching...
No Matches
irq.h
Go to the documentation of this file.
1#pragma once
2
3#include "iris/core/task.h"
5
6namespace iris {
12
13enum class IrqStatus {
16};
17
19
25extern "C" void generic_irq_handler(GlobalIrqNumber irq, iris::arch::TaskState& task_state, int error_code);
26
30void unregister_external_irq_handler(IrqLine line, usize handler_id);
31}
Definition function.h:365
Definition optional_forward_declaration.h:5
size_t usize
Definition integers.h:33
Definition cxx_init.cpp:12
void unregister_external_irq_handler(IrqLine line, usize handler_id)
Definition irq.cpp:39
di::StrongInt< IrqLineTag > IrqLine
Definition irq_controller.h:18
di::StrongInt< GlobalIrqNumberTag > GlobalIrqNumber
Definition irq_controller.h:12
IrqStatus
Definition irq.h:13
@ Handled
Definition irq.h:14
@ Unknown
Definition irq.h:15
void generic_irq_handler(GlobalIrqNumber irq, iris::arch::TaskState &task_state, int error_code)
Generic entry point called by assembly when an interrupt occurs.
Definition irq.cpp:57
di::vocab::Expected< T, di::platform::GenericCode > Expected
Definition error.h:324
auto irq_number_for_legacy_isa_interrupt_number(IrqLine irq_line) -> Expected< GlobalIrqNumber >
Definition irq.cpp:6
di::Function< IrqStatus(IrqContext &)> IrqHandler
Definition irq.h:18
auto register_exception_handler(GlobalIrqNumber irq, IrqHandler handler) -> Expected< void >
Definition irq.cpp:29
auto register_external_irq_handler(IrqLine line, IrqHandler handler) -> Expected< usize >
Definition irq.cpp:12
Definition irq.h:7
int error_code
Definition irq.h:9
di::Optional< di::Synchronized< IrqController > & > controller
Definition irq.h:10
arch::TaskState & task_state
Definition irq.h:8
Definition task.h:12