fix race in holding() check in acquire()
give cpu1 a TSS and gdt for when it enters scheduler() and a pseudo proc[] entry for each cpu cpu0 waits for each other cpu to start up read() for files
This commit is contained in:
parent
e8d11c2e84
commit
0e84a0ec6e
20 changed files with 209 additions and 55 deletions
6
ioapic.c
6
ioapic.c
|
|
@ -65,7 +65,7 @@ ioapic_init(void)
|
|||
}
|
||||
|
||||
void
|
||||
ioapic_enable (int irq, int cpu)
|
||||
ioapic_enable (int irq, int cpunum)
|
||||
{
|
||||
uint l, h;
|
||||
struct ioapic *io;
|
||||
|
|
@ -76,7 +76,7 @@ ioapic_enable (int irq, int cpu)
|
|||
ioapic_write(io, IOAPIC_REDTBL_LO(irq), l);
|
||||
h = ioapic_read(io, IOAPIC_REDTBL_HI(irq));
|
||||
h &= ~IOART_DEST;
|
||||
h |= (cpu << APIC_ID_SHIFT); // for fun, disk interrupts to cpu 1
|
||||
h |= (cpunum << APIC_ID_SHIFT); // for fun, disk interrupts to cpu 1
|
||||
ioapic_write(io, IOAPIC_REDTBL_HI(irq), h);
|
||||
cprintf("intr %d: lo 0x%x hi 0x%x\n", irq, l, h);
|
||||
cprintf("cpu%d: intr %d: lo 0x%x hi 0x%x\n", cpu(), irq, l, h);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue