summaryrefslogtreecommitdiff
path: root/arch/i386/include
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.xyz>2021-09-28 12:25:46 -0500
committerDanny Holman <dholman@gymli.xyz>2021-09-28 12:25:46 -0500
commitc4845de1e4ba49ba066e5729814fdb5bcd7e46f8 (patch)
tree95fec0743270943ea316ebc4c2af970430c2ea33 /arch/i386/include
parentc0019e9d0bd2059351dc7d0274ee0479a71192fc (diff)
arch: i386: add PIC register support
Add functions that let the OS read the internal state registers of the 8259 PIC. Signed-off-by: Danny Holman <dholman@gymli.xyz>
Diffstat (limited to 'arch/i386/include')
-rw-r--r--arch/i386/include/kernel/pic.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/i386/include/kernel/pic.h b/arch/i386/include/kernel/pic.h
index c3ede4f..a9387db 100644
--- a/arch/i386/include/kernel/pic.h
+++ b/arch/i386/include/kernel/pic.h
@@ -22,6 +22,9 @@
#define ICW4_BUF_MASTER 0x0C
#define ICW4_SFNM 0x10
+#define PIC_READ_IRR 0x0A
+#define PIC_READ_ISR 0x0B
+
static inline void outb(uint16_t port, uint8_t value) {
asm volatile("outb %0, %1" : : "a"(value), "Nd"(port));
}
@@ -38,6 +41,8 @@ static inline void io_wait(void) {
void pic_eoi(unsigned char irq);
void pic_remap(void);
+uint16_t pic_get_irr(void);
+uint16_t pic_get_isr(void);
void irq_set_mask(uint8_t irq);
void irq_clear_mask(uint8_t irq);