pic8259.c File Reference

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

#include <gpxe/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:
irq IRQ number
This seems to be inherently unsafe.

Definition at line 37 of file pic8259.c.

References DBG, ICR_EOI_NON_SPECIFIC, IRQ_PIC_CUTOFF, outb, PIC1_ICR, and PIC2_ICR.

00037                                                              {
00038         DBG ( "Sending non-specific EOI for IRQ %d\n", irq );
00039         if ( irq >= IRQ_PIC_CUTOFF ) {
00040                 outb ( ICR_EOI_NON_SPECIFIC, PIC2_ICR );
00041         }               
00042         outb ( ICR_EOI_NON_SPECIFIC, PIC1_ICR );
00043 }

static void send_specific_eoi ( unsigned int  irq  )  [inline, static]

Send specific EOI(s).

Parameters:
irq IRQ number

Definition at line 50 of file pic8259.c.

References CHAINED_IRQ, DBG, ICR_EOI_SPECIFIC, ICR_REG, ICR_VALUE, IRQ_PIC_CUTOFF, and outb.

Referenced by send_eoi().

00050                                                           {
00051         DBG ( "Sending specific EOI for IRQ %d\n", irq );
00052         if ( irq >= IRQ_PIC_CUTOFF ) {
00053                 outb ( ( ICR_EOI_SPECIFIC | ICR_VALUE ( CHAINED_IRQ ) ),
00054                        ICR_REG ( CHAINED_IRQ ) );
00055         }
00056         outb ( ( ICR_EOI_SPECIFIC | ICR_VALUE ( irq ) ), ICR_REG ( irq ) );
00057 }

void send_eoi ( unsigned int  irq  ) 

Send End-Of-Interrupt to the PIC.

Parameters:
irq IRQ number

Definition at line 64 of file pic8259.c.

References send_specific_eoi().

Referenced by undinet_open().

00064                                    {
00065         send_specific_eoi ( irq );
00066 }


Generated on Tue Apr 6 20:01:11 2010 for gPXE by  doxygen 1.5.7.1