iPXE
Functions
pic8259.c File Reference

Minimal support for the 8259 Programmable Interrupt Controller. More...

#include <ipxe/io.h>
#include <pic8259.h>

Go to the source code of this file.

Functions

 FILE_LICENCE (GPL2_OR_LATER)
static void send_nonspecific_eoi (unsigned int irq)
 Send non-specific EOI(s)
static void send_specific_eoi (unsigned int irq)
 Send specific EOI(s)
void send_eoi (unsigned int irq)
 Send End-Of-Interrupt to the PIC.

Detailed Description

Minimal support for the 8259 Programmable Interrupt Controller.

Definition in file pic8259.c.


Function Documentation

FILE_LICENCE ( GPL2_OR_LATER  )
static void send_nonspecific_eoi ( unsigned int  irq) [inline, static]

Send non-specific EOI(s)

Parameters:
irqIRQ number

This seems to be inherently unsafe.

Definition at line 38 of file pic8259.c.

References DBG, and outb().

                                                             {
        DBG ( "Sending non-specific EOI for IRQ %d\n", irq );
        if ( irq >= IRQ_PIC_CUTOFF ) {
                outb ( ICR_EOI_NON_SPECIFIC, PIC2_ICR );
        }               
        outb ( ICR_EOI_NON_SPECIFIC, PIC1_ICR );
}
static void send_specific_eoi ( unsigned int  irq) [inline, static]

Send specific EOI(s)

Parameters:
irqIRQ number

Definition at line 51 of file pic8259.c.

References DBG, and outb().

Referenced by send_eoi().

                                                          {
        DBG ( "Sending specific EOI for IRQ %d\n", irq );
        if ( irq >= IRQ_PIC_CUTOFF ) {
                outb ( ( ICR_EOI_SPECIFIC | ICR_VALUE ( CHAINED_IRQ ) ),
                       ICR_REG ( CHAINED_IRQ ) );
        }
        outb ( ( ICR_EOI_SPECIFIC | ICR_VALUE ( irq ) ), ICR_REG ( irq ) );
}
void send_eoi ( unsigned int  irq)

Send End-Of-Interrupt to the PIC.

Parameters:
irqIRQ number

Definition at line 65 of file pic8259.c.

References send_specific_eoi().

Referenced by undinet_open().

                                   {
        send_specific_eoi ( irq );
}