mxrox/src/kernel/util.rs
2025-02-02 20:43:39 +03:00

27 lines
542 B
Rust

use core::arch::asm;
pub unsafe fn outb(port: u16, value: u8) {
asm!("out dx, al", in("dx") port, in("al") value, options(nostack, preserves_flags));
}
pub unsafe fn inb(port: u16) -> u8 {
let result: u8;
asm!("inb %dx, %al", in("dx") port, out("al") result, options(nostack, preserves_flags, att_syntax));
result
}
pub unsafe fn nop() {
asm!("nop", options(nostack, preserves_flags));
}
pub unsafe fn io_wait() {
outb(0x80, 0);
}
pub unsafe fn sti() {
asm!("sti");
}
pub unsafe fn cli() {
asm!("cli");
}