Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\i8259.c Create Date:2022-07-28 07:40:47
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name: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.

Proto:static void init_8259A(int auto_eoi)

Type:void

Parameter:

TypeParameterName
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  If auto_eoi Then outb_pic(MASTER_ICW4_DEFAULT | PIC_ICW4_AEOI, PIC_MASTER_IMR)
350  Else 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  If auto_eoi Then irq_mask_ack = disable_8259A_irq
368  Else irq_mask_ack = 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)
Caller
NameDescribe
i8259A_resume