[SeaBIOS] [PATCH v2 16/19] Add pic_save_mask() and pic_restore_mask() functions
David Woodhouse
dwmw2 at infradead.org
Tue Feb 5 17:47:55 CET 2013
From: David Woodhouse <David.Woodhouse at intel.com>
CSM will (unfortunately) need to use these.
Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
src/pic.c | 16 ++++++++++++++++
src/pic.h | 2 ++
2 files changed, 18 insertions(+)
diff --git a/src/pic.c b/src/pic.c
index 8992a8b..669d670 100644
--- a/src/pic.c
+++ b/src/pic.c
@@ -50,3 +50,19 @@ handle_hwpic2(struct bregs *regs)
dprintf(DEBUG_ISR_hwpic2, "handle_hwpic2 irq=%x\n", get_pic2_isr());
eoi_pic2();
}
+
+u8 saved_pic_mask[2] = { ~PIC1_IRQ2, ~0 };
+
+void
+pic_save_mask(void)
+{
+ saved_pic_mask[0] = inb(PORT_PIC1_DATA);
+ saved_pic_mask[1] = inb(PORT_PIC2_DATA);
+}
+
+void
+pic_restore_mask(void)
+{
+ outb(saved_pic_mask[0], PORT_PIC1_DATA);
+ outb(saved_pic_mask[1], PORT_PIC2_DATA);
+}
diff --git a/src/pic.h b/src/pic.h
index c75af3e..0ea5622 100644
--- a/src/pic.h
+++ b/src/pic.h
@@ -93,5 +93,7 @@ enable_hwirq(int hwirq, struct segoff_s func)
void set_pics(u8 irq0, u8 irq8);
void pic_setup(void);
+void pic_save_mask(void);
+void pic_restore_mask(void);
#endif // pic.h
--
1.8.1
More information about the SeaBIOS
mailing list