summaryrefslogtreecommitdiff
path: root/kernel/amd64/io/ports.S
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/amd64/io/ports.S')
-rw-r--r--kernel/amd64/io/ports.S24
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/amd64/io/ports.S b/kernel/amd64/io/ports.S
new file mode 100644
index 0000000..37301a4
--- /dev/null
+++ b/kernel/amd64/io/ports.S
@@ -0,0 +1,24 @@
+.section .text
+.global inb, outb
+
+inb:
+ push %rbp
+ mov %rsp, %rbp
+ sub $0x10, %rsp
+ mov %rdi, %rdx
+ xor %rax, %rax
+ in (%dx), %al
+ add $0x10, %rsp
+ pop %rbp
+ ret
+
+outb:
+ push %rbp
+ mov %rsp, %rbp
+ sub $0x10, %rsp
+ mov %rdi, %rdx
+ mov %rsi, %rax
+ out %al, (%dx)
+ add $0x10, %rsp
+ pop %rbp
+ ret