diff --git a/kernel/kernio.cpp b/kernel/kernio.cpp new file mode 100644 index 0000000..a968f1e --- /dev/null +++ b/kernel/kernio.cpp @@ -0,0 +1,13 @@ +#include "kernio.h" + +inline void outb(uint16_t port, uint8_t b) { + asm("outb %0, %1" : : "a"(b), "Nd"(port)); +} + +inline uint8_t inb(uint16_t port) { + uint8_t ret; + asm volatile ( "inb %1, %0" + : "=a"(ret) // Output + : "Nd"(port)); // Input + return ret; +} diff --git a/kernel/kernio.h b/kernel/kernio.h new file mode 100644 index 0000000..0d37f00 --- /dev/null +++ b/kernel/kernio.h @@ -0,0 +1,4 @@ +#include + +inline void outb(uint16_t port, uint8_t b); +inline uint8_t inb(uint16_t port);