From 91b52f187204a7578d4ec047b059f74730f86044 Mon Sep 17 00:00:00 2001 From: Drew Galbraith Date: Wed, 17 May 2023 20:26:51 -0700 Subject: [PATCH] Move IO Port Function to a separate file --- zion/common/port.h | 13 +++++++++++++ zion/zion.cpp | 6 ++---- 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 zion/common/port.h diff --git a/zion/common/port.h b/zion/common/port.h new file mode 100644 index 0000000..4919ff4 --- /dev/null +++ b/zion/common/port.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +static inline uint8_t inb(uint16_t port) { + uint8_t result; + asm volatile("inb %1, %0" : "=a"(result) : "Nd"(port)); + return result; +} + +static inline void outb(uint16_t port, uint8_t value) { + asm volatile("outb %0, %1" ::"a"(value), "Nd"(port)); +} diff --git a/zion/zion.cpp b/zion/zion.cpp index c22c920..8e59f54 100644 --- a/zion/zion.cpp +++ b/zion/zion.cpp @@ -1,10 +1,8 @@ #include -#define COM1 0x3f8 +#include "common/port.h" -void outb(uint16_t port, uint8_t value) { - asm volatile("outb %0, %1" ::"a"(value), "Nd"(port)); -} +#define COM1 0x3f8 extern "C" void zion() { outb(COM1, 'a');