diff options
| author | Ian Moffett <ian@osmora.org> | 2025-11-15 14:22:36 -0500 |
|---|---|---|
| committer | Ian Moffett <ian@osmora.org> | 2025-11-15 14:22:36 -0500 |
| commit | 7235966ea34c87724aee65792d2f183e653faabb (patch) | |
| tree | 85001d49f3d9f7c598626cab0a868c00a9798397 /sys/arch | |
| parent | 0a13b62445d603177c89d6b4eab429df5a1515db (diff) | |
kern/amd64: mainbus: Add port I/O helpers
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/arch')
| -rw-r--r-- | sys/arch/amd64/bus/mainbus/pio.S | 42 |
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 |
