diff options
Diffstat (limited to 'src/include/asm/io.h')
-rw-r--r-- | src/include/asm/io.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/include/asm/io.h b/src/include/asm/io.h new file mode 100644 index 0000000..d5cc42a --- /dev/null +++ b/src/include/asm/io.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #define outb(value,port) \ | ||
2 | __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port)) | ||
3 | |||
4 | |||
5 | #define inb(port) ({ \ | ||
6 | unsigned char _v; \ | ||
7 | __asm__ volatile ("inb %%dx,%%al":"=a" (_v):"d" (port)); \ | ||
8 | _v; \ | ||
9 | }) | ||
10 | |||
11 | #define outb_p(value,port) \ | ||
12 | __asm__ ("outb %%al,%%dx\n" \ | ||
13 | "\tjmp 1f\n" \ | ||
14 | "1:\tjmp 1f\n" \ | ||
15 | "1:"::"a" (value),"d" (port)) | ||
16 | |||
17 | #define inb_p(port) ({ \ | ||
18 | unsigned char _v; \ | ||
19 | __asm__ volatile ("inb %%dx,%%al\n" \ | ||
20 | "\tjmp 1f\n" \ | ||
21 | "1:\tjmp 1f\n" \ | ||
22 | "1:":"=a" (_v):"d" (port)); \ | ||
23 | _v; \ | ||
24 | }) | ||