summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/bus/mainbus/pio.S
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-11-15 14:22:36 -0500
committerIan Moffett <ian@osmora.org>2025-11-15 14:22:36 -0500
commit7235966ea34c87724aee65792d2f183e653faabb (patch)
tree85001d49f3d9f7c598626cab0a868c00a9798397 /sys/arch/amd64/bus/mainbus/pio.S
parent0a13b62445d603177c89d6b4eab429df5a1515db (diff)
kern/amd64: mainbus: Add port I/O helpers
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/arch/amd64/bus/mainbus/pio.S')
-rw-r--r--sys/arch/amd64/bus/mainbus/pio.S42
1 files changed, 42 insertions, 0 deletions
diff --git a/sys/arch/amd64/bus/mainbus/pio.S b/sys/arch/amd64/bus/mainbus/pio.S
new file mode 100644
index 0000000..e18b7cc
--- /dev/null
+++ b/sys/arch/amd64/bus/mainbus/pio.S
@@ -0,0 +1,42 @@
+ .text
+ .globl pio_outb
+pio_outb:
+ mov %rdi, %rdx // PORT
+ mov %rsi, %rax // VAL
+ outb %al, %dx
+ retq
+
+ .globl pio_outw
+pio_outw:
+ mov %rdi, %rdx // PORT
+ mov %rsi, %rax // VAL
+ outw %ax, %dx
+ retq
+
+ .globl pio_outl
+pio_outl:
+ mov %rdi, %rdx // PORT
+ mov %rsi, %rax // VAL
+ outl %eax, %dx
+ retq
+
+ .globl pio_inb
+pio_inb:
+ mov %rdi, %rdx // PORT
+ xor %rax, %rax
+ inb %dx, %al
+ retq
+
+.global pio_inw
+pio_inw:
+ mov %rdi, %rdx // PORT
+ xor %rax, %rax
+ inw %dx, %ax
+ retq
+
+.global pio_inl
+pio_inl:
+ mov %rdi, %rdx // PORT
+ xor %rax, %rax
+ inl %dx, %eax
+ retq