1STRUCT IRQ_CHIP(9)                Structures                STRUCT IRQ_CHIP(9)
2
3
4

NAME

6       struct_irq_chip - hardware interrupt chip descriptor
7

SYNOPSIS

9       struct irq_chip {
10         const char * name;
11         unsigned int (* irq_startup) (struct irq_data *data);
12         void (* irq_shutdown) (struct irq_data *data);
13         void (* irq_enable) (struct irq_data *data);
14         void (* irq_disable) (struct irq_data *data);
15         void (* irq_ack) (struct irq_data *data);
16         void (* irq_mask) (struct irq_data *data);
17         void (* irq_mask_ack) (struct irq_data *data);
18         void (* irq_unmask) (struct irq_data *data);
19         void (* irq_eoi) (struct irq_data *data);
20         int (* irq_set_affinity) (struct irq_data *data, const struct cpumask *dest, bool force);
21         int (* irq_retrigger) (struct irq_data *data);
22         int (* irq_set_type) (struct irq_data *data, unsigned int flow_type);
23         int (* irq_set_wake) (struct irq_data *data, unsigned int on);
24         void (* irq_bus_lock) (struct irq_data *data);
25         void (* irq_bus_sync_unlock) (struct irq_data *data);
26         void (* irq_cpu_online) (struct irq_data *data);
27         void (* irq_cpu_offline) (struct irq_data *data);
28         void (* irq_suspend) (struct irq_data *data);
29         void (* irq_resume) (struct irq_data *data);
30         void (* irq_pm_shutdown) (struct irq_data *data);
31         void (* irq_print_chip) (struct irq_data *data, struct seq_file *p);
32         int (* irq_request_resources) (struct irq_data *data);
33         void (* irq_release_resources) (struct irq_data *data);
34         unsigned long flags;
35       };
36

MEMBERS

38       name
39           name for /proc/interrupts
40
41       irq_startup
42           start up the interrupt (defaults to ->enable if NULL)
43
44       irq_shutdown
45           shut down the interrupt (defaults to ->disable if NULL)
46
47       irq_enable
48           enable the interrupt (defaults to chip->unmask if NULL)
49
50       irq_disable
51           disable the interrupt
52
53       irq_ack
54           start of a new interrupt
55
56       irq_mask
57           mask an interrupt source
58
59       irq_mask_ack
60           ack and mask an interrupt source
61
62       irq_unmask
63           unmask an interrupt source
64
65       irq_eoi
66           end of interrupt
67
68       irq_set_affinity
69           set the CPU affinity on SMP machines
70
71       irq_retrigger
72           resend an IRQ to the CPU
73
74       irq_set_type
75           set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
76
77       irq_set_wake
78           enable/disable power-management wake-on of an IRQ
79
80       irq_bus_lock
81           function to lock access to slow bus (i2c) chips
82
83       irq_bus_sync_unlock
84           function to sync and unlock slow bus (i2c) chips
85
86       irq_cpu_online
87           configure an interrupt source for a secondary CPU
88
89       irq_cpu_offline
90           un-configure an interrupt source for a secondary CPU
91
92       irq_suspend
93           function called from core code on suspend once per chip
94
95       irq_resume
96           function called from core code on resume once per chip
97
98       irq_pm_shutdown
99           function called from core code on shutdown once per chip
100
101       irq_print_chip
102           optional to print special chip info in show_interrupts
103
104       irq_request_resources
105           optional to request resources before calling any other callback
106           related to this irq
107
108       irq_release_resources
109           optional to release resources acquired with irq_request_resources
110
111       flags
112           chip specific flags
113

AUTHORS

115       Thomas Gleixner <tglx@linutronix.de>
116           Author.
117
118       Ingo Molnar <mingo@elte.hu>
119           Author.
120
122Kernel Hackers Manual 3.10         June 2019                STRUCT IRQ_CHIP(9)
Impressum