Gitweb: http://git.kernel.org/linus/1c5b9069e12e20d2fe883076ae0bf73966492108
Commit: 1c5b9069e12e20d2fe883076ae0bf73966492108
Parent: 910bf6ad0be3e1efbda0e9d358794937b52c9860
Author: Brian Gerst <brgerst@gmail.com>
AuthorDate: Fri Feb 5 09:37:09 2010 -0500
Committer: H. Peter Anvin <hpa@zytor.com>
CommitDate: Fri Feb 5 13:57:40 2010 -0800
x86: Merge io.h
io_32.h and io_64.h are now identical. Merge them into io.h.
Signed-off-by: Brian Gerst <brgerst@gmail.com>
LKML-Reference: <1265380629-3212-8-git-send-email-brgerst@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
---
arch/x86/include/asm/io.h | 155 +++++++++++++++++++++++++++++++++++++++-
arch/x86/include/asm/io_32.h | 161 ------------------------------------------
arch/x86/include/asm/io_64.h | 161 ------------------------------------------
3 files changed, 152 insertions(+), 325 deletions(-)
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 7373932..a1dcfa3 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -1,8 +1,42 @@
#ifndef _ASM_X86_IO_H
#define _ASM_X86_IO_H
+/*
+ * This file contains the definitions for the x86 IO instructions
+ * inb/inw/inl/outb/outw/outl and the "string versions" of the same
+ * (insb/insw/insl/outsb/outsw/outsl). You can also use "pausing"
+ * versions of the single-IO instructions (inb_p/inw_p/..).
+ *
+ * This file is not meant to be obfuscating: it's just complicated
+ * to (a) handle it all in a way that makes gcc able to optimize it
+ * as well as possible and (b) trying to avoid writing the same thing
+ * over and over again with slight variations and possibly making a
+ * mistake somewhere.
+ */
+
+/*
+ * Thanks to James van Artsdalen for a better timing-fix than
+ * the two short jumps: using outb's to a nonexistent port seems
+ * to guarantee better timings even on fast machines.
+ *
+ * On the other hand, I'd like to be sure of a non-existent port:
+ * I ...