comments; rename irq_ to pic_

This commit is contained in:
rsc 2007-08-28 19:04:36 +00:00
parent 5516be1fed
commit eb52c7de1d
9 changed files with 25 additions and 18 deletions

View file

@ -1,3 +1,7 @@
// Console input and output.
// Input is from the keyboard only.
// Output is written to the screen and the printer port.
#include "types.h" #include "types.h"
#include "defs.h" #include "defs.h"
#include "param.h" #include "param.h"
@ -278,7 +282,7 @@ console_init(void)
devsw[CONSOLE].read = console_read; devsw[CONSOLE].read = console_read;
//use_console_lock = 1; //use_console_lock = 1;
irq_enable(IRQ_KBD); pic_enable(IRQ_KBD);
ioapic_enable(IRQ_KBD, 0); ioapic_enable(IRQ_KBD, 0);
} }

2
defs.h
View file

@ -85,7 +85,7 @@ void mp_init(void);
void mp_startthem(void); void mp_startthem(void);
// picirq.c // picirq.c
void irq_enable(int); void pic_enable(int);
void pic_init(void); void pic_init(void);
// pipe.c // pipe.c

2
ide.c
View file

@ -47,7 +47,7 @@ ide_init(void)
int i; int i;
initlock(&ide_lock, "ide"); initlock(&ide_lock, "ide");
irq_enable(IRQ_IDE); pic_enable(IRQ_IDE);
ioapic_enable(IRQ_IDE, ncpu - 1); ioapic_enable(IRQ_IDE, ncpu - 1);
ide_wait_ready(0); ide_wait_ready(0);

4
init.c
View file

@ -1,10 +1,10 @@
// init: The initial user-level program
#include "types.h" #include "types.h"
#include "stat.h" #include "stat.h"
#include "user.h" #include "user.h"
#include "fcntl.h" #include "fcntl.h"
// init: The initial user-level program
char *sh_args[] = { "sh", 0 }; char *sh_args[] = { "sh", 0 };
int int

View file

@ -1,5 +1,6 @@
// The I/O APIC manages hardware interrupts for an SMP system. // The I/O APIC manages hardware interrupts for an SMP system.
// http://www.intel.com/design/chipsets/datashts/29056601.pdf // http://www.intel.com/design/chipsets/datashts/29056601.pdf
// See also picirq.c.
#include "types.h" #include "types.h"
#include "defs.h" #include "defs.h"

1
kbd.c
View file

@ -48,4 +48,3 @@ kbd_intr(void)
{ {
console_intr(kbd_getc); console_intr(kbd_getc);
} }

2
mp.c
View file

@ -1,3 +1,5 @@
// Multiprocessor bootstrap.
// Search memory for MP description structures.
// http://developer.intel.com/design/pentium/datashts/24201606.pdf // http://developer.intel.com/design/pentium/datashts/24201606.pdf
#include "types.h" #include "types.h"

View file

@ -1,8 +1,10 @@
// Intel 8259A programmable interrupt controllers.
#include "types.h" #include "types.h"
#include "x86.h" #include "x86.h"
#include "traps.h" #include "traps.h"
// I/O Addresses of the two 8259A programmable interrupt controllers // I/O Addresses of the two programmable interrupt controllers
#define IO_PIC1 0x20 // Master (IRQs 0-7) #define IO_PIC1 0x20 // Master (IRQs 0-7)
#define IO_PIC2 0xA0 // Slave (IRQs 8-15) #define IO_PIC2 0xA0 // Slave (IRQs 8-15)
@ -10,21 +12,20 @@
// Current IRQ mask. // Current IRQ mask.
// Initial IRQ mask has interrupt 2 enabled (for slave 8259A). // Initial IRQ mask has interrupt 2 enabled (for slave 8259A).
static ushort irq_mask_8259A = 0xFFFF & ~(1<<IRQ_SLAVE); static ushort irqmask = 0xFFFF & ~(1<<IRQ_SLAVE);
static void static void
irq_setmask_8259A(ushort mask) pic_setmask(ushort mask)
{ {
irq_mask_8259A = mask; irqmask = mask;
outb(IO_PIC1+1, mask);
outb(IO_PIC1+1, (char)mask); outb(IO_PIC2+1, mask >> 8);
outb(IO_PIC2+1, (char)(mask >> 8));
} }
void void
irq_enable(int irq) pic_enable(int irq)
{ {
irq_setmask_8259A(irq_mask_8259A & ~(1<<irq)); pic_setmask(irqmask & ~(1<<irq));
} }
// Initialize the 8259A interrupt controllers. // Initialize the 8259A interrupt controllers.
@ -78,6 +79,6 @@ pic_init(void)
outb(IO_PIC2, 0x68); // OCW3 outb(IO_PIC2, 0x68); // OCW3
outb(IO_PIC2, 0x0a); // OCW3 outb(IO_PIC2, 0x0a); // OCW3
if(irq_mask_8259A != 0xFFFF) if(irqmask != 0xFFFF)
irq_setmask_8259A(irq_mask_8259A); pic_setmask(irqmask);
} }

View file

@ -28,5 +28,5 @@ timer_init(void)
outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT);
outb(IO_TIMER1, TIMER_DIV(100) % 256); outb(IO_TIMER1, TIMER_DIV(100) % 256);
outb(IO_TIMER1, TIMER_DIV(100) / 256); outb(IO_TIMER1, TIMER_DIV(100) / 256);
irq_enable(IRQ_TIMER); pic_enable(IRQ_TIMER);
} }