- the PIC master and slave irq handlers don't pass the irq hook pointer but just the irq number. It gives a little bit more information to the C handler as the irq number is not lost - the irq code path is more achitecture independent. i386 hw interrupts are called irq and whereever the code is arch independent enough hw_intr_ functions are called to mask/unmask interrupts - the legacy PIC is not the only possible interrupt controller in the x86 world, therefore the intr_(un)mask functions were renamed to signal their functionality explicitly. APIC will add their own. - masking and unmasking PIC interrupt lines is removed from assembler and all the functionality is rewriten in C and moved to i8259.c - interrupt handlers have to unmask the interrupt line if all irq handlers are done. Assembler does not do it anymore
15 lines
349 B
C
15 lines
349 B
C
#ifndef __HW_INTR_X86_H__
|
|
#define __HW_INTR_X86_H__
|
|
|
|
#include "../..//kernel.h"
|
|
|
|
/* legacy PIC */
|
|
|
|
_PROTOTYPE(int irq_8259_unmask,(int irq));
|
|
_PROTOTYPE(int irq_8259_mask,(int irq));
|
|
_PROTOTYPE(void irq_handle,(int irq));
|
|
|
|
#define hw_intr_mask(irq) irq_8259_mask(irq)
|
|
#define hw_intr_unmask(irq) irq_8259_unmask(irq)
|
|
|
|
#endif /* __HW_INTR_X86_H__ */
|