summaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/io.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-08-14 10:55:26 +0200
committerIngo Molnar <mingo@elte.hu>2008-08-14 10:55:26 +0200
commitd4439087d316613548c70472291bf4ca646ce24b (patch)
tree4819f39cbbfcc2ed9c9f85c7a91cbf142f5b02d4 /arch/s390/include/asm/io.h
parent26d809af6397ce5c37f5c44d89734d19cce1ad25 (diff)
parent30a2f3c60a84092c8084dfe788b710f8d0768cd4 (diff)
Merge commit 'v2.6.27-rc3' into x86/xsave
Conflicts: arch/x86/kernel/genapic_64.c include/asm-x86/kvm_host.h Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/s390/include/asm/io.h')
-rw-r--r--arch/s390/include/asm/io.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h
new file mode 100644
index 00000000000..b7ff6afc3ca
--- /dev/null
+++ b/arch/s390/include/asm/io.h
@@ -0,0 +1,54 @@
+/*
+ * include/asm-s390/io.h
+ *
+ * S390 version
+ * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
+ *
+ * Derived from "include/asm-i386/io.h"
+ */
+
+#ifndef _S390_IO_H
+#define _S390_IO_H
+
+#ifdef __KERNEL__
+
+#include <asm/page.h>
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/*
+ * Change virtual addresses to physical addresses and vv.
+ * These are pretty trivial
+ */
+static inline unsigned long virt_to_phys(volatile void * address)
+{
+ unsigned long real_address;
+ asm volatile(
+ " lra %0,0(%1)\n"
+ " jz 0f\n"
+ " la %0,0\n"
+ "0:"
+ : "=a" (real_address) : "a" (address) : "cc");
+ return real_address;
+}
+
+static inline void * phys_to_virt(unsigned long address)
+{
+ return (void *) address;
+}
+
+/*
+ * Convert a physical pointer to a virtual kernel pointer for /dev/mem
+ * access
+ */
+#define xlate_dev_mem_ptr(p) __va(p)
+
+/*
+ * Convert a virtual cached pointer to an uncached pointer
+ */
+#define xlate_dev_kmem_ptr(p) p
+
+#endif /* __KERNEL__ */
+
+#endif