theCore C++ embedded framework
|
Common IRQ implementation. More...
#include "common/irq.hpp"
#include <ecl/assert.h>
#include <platform/irq.hpp>
#include <common/execution.hpp>
#include <new>
Namespaces | |
ecl | |
ecl::irq | |
Typedefs | |
using | ecl::handler_storage = std::aligned_storage_t< sizeof(irq::handler_type), alignof(irq::handler_type)> |
Storage type for the IRQ handlers. More... | |
Functions | |
static void | ecl::default_handler () |
Unhandled interrupt must cause the abort. More... | |
static auto | ecl::extract_handlers () |
Effectively casts IRQ storage. More... | |
ecl::__attribute__ ((used)) void core_isr() | |
Handles IRQ and visible to the startup code. More... | |
void | ecl::irq::init_storage () |
Initializes storage for callbacks and setups default handler for every IRQ. More... | |
void | ecl::irq::subscribe (irq_num irqn, const irq::handler_type &handler) |
Subscribes to the given IRQ. More... | |
void | ecl::irq::unsubscribe (irq_num irqn) |
Unsubscribes from the given IRQ. More... | |
Variables | |
static handler_storage | ecl::storage [IRQ_COUNT] |
IRQ storage itself. More... | |
Common IRQ implementation.