1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>struct irq_chip</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux generic IRQ handling"><link rel="up" href="structs.html" title="Chapter 8. Structures"><link rel="prev" href="API-struct-irq-data.html" title="struct irq_data"><link rel="next" href="API-struct-irq-chip-regs.html" title="struct irq_chip_regs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct irq_chip</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-irq-data.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Structures</th><td width="20%" align="right"> <a accesskey="n" href="API-struct-irq-chip-regs.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-irq-chip"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct irq_chip — 2 hardware interrupt chip descriptor 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting"> 4struct irq_chip { 5 const char * name; 6 unsigned int (* irq_startup) (struct irq_data *data); 7 void (* irq_shutdown) (struct irq_data *data); 8 void (* irq_enable) (struct irq_data *data); 9 void (* irq_disable) (struct irq_data *data); 10 void (* irq_ack) (struct irq_data *data); 11 void (* irq_mask) (struct irq_data *data); 12 void (* irq_mask_ack) (struct irq_data *data); 13 void (* irq_unmask) (struct irq_data *data); 14 void (* irq_eoi) (struct irq_data *data); 15 int (* irq_set_affinity) (struct irq_data *data, const struct cpumask *dest, bool force); 16 int (* irq_retrigger) (struct irq_data *data); 17 int (* irq_set_type) (struct irq_data *data, unsigned int flow_type); 18 int (* irq_set_wake) (struct irq_data *data, unsigned int on); 19 void (* irq_bus_lock) (struct irq_data *data); 20 void (* irq_bus_sync_unlock) (struct irq_data *data); 21 void (* irq_cpu_online) (struct irq_data *data); 22 void (* irq_cpu_offline) (struct irq_data *data); 23 void (* irq_suspend) (struct irq_data *data); 24 void (* irq_resume) (struct irq_data *data); 25 void (* irq_pm_shutdown) (struct irq_data *data); 26 void (* irq_calc_mask) (struct irq_data *data); 27 void (* irq_print_chip) (struct irq_data *data, struct seq_file *p); 28 int (* irq_request_resources) (struct irq_data *data); 29 void (* irq_release_resources) (struct irq_data *data); 30 void (* irq_compose_msi_msg) (struct irq_data *data, struct msi_msg *msg); 31 void (* irq_write_msi_msg) (struct irq_data *data, struct msi_msg *msg); 32 int (* irq_get_irqchip_state) (struct irq_data *data, enum irqchip_irq_state which, bool *state); 33 int (* irq_set_irqchip_state) (struct irq_data *data, enum irqchip_irq_state which, bool state); 34 unsigned long flags; 35}; </pre></div><div class="refsect1"><a name="idp1102980228"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">name</span></dt><dd><p> 36 name for /proc/interrupts 37 </p></dd><dt><span class="term">irq_startup</span></dt><dd><p> 38 start up the interrupt (defaults to ->enable if NULL) 39 </p></dd><dt><span class="term">irq_shutdown</span></dt><dd><p> 40 shut down the interrupt (defaults to ->disable if NULL) 41 </p></dd><dt><span class="term">irq_enable</span></dt><dd><p> 42 enable the interrupt (defaults to chip->unmask if NULL) 43 </p></dd><dt><span class="term">irq_disable</span></dt><dd><p> 44 disable the interrupt 45 </p></dd><dt><span class="term">irq_ack</span></dt><dd><p> 46 start of a new interrupt 47 </p></dd><dt><span class="term">irq_mask</span></dt><dd><p> 48 mask an interrupt source 49 </p></dd><dt><span class="term">irq_mask_ack</span></dt><dd><p> 50 ack and mask an interrupt source 51 </p></dd><dt><span class="term">irq_unmask</span></dt><dd><p> 52 unmask an interrupt source 53 </p></dd><dt><span class="term">irq_eoi</span></dt><dd><p> 54 end of interrupt 55 </p></dd><dt><span class="term">irq_set_affinity</span></dt><dd><p> 56 set the CPU affinity on SMP machines 57 </p></dd><dt><span class="term">irq_retrigger</span></dt><dd><p> 58 resend an IRQ to the CPU 59 </p></dd><dt><span class="term">irq_set_type</span></dt><dd><p> 60 set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ 61 </p></dd><dt><span class="term">irq_set_wake</span></dt><dd><p> 62 enable/disable power-management wake-on of an IRQ 63 </p></dd><dt><span class="term">irq_bus_lock</span></dt><dd><p> 64 function to lock access to slow bus (i2c) chips 65 </p></dd><dt><span class="term">irq_bus_sync_unlock</span></dt><dd><p> 66 function to sync and unlock slow bus (i2c) chips 67 </p></dd><dt><span class="term">irq_cpu_online</span></dt><dd><p> 68 configure an interrupt source for a secondary CPU 69 </p></dd><dt><span class="term">irq_cpu_offline</span></dt><dd><p> 70 un-configure an interrupt source for a secondary CPU 71 </p></dd><dt><span class="term">irq_suspend</span></dt><dd><p> 72 function called from core code on suspend once per chip 73 </p></dd><dt><span class="term">irq_resume</span></dt><dd><p> 74 function called from core code on resume once per chip 75 </p></dd><dt><span class="term">irq_pm_shutdown</span></dt><dd><p> 76 function called from core code on shutdown once per chip 77 </p></dd><dt><span class="term">irq_calc_mask</span></dt><dd><p> 78 Optional function to set irq_data.mask for special cases 79 </p></dd><dt><span class="term">irq_print_chip</span></dt><dd><p> 80 optional to print special chip info in show_interrupts 81 </p></dd><dt><span class="term">irq_request_resources</span></dt><dd><p> 82 optional to request resources before calling 83 any other callback related to this irq 84 </p></dd><dt><span class="term">irq_release_resources</span></dt><dd><p> 85 optional to release resources acquired with 86 irq_request_resources 87 </p></dd><dt><span class="term">irq_compose_msi_msg</span></dt><dd><p> 88 optional to compose message content for MSI 89 </p></dd><dt><span class="term">irq_write_msi_msg</span></dt><dd><p> 90 optional to write message content for MSI 91 </p></dd><dt><span class="term">irq_get_irqchip_state</span></dt><dd><p> 92 return the internal state of an interrupt 93 </p></dd><dt><span class="term">irq_set_irqchip_state</span></dt><dd><p> 94 set the internal state of a interrupt 95 </p></dd><dt><span class="term">flags</span></dt><dd><p> 96 chip specific flags 97 </p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-struct-irq-data.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="structs.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-struct-irq-chip-regs.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct irq_data</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">struct irq_chip_regs</span></td></tr></table></div></body></html> 98