函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:This is the 'legacy' 8259A Programmable Interrupt Controller,* present in the majority of PC/AT boxes.* plus some generic x86 specific things if generic specifics makes* any sense at all.

函数原型:static void init_8259A(int auto_eoi)

返回类型:void

参数:

类型参数名称
intauto_eoi
331  i8259A_auto_eoi等于auto_eoi
333  raw_spin_lock_irqsave( & i8259A_lock, flags)
335  Basic port I/O
340  outb_pic(0x11, 8259A PIC registers )
343  outb_pic(Vectors 0x30-0x3f are used for ISA interrupts.* round up to the next 16-vector boundary(0), PIC_MASTER_IMR)
346  outb_pic(1U << 8259A PIC related value , PIC_MASTER_IMR)
348  如果auto_eoioutb_pic(MASTER_ICW4_DEFAULT | PIC_ICW4_AEOI, PIC_MASTER_IMR)
350  否则outb_pic(MASTER_ICW4_DEFAULT, PIC_MASTER_IMR)
353  outb_pic(0x11, PIC_SLAVE_CMD)
356  outb_pic(Vectors 0x30-0x3f are used for ISA interrupts.* round up to the next 16-vector boundary(8), PIC_SLAVE_IMR)
358  outb_pic(8259A PIC related value , PIC_SLAVE_IMR)
360  outb_pic(SLAVE_ICW4_DEFAULT, PIC_SLAVE_IMR)
362  如果auto_eoi屏蔽中断应答等于disable_8259A_irq
368  否则屏蔽中断应答等于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!
371  0x10c7 is 2**32 / 1000000 (rounded up) (100)
373  Basic port I/O
374  Basic port I/O
376  raw_spin_unlock_irqrestore( & i8259A_lock, flags)
调用者
名称描述
i8259A_resume