From d83a4444e5b8765d2729ed474587196ebe3ec8d4 Mon Sep 17 00:00:00 2001 From: Ben Date: Thu, 25 Apr 2019 08:57:40 +0100 Subject: [PATCH] Kernel IO --- kernel/kernio.cpp | 13 +++++++++++++ kernel/kernio.h | 4 ++++ 2 files changed, 17 insertions(+) create mode 100644 kernel/kernio.cpp create mode 100644 kernel/kernio.h 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);