0001
0002 #ifndef _ASM_X86_SHARED_IO_H
0003 #define _ASM_X86_SHARED_IO_H
0004
0005 #include <linux/types.h>
0006
0007 #define BUILDIO(bwl, bw, type) \
0008 static inline void __out##bwl(type value, u16 port) \
0009 { \
0010 asm volatile("out" #bwl " %" #bw "0, %w1" \
0011 : : "a"(value), "Nd"(port)); \
0012 } \
0013 \
0014 static inline type __in##bwl(u16 port) \
0015 { \
0016 type value; \
0017 asm volatile("in" #bwl " %w1, %" #bw "0" \
0018 : "=a"(value) : "Nd"(port)); \
0019 return value; \
0020 }
0021
0022 BUILDIO(b, b, u8)
0023 BUILDIO(w, w, u16)
0024 BUILDIO(l, , u32)
0025 #undef BUILDIO
0026
0027 #define inb __inb
0028 #define inw __inw
0029 #define inl __inl
0030 #define outb __outb
0031 #define outw __outw
0032 #define outl __outl
0033
0034 #endif