/* * Architectures call this to let the generic IRQ layer * handle an interrupt.
*/ staticinlinevoid generic_handle_irq_desc(struct irq_desc *desc)
{
desc->handle_irq(desc);
}
int handle_irq_desc(struct irq_desc *desc); int generic_handle_irq(unsignedint irq); int generic_handle_irq_safe(unsignedint irq);
#ifdef CONFIG_IRQ_DOMAIN /* * Convert a HW interrupt number to a logical one using a IRQ domain, * and handle the result interrupt number. Return -EINVAL if * conversion failed.
*/ int generic_handle_domain_irq(struct irq_domain *domain, unsignedint hwirq); int generic_handle_domain_irq_safe(struct irq_domain *domain, unsignedint hwirq); int generic_handle_domain_nmi(struct irq_domain *domain, unsignedint hwirq); #endif
/* Test to see if a driver has successfully requested an irq */ staticinlineint irq_desc_has_action(struct irq_desc *desc)
{ return desc && desc->action != NULL;
}
/** * irq_set_handler_locked - Set irq handler from a locked region * @data: Pointer to the irq_data structure which identifies the irq * @handler: Flow control handler function for this interrupt * * Sets the handler in the irq descriptor associated to @data. * * Must be called with irq_desc locked and valid parameters. Typical * call site is the irq_set_type() callback.
*/ staticinlinevoid irq_set_handler_locked(struct irq_data *data,
irq_flow_handler_t handler)
{ struct irq_desc *desc = irq_data_to_desc(data);
desc->handle_irq = handler;
}
/** * irq_set_chip_handler_name_locked - Set chip, handler and name from a locked region * @data: Pointer to the irq_data structure for which the chip is set * @chip: Pointer to the new irq chip * @handler: Flow control handler function for this interrupt * @name: Name of the interrupt * * Replace the irq chip at the proper hierarchy level in @data and * sets the handler and name in the associated irq descriptor. * * Must be called with irq_desc locked and valid parameters.
*/ staticinlinevoid
irq_set_chip_handler_name_locked(struct irq_data *data, conststruct irq_chip *chip,
irq_flow_handler_t handler, constchar *name)
{ struct irq_desc *desc = irq_data_to_desc(data);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.