struct irq_chip — hardware interrupt chip descriptor
struct irq_chip { const char * name; unsigned int (* irq_startup) (struct irq_data *data); void (* irq_shutdown) (struct irq_data *data); void (* irq_enable) (struct irq_data *data); void (* irq_disable) (struct irq_data *data); void (* irq_ack) (struct irq_data *data); void (* irq_mask) (struct irq_data *data); void (* irq_mask_ack) (struct irq_data *data); void (* irq_unmask) (struct irq_data *data); void (* irq_eoi) (struct irq_data *data); int (* irq_set_affinity) (struct irq_data *data, const struct cpumask *dest, bool force); int (* irq_retrigger) (struct irq_data *data); int (* irq_set_type) (struct irq_data *data, unsigned int flow_type); int (* irq_set_wake) (struct irq_data *data, unsigned int on); void (* irq_bus_lock) (struct irq_data *data); void (* irq_bus_sync_unlock) (struct irq_data *data); void (* irq_cpu_online) (struct irq_data *data); void (* irq_cpu_offline) (struct irq_data *data); void (* irq_suspend) (struct irq_data *data); void (* irq_resume) (struct irq_data *data); void (* irq_pm_shutdown) (struct irq_data *data); void (* irq_calc_mask) (struct irq_data *data); void (* irq_print_chip) (struct irq_data *data, struct seq_file *p); int (* irq_request_resources) (struct irq_data *data); void (* irq_release_resources) (struct irq_data *data); void (* irq_compose_msi_msg) (struct irq_data *data, struct msi_msg *msg); void (* irq_write_msi_msg) (struct irq_data *data, struct msi_msg *msg); int (* irq_get_irqchip_state) (struct irq_data *data, enum irqchip_irq_state which, bool *state); int (* irq_set_irqchip_state) (struct irq_data *data, enum irqchip_irq_state which, bool state); unsigned long flags; };
name for /proc/interrupts
start up the interrupt (defaults to ->enable if NULL)
shut down the interrupt (defaults to ->disable if NULL)
enable the interrupt (defaults to chip->unmask if NULL)
disable the interrupt
start of a new interrupt
mask an interrupt source
ack and mask an interrupt source
unmask an interrupt source
end of interrupt
set the CPU affinity on SMP machines
resend an IRQ to the CPU
set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
enable/disable power-management wake-on of an IRQ
function to lock access to slow bus (i2c) chips
function to sync and unlock slow bus (i2c) chips
configure an interrupt source for a secondary CPU
un-configure an interrupt source for a secondary CPU
function called from core code on suspend once per chip
function called from core code on resume once per chip
function called from core code on shutdown once per chip
Optional function to set irq_data.mask for special cases
optional to print special chip info in show_interrupts
optional to request resources before calling any other callback related to this irq
optional to release resources acquired with irq_request_resources
optional to compose message content for MSI
optional to write message content for MSI
return the internal state of an interrupt
set the internal state of a interrupt
chip specific flags