diff options
Diffstat (limited to 'boot/port.zig')
| -rw-r--r-- | boot/port.zig | 15 |
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), + ); +} |
