hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/boot/port.zig
diff options
context:
space:
mode:
Diffstat (limited to 'boot/port.zig')
-rw-r--r--boot/port.zig15
1 files changed, 15 insertions, 0 deletions
diff --git a/boot/port.zig b/boot/port.zig
index be760b1..d38f829 100644
--- a/boot/port.zig
+++ b/boot/port.zig
@@ -17,3 +17,18 @@ pub inline fn inb(port: u16) u8 {
: [port] "N{dx}" (port),
);
}
+
+pub inline fn outw(port: u16, val: u16) void {
+ asm volatile ("outw %[val], %[port]"
+ :
+ : [val] "{ax}" (val),
+ [port] "N{dx}" (port),
+ );
+}
+
+pub inline fn inw(port: u16) u16 {
+ return asm volatile ("inw %[port], %[result]"
+ : [result] "={ax}" (-> u16),
+ : [port] "N{dx}" (port),
+ );
+}