函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\i8259.c Create Date:2022-07-27 08:40:24
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称: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!

函数原型:static void mask_and_ack_8259A(struct irq_data *data)

返回类型:void

参数:

类型参数名称
struct irq_data *data
152  irq等于中断号
153  irqmask等于1左移irq
156  raw_spin_lock_irqsave( & i8259A_lock, flags)
172  如果This contains the irq mask for both 8259A irq controllers,按位与irqmask则转到:spurious_8259A_irq
174  This contains the irq mask for both 8259A irq controllers,或等于irqmask
176  handle_real_irq :
177  如果irq按位与8则
178  从端口输入字节
179  Basic port I/O
181  Basic port I/O
183  Basic port I/O
184  否则
185  从端口输入字节
186  Basic port I/O
187  Basic port I/O
189  raw_spin_unlock_irqrestore( & i8259A_lock, flags)
190  返回
192  spurious_8259A_irq :
196  如果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.则转到:handle_real_irq
209  如果非spurious_irq_mask按位与irqmask的值则
210  printk(debug-level messages "spurious 8259A interrupt: IRQ%d.\n", irq)
212  spurious_irq_mask或等于irqmask
214  atomic_inc( & irq_err_count)
220  转到:handle_real_irq