pic8259.h File Reference

#include "realmode.h"

Go to the source code of this file.

Defines

#define IRQ_PIC_CUTOFF   8
#define PIC1_ICW1   0x20
#define PIC1_OCW2   0x20
#define PIC1_OCW3   0x20
#define PIC1_ICR   0x20
#define PIC1_IRR   0x20
#define PIC1_ISR   0x20
#define PIC1_ICW2   0x21
#define PIC1_ICW3   0x21
#define PIC1_ICW4   0x21
#define PIC1_IMR   0x21
#define PIC2_ICW1   0xa0
#define PIC2_OCW2   0xa0
#define PIC2_OCW3   0xa0
#define PIC2_ICR   0xa0
#define PIC2_IRR   0xa0
#define PIC2_ISR   0xa0
#define PIC2_ICW2   0xa1
#define PIC2_ICW3   0xa1
#define PIC2_ICW4   0xa1
#define PIC2_IMR   0xa1
#define OCW3_ID   0x08
#define OCW3_READ_IRR   0x03
#define OCW3_READ_ISR   0x02
#define ICR_EOI_NON_SPECIFIC   0x20
#define ICR_EOI_NOP   0x40
#define ICR_EOI_SPECIFIC   0x60
#define ICR_EOI_SET_PRIORITY   0xc0
#define IMR_REG(x)   ( (x) < IRQ_PIC_CUTOFF ? PIC1_IMR : PIC2_IMR )
#define IMR_BIT(x)   ( 1 << ( (x) % IRQ_PIC_CUTOFF ) )
#define irq_enabled(x)   ( ( inb ( IMR_REG(x) ) & IMR_BIT(x) ) == 0 )
#define enable_irq(x)   outb ( inb( IMR_REG(x) ) & ~IMR_BIT(x), IMR_REG(x) )
#define disable_irq(x)   outb ( inb( IMR_REG(x) ) | IMR_BIT(x), IMR_REG(x) )
#define ICR_REG(irq)   ( (irq) < IRQ_PIC_CUTOFF ? PIC1_ICR : PIC2_ICR )
#define ICR_VALUE(irq)   ( (irq) % IRQ_PIC_CUTOFF )
#define CHAINED_IRQ   2
#define IRQ_INT(irq)   ( ( ( (irq) - IRQ_PIC_CUTOFF ) ^ 0x70 ) & 0x7f )
#define IRQ_MAX   15
#define IRQ_NONE   -1U

Functions

 FILE_LICENCE (GPL2_OR_LATER)
void send_eoi (unsigned int irq)
 Send End-Of-Interrupt to the PIC.


Define Documentation

#define IRQ_PIC_CUTOFF   8

Definition at line 15 of file pic8259.h.

Referenced by send_nonspecific_eoi(), and send_specific_eoi().

#define PIC1_ICW1   0x20

Definition at line 18 of file pic8259.h.

#define PIC1_OCW2   0x20

Definition at line 19 of file pic8259.h.

#define PIC1_OCW3   0x20

Definition at line 20 of file pic8259.h.

#define PIC1_ICR   0x20

Definition at line 21 of file pic8259.h.

Referenced by send_nonspecific_eoi().

#define PIC1_IRR   0x20

Definition at line 22 of file pic8259.h.

#define PIC1_ISR   0x20

Definition at line 23 of file pic8259.h.

#define PIC1_ICW2   0x21

Definition at line 24 of file pic8259.h.

#define PIC1_ICW3   0x21

Definition at line 25 of file pic8259.h.

#define PIC1_ICW4   0x21

Definition at line 26 of file pic8259.h.

#define PIC1_IMR   0x21

Definition at line 27 of file pic8259.h.

#define PIC2_ICW1   0xa0

Definition at line 28 of file pic8259.h.

#define PIC2_OCW2   0xa0

Definition at line 29 of file pic8259.h.

#define PIC2_OCW3   0xa0

Definition at line 30 of file pic8259.h.

#define PIC2_ICR   0xa0

Definition at line 31 of file pic8259.h.

Referenced by send_nonspecific_eoi().

#define PIC2_IRR   0xa0

Definition at line 32 of file pic8259.h.

#define PIC2_ISR   0xa0

Definition at line 33 of file pic8259.h.

#define PIC2_ICW2   0xa1

Definition at line 34 of file pic8259.h.

#define PIC2_ICW3   0xa1

Definition at line 35 of file pic8259.h.

#define PIC2_ICW4   0xa1

Definition at line 36 of file pic8259.h.

#define PIC2_IMR   0xa1

Definition at line 37 of file pic8259.h.

#define OCW3_ID   0x08

Definition at line 40 of file pic8259.h.

#define OCW3_READ_IRR   0x03

Definition at line 41 of file pic8259.h.

#define OCW3_READ_ISR   0x02

Definition at line 42 of file pic8259.h.

#define ICR_EOI_NON_SPECIFIC   0x20

Definition at line 43 of file pic8259.h.

Referenced by send_nonspecific_eoi().

#define ICR_EOI_NOP   0x40

Definition at line 44 of file pic8259.h.

#define ICR_EOI_SPECIFIC   0x60

Definition at line 45 of file pic8259.h.

Referenced by send_specific_eoi().

#define ICR_EOI_SET_PRIORITY   0xc0

Definition at line 46 of file pic8259.h.

#define IMR_REG (  )     ( (x) < IRQ_PIC_CUTOFF ? PIC1_IMR : PIC2_IMR )

Definition at line 49 of file pic8259.h.

#define IMR_BIT (  )     ( 1 << ( (x) % IRQ_PIC_CUTOFF ) )

Definition at line 50 of file pic8259.h.

#define irq_enabled (  )     ( ( inb ( IMR_REG(x) ) & IMR_BIT(x) ) == 0 )

Definition at line 51 of file pic8259.h.

#define enable_irq (  )     outb ( inb( IMR_REG(x) ) & ~IMR_BIT(x), IMR_REG(x) )

Definition at line 52 of file pic8259.h.

Referenced by undinet_open().

#define disable_irq (  )     outb ( inb( IMR_REG(x) ) | IMR_BIT(x), IMR_REG(x) )

Definition at line 53 of file pic8259.h.

Referenced by undinet_close().

#define ICR_REG ( irq   )     ( (irq) < IRQ_PIC_CUTOFF ? PIC1_ICR : PIC2_ICR )

Definition at line 56 of file pic8259.h.

Referenced by send_specific_eoi().

#define ICR_VALUE ( irq   )     ( (irq) % IRQ_PIC_CUTOFF )

Definition at line 57 of file pic8259.h.

Referenced by send_specific_eoi().

#define CHAINED_IRQ   2

Definition at line 58 of file pic8259.h.

Referenced by send_specific_eoi().

#define IRQ_INT ( irq   )     ( ( ( (irq) - IRQ_PIC_CUTOFF ) ^ 0x70 ) & 0x7f )

Definition at line 61 of file pic8259.h.

Referenced by undinet_hook_isr(), and undinet_unhook_isr().

#define IRQ_MAX   15

Definition at line 64 of file pic8259.h.

Referenced by undinet_hook_isr(), undinet_probe(), and undinet_unhook_isr().

#define IRQ_NONE   -1U

Definition at line 65 of file pic8259.h.


Function Documentation

FILE_LICENCE ( GPL2_OR_LATER   ) 

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:13 2010 for gPXE by  doxygen 1.5.7.1