diff options
| -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 |
