This source file includes following definitions.
- outb
- outb_p
- inb
- inb_p
1 #ifndef _ASM_IO_H
2 #define _ASM_IO_H
3
4 extern void inline outb(char value, unsigned short port)
5 {
6 __asm__ volatile ("outb %0,%1"
7 ::"a" ((char) value),"d" ((unsigned short) port));
8 }
9
10 extern void inline outb_p(char value, unsigned short port)
11 {
12 __asm__ volatile ("outb %0,%1\n"
13 "\tjmp 1f\n"
14 "1:\tjmp 1f\n"
15 "1:\tjmp 1f\n"
16 "1:\tjmp 1f\n"
17 "1:"
18 ::"a" ((char) value),"d" ((unsigned short) port));
19 }
20
21 extern unsigned char inline inb(unsigned short port)
22 {
23 unsigned char _v;
24 __asm__ volatile ("inb %1,%0"
25 :"=a" (_v):"d" ((unsigned short) port));
26 return _v;
27 }
28
29 extern unsigned char inline inb_p(unsigned short port)
30 {
31 unsigned char _v;
32 __asm__ volatile ("inb %1,%0\n"
33 "\tjmp 1f\n"
34 "1:\tjmp 1f\n"
35 "1:\tjmp 1f\n"
36 "1:\tjmp 1f\n"
37 "1:"
38 :"=a" (_v):"d" ((unsigned short) port));
39 return _v;
40 }
41
42 #endif