From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Meneghel Rodrigues Subject: [PATCH 1/2] kvm-unit-tests: add x86 port io accessors Date: Tue, 30 Aug 2011 20:51:04 -0300 Message-ID: <1314748265-15488-2-git-send-email-lmr@redhat.com> References: <1314748265-15488-1-git-send-email-lmr@redhat.com> Cc: avi@redhat.com, Lucas Meneghel Rodrigues , Anthony Liguori To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:3024 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753986Ab1H3XvT (ORCPT ); Tue, 30 Aug 2011 19:51:19 -0400 In-Reply-To: <1314748265-15488-1-git-send-email-lmr@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Signed-off-by: Anthony Liguori --- 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