Scroll to navigation

STRUCT IRQ_CHIP(9) Structures STRUCT IRQ_CHIP(9)

NAME

struct_irq_chip - hardware interrupt chip descriptor

SYNOPSIS

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);
  unsigned long flags;
};  

MEMBERS

name
name for /proc/interrupts
irq_startup
start up the interrupt (defaults to ->enable if NULL)
irq_shutdown
shut down the interrupt (defaults to ->disable if NULL)
irq_enable
enable the interrupt (defaults to chip->unmask if NULL)
irq_disable
disable the interrupt
irq_ack
start of a new interrupt
irq_mask
mask an interrupt source
irq_mask_ack
ack and mask an interrupt source
irq_unmask
unmask an interrupt source
irq_eoi
end of interrupt
irq_set_affinity
set the CPU affinity on SMP machines
irq_retrigger
resend an IRQ to the CPU
irq_set_type
set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
irq_set_wake
enable/disable power-management wake-on of an IRQ
irq_bus_lock
function to lock access to slow bus (i2c) chips
irq_bus_sync_unlock
function to sync and unlock slow bus (i2c) chips
irq_cpu_online
configure an interrupt source for a secondary CPU
irq_cpu_offline
un-configure an interrupt source for a secondary CPU
irq_suspend
function called from core code on suspend once per chip
irq_resume
function called from core code on resume once per chip
irq_pm_shutdown
function called from core code on shutdown once per chip
irq_calc_mask
Optional function to set irq_data.mask for special cases
irq_print_chip
optional to print special chip info in show_interrupts
irq_request_resources
optional to request resources before calling any other callback related to this irq
irq_release_resources
optional to release resources acquired with irq_request_resources
flags
chip specific flags

AUTHORS

Thomas Gleixner <tglx@linutronix.de>
Author.
Ingo Molnar <mingo@elte.hu>
Author.

COPYRIGHT

May 2018 Kernel Hackers Manual 3.16