diff options
Diffstat (limited to 'mirai/interrupts/pic/eoi.zig')
| -rw-r--r-- | mirai/interrupts/pic/eoi.zig | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mirai/interrupts/pic/eoi.zig b/mirai/interrupts/pic/eoi.zig new file mode 100644 index 0000000..810ea37 --- /dev/null +++ b/mirai/interrupts/pic/eoi.zig @@ -0,0 +1,20 @@ +//! PIC End-of-Interrupt + +const ports = @import("ports.zig"); +const asm_io = @import("../../asm/io/io.zig"); + +pub fn send(irq: u4) void { + if (irq >= 8) { + asm_io.outb(ports.pic2_command, ports.eoi); + } + asm_io.outb(ports.pic1_command, ports.eoi); +} + +pub fn send_master() void { + asm_io.outb(ports.pic1_command, ports.eoi); +} + +pub fn send_slave() void { + asm_io.outb(ports.pic2_command, ports.eoi); + asm_io.outb(ports.pic1_command, ports.eoi); +} |
