Function report |
Source Code:arch\x86\kernel\i8259.c |
Create Date:2022-07-28 07:40:44 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Careful! The 8259A is a fragile beast, it pretty* much _has_ to be done exactly like this (mask it* first, _then_ send the EOI, and the order of EOI* to the two 8259s is important!
Proto:static void mask_and_ack_8259A(struct irq_data *data)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct irq_data * | data |
| 156 | raw_spin_lock_irqsave( & i8259A_lock, flags) |
| 172 | If This contains the irq mask for both 8259A irq controllers, & irqmask Then Go to spurious_8259A_irq |
| 176 | handle_real_irq : |
| 177 | If irq & 8 Then |
| 184 | Else |
| 189 | raw_spin_unlock_irqrestore( & i8259A_lock, flags) |
| 190 | Return |
| 192 | spurious_8259A_irq : |
| 196 | If This function assumes to be called rarely. Switching between* 8259A registers is slow.* This has to be protected by the irq controller spinlock* before being called. Then Go to handle_real_irq |
| 209 | If Not (spurious_irq_mask & irqmask) Then |
| 210 | printk(debug-level messages "spurious 8259A interrupt: IRQ%d.\n", irq) |
| 212 | spurious_irq_mask |= irqmask |
| 214 | atomic_inc( & irq_err_count) |
| 220 | Go to handle_real_irq |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |