mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-30 13:52:50 +01:00
This patch adds support for threaded IRQs and handlers through irq::ThreadedRegistration and the irq::ThreadedHandler trait. Threaded interrupts are more permissive in the sense that further processing is possible in a kthread. This means that said execution takes place outside of interrupt context, which is rather restrictive in many ways. Registering a threaded irq is dependent upon having an IrqRequest that was previously allocated by a given device. This will be introduced in subsequent patches. Tested-by: Joel Fernandes <[email protected]> Tested-by: Dirk Behme <[email protected]> Reviewed-by: Alice Ryhl <[email protected]> Signed-off-by: Daniel Almeida <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Add now available intra-doc links back in. - Danilo ] Signed-off-by: Danilo Krummrich <[email protected]>
25 lines
698 B
Rust
25 lines
698 B
Rust
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
//! IRQ abstractions.
|
|
//!
|
|
//! An IRQ is an interrupt request from a device. It is used to get the CPU's
|
|
//! attention so it can service a hardware event in a timely manner.
|
|
//!
|
|
//! The current abstractions handle IRQ requests and handlers, i.e.: it allows
|
|
//! drivers to register a handler for a given IRQ line.
|
|
//!
|
|
//! C header: [`include/linux/device.h`](srctree/include/linux/interrupt.h)
|
|
|
|
/// Flags to be used when registering IRQ handlers.
|
|
mod flags;
|
|
|
|
/// IRQ allocation and handling.
|
|
mod request;
|
|
|
|
pub use flags::Flags;
|
|
|
|
pub use request::{
|
|
Handler, IrqRequest, IrqReturn, Registration, ThreadedHandler, ThreadedIrqReturn,
|
|
ThreadedRegistration,
|
|
};
|