From 0b6ab60780ce619d60b360f26393ebee74cbd065 Mon Sep 17 00:00:00 2001 From: Volker Ruppert Date: Wed, 30 Jan 2002 18:33:41 +0000 Subject: [PATCH] - IOAPIC calls added in functions raise_irq() and lower_irq() (untested) --- bochs/iodev/pic.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bochs/iodev/pic.cc b/bochs/iodev/pic.cc index 47b210c89..1f275ab24 100644 --- a/bochs/iodev/pic.cc +++ b/bochs/iodev/pic.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: pic.cc,v 1.20 2002-01-29 17:20:11 vruppert Exp $ +// $Id: pic.cc,v 1.21 2002-01-30 18:33:41 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -525,6 +525,11 @@ bx_pic_c::write(Bit32u address, Bit32u value, unsigned io_len) void bx_pic_c::lower_irq(unsigned irq_no) { +#if BX_SUPPORT_APIC + // forward this function call to the ioapic too + BX_PIC_THIS devices->ioapic->untrigger_irq (irq_no, -1); +#endif + if ((irq_no <= 7) && (BX_PIC_THIS s.master_pic.IRQ_line[irq_no])) { BX_DEBUG(("IRQ line %d now low", (unsigned) irq_no)); BX_PIC_THIS s.master_pic.IRQ_line[irq_no] = 0; @@ -548,6 +553,11 @@ bx_pic_c::lower_irq(unsigned irq_no) void bx_pic_c::raise_irq(unsigned irq_no) { +#if BX_SUPPORT_APIC + // forward this function call to the ioapic too + BX_PIC_THIS devices->ioapic->trigger_irq (irq_no, -1); +#endif + if ((irq_no <= 7) && (!BX_PIC_THIS s.master_pic.IRQ_line[irq_no])) { BX_DEBUG(("IRQ line %d now high", (unsigned) irq_no)); BX_PIC_THIS s.master_pic.IRQ_line[irq_no] = 1;