summaryrefslogtreecommitdiff
path: root/arch/i386/include/kernel/pic.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/include/kernel/pic.h')
-rw-r--r--arch/i386/include/kernel/pic.h17
1 files changed, 3 insertions, 14 deletions
diff --git a/arch/i386/include/kernel/pic.h b/arch/i386/include/kernel/pic.h
index ca3cc99..2b757ee 100644
--- a/arch/i386/include/kernel/pic.h
+++ b/arch/i386/include/kernel/pic.h
@@ -1,8 +1,7 @@
#ifndef I386_PIC_H
#define I386_PIC_H
-#include <kernel/isr.h>
-#include <kernel/idt.h>
+#include <kernel/asm.h>
#include <stdint.h>
#define PIC1 0x20
@@ -27,16 +26,6 @@
#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));
-}
-
-static inline uint8_t inb(uint16_t port) {
- uint8_t ret;
- __asm__ volatile("inb %1, %0" : "=a"(ret) : "Nd"(port));
- return ret;
-}
-
static inline void io_wait(void) {
outb(0x80, 0);
}
@@ -46,8 +35,8 @@ void pic_remap(void);
uint16_t pic_get_irr(void);
uint16_t pic_get_isr(void);
-void register_irq_handler(uint8_t irq, void (*handler)(struct isr_frame *frame));
-void irq_dispatch(struct isr_frame *frame);
+void register_irq_handler(uint8_t irq, void (*handler)(struct regs *regs));
+void irq_dispatch(struct regs *regs);
void irq_set_mask(uint8_t irq);
void irq_clear_mask(uint8_t irq);