- 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
		
			
				
	
	
		
			16 lines
		
	
	
		
			349 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			16 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__ */
 |