Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> --- lib/x86/io.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 40 insertions(+), 0 deletions(-) create mode 100644 lib/x86/io.h diff --git a/lib/x86/io.h b/lib/x86/io.h new file mode 100644 index 0000000..bd6341c --- /dev/null +++ b/lib/x86/io.h @@ -0,0 +1,40 @@ +#ifndef IO_H +#define IO_H + +static inline unsigned char inb(unsigned short port) +{ + unsigned char value; + asm volatile("inb %w1, %0" : "=a" (value) : "Nd" (port)); + return value; +} + +static inline unsigned short inw(unsigned short port) +{ + unsigned short value; + asm volatile("inw %w1, %0" : "=a" (value) : "Nd" (port)); + return value; +} + +static inline unsigned int inl(unsigned short port) +{ + unsigned int value; + asm volatile("inl %w1, %0" : "=a" (value) : "Nd" (port)); + return value; +} + +static inline void outb(unsigned char value, unsigned short port) +{ + asm volatile("outb %b0, %w1" : : "a"(value), "Nd"(port)); +} + +static inline void outw(unsigned short value, unsigned short port) +{ + asm volatile("outw %w0, %w1" : : "a"(value), "Nd"(port)); +} + +static inline void outl(unsigned int value, unsigned short port) +{ + asm volatile("outl %0, %w1" : : "a"(value), "Nd"(port)); +} + +#endif -- 1.7.6 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html