]> xenbits.xensource.com Git - seabios.git/commitdiff
Add pic_save_mask() and pic_restore_mask() functions
authorDavid Woodhouse <David.Woodhouse@intel.com>
Tue, 5 Feb 2013 16:37:27 +0000 (16:37 +0000)
committerKevin O'Connor <kevin@koconnor.net>
Fri, 8 Feb 2013 00:58:42 +0000 (19:58 -0500)
CSM will (unfortunately) need to use these.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
src/pic.c
src/pic.h

index 8992a8b576f79292a469cb63b6bea8b96058ffd5..669d6707f214421d1f4aa51a54339622eefd9144 100644 (file)
--- 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);
+}
index c75af3e665d08efffc93db87f4ad5099689cdf14..0ea56226bdfdc2b9977031dedaedbdb3c5da9b6b 100644 (file)
--- 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