10 asm volatile("inb %w1,%0" : "=a"(data) : "d"(port));
15 io_insb(int port, void* addr, int cnt)
20 : "=D"(addr), "=c"(cnt)
21 : "d"(port), "0"(addr), "1"(cnt)
25 static inline uint16_t
29 asm volatile("inw %w1,%0" : "=a"(data) : "d"(port));
34 io_insw(int port, void* addr, int cnt)
39 : "=D"(addr), "=c"(cnt)
40 : "d"(port), "0"(addr), "1"(cnt)
44 static inline uint32_t
48 asm volatile("inl %w1,%0" : "=a"(data) : "d"(port));
53 io_insl(int port, void* addr, int cnt)
58 : "=D"(addr), "=c"(cnt)
59 : "d"(port), "0"(addr), "1"(cnt)
64 io_outb(int port, uint8_t data)
66 asm volatile("outb %0, %w1" : : "a"(data), "d"(port));
70 io_outsb(int port, const void* addr, int cnt)
75 : "=S"(addr), "=c"(cnt)
76 : "d"(port), "0"(addr), "1"(cnt)
81 io_outw(int port, uint16_t data)
83 asm volatile("outw %0,%w1" : : "a"(data), "d"(port));
87 io_outsw(int port, const void* addr, int cnt)
92 : "=S"(addr), "=c"(cnt)
93 : "d"(port), "0"(addr), "1"(cnt)
98 io_outsl(int port, const void* addr, int cnt)
103 : "=S"(addr), "=c"(cnt)
104 : "d"(port), "0"(addr), "1"(cnt)
109 io_outl(int port, uint32_t data)
111 asm volatile("outl %0,%w1" : : "a"(data), "d"(port));
114 #endif /* __LUNAIX_IO_H */