11f54d5e5SDaniel Almeida // SPDX-License-Identifier: GPL-2.0 21f54d5e5SDaniel Almeida 31f54d5e5SDaniel Almeida //! IRQ abstractions. 41f54d5e5SDaniel Almeida //! 51f54d5e5SDaniel Almeida //! An IRQ is an interrupt request from a device. It is used to get the CPU's 61f54d5e5SDaniel Almeida //! attention so it can service a hardware event in a timely manner. 71f54d5e5SDaniel Almeida //! 81f54d5e5SDaniel Almeida //! The current abstractions handle IRQ requests and handlers, i.e.: it allows 91f54d5e5SDaniel Almeida //! drivers to register a handler for a given IRQ line. 101f54d5e5SDaniel Almeida //! 111f54d5e5SDaniel Almeida //! C header: [`include/linux/device.h`](srctree/include/linux/interrupt.h) 12746680ecSDaniel Almeida 13746680ecSDaniel Almeida /// Flags to be used when registering IRQ handlers. 14746680ecSDaniel Almeida mod flags; 15746680ecSDaniel Almeida 160851d34aSDaniel Almeida /// IRQ allocation and handling. 170851d34aSDaniel Almeida mod request; 180851d34aSDaniel Almeida 19746680ecSDaniel Almeida pub use flags::Flags; 200851d34aSDaniel Almeida 21*135d4052SDaniel Almeida pub use request::{ 22*135d4052SDaniel Almeida Handler, IrqRequest, IrqReturn, Registration, ThreadedHandler, ThreadedIrqReturn, 23*135d4052SDaniel Almeida ThreadedRegistration, 24*135d4052SDaniel Almeida }; 25