From: David Woodhouse Date: Tue, 5 Feb 2013 16:37:27 +0000 (+0000) Subject: Add pic_save_mask() and pic_restore_mask() functions X-Git-Tag: rel-1.7.3~129 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=fbdbb4b8c1509ceee93d9d7eb0f34b630a4e8b0d;p=seabios.git Add pic_save_mask() and pic_restore_mask() functions CSM will (unfortunately) need to use these. Signed-off-by: David Woodhouse --- 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