*参照元 [#l96c70d5] #backlinks *説明 [#w9e27dc3] -パス: [[linux-4.4.1/kernel/irq/manage.c]] -FIXME: これは何? --説明 **引数 [#h1e2b356] -unsigned int irq -- -irq_handler_t handler -- --[[linux-4.4.1/irq_handler_t]] -unsigned long flags -- -const char *name -- -void *dev_id -- **返り値 [#h1557bf0] -int -- **参考 [#q6b61479] *実装 [#e02a2266] /** * request_any_context_irq - allocate an interrupt line * @irq: Interrupt line to allocate * @handler: Function to be called when the IRQ occurs. * Threaded handler for threaded interrupts. * @flags: Interrupt type flags * @name: An ascii name for the claiming device * @dev_id: A cookie passed back to the handler function * * This call allocates interrupt resources and enables the * interrupt line and IRQ handling. It selects either a * hardirq or threaded handling method depending on the * context. * * On failure, it returns a negative value. On success, * it returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED. */ int request_any_context_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev_id) { struct irq_desc *desc = irq_to_desc(irq); int ret; - --[[linux-4.4.1/irq_desc]] --[[linux-4.4.1/irq_to_desc()]] if (!desc) return -EINVAL; if (irq_settings_is_nested_thread(desc)) { - --[[linux-4.4.1/irq_settings_is_nested_thread()]] ret = request_threaded_irq(irq, NULL, handler, flags, name, dev_id); return !ret ? IRQC_IS_NESTED : ret; - --[[linux-4.4.1/request_threaded_irq()]] } ret = request_irq(irq, handler, flags, name, dev_id); return !ret ? IRQC_IS_HARDIRQ : ret; - --[[linux-4.4.1/request_irq()]] } EXPORT_SYMBOL_GPL(request_any_context_irq); - --[[linux-4.4.1/EXPORT_SYMBOL_GPL()]] *コメント [#n27db53d]