xref: /linux/arch/s390/include/asm/io.h (revision 5148fa52a12fa1b97c730b2fe321f2aad7ea041c)
1 /*
2  *  include/asm-s390/io.h
3  *
4  *  S390 version
5  *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
6  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
7  *
8  *  Derived from "include/asm-i386/io.h"
9  */
10 
11 #ifndef _S390_IO_H
12 #define _S390_IO_H
13 
14 #ifdef __KERNEL__
15 
16 #include <asm/page.h>
17 
18 #define IO_SPACE_LIMIT 0xffffffff
19 
20 /*
21  * Change virtual addresses to physical addresses and vv.
22  * These are pretty trivial
23  */
24 static inline unsigned long virt_to_phys(volatile void * address)
25 {
26 	unsigned long real_address;
27 	asm volatile(
28 		 "	lra	%0,0(%1)\n"
29 		 "	jz	0f\n"
30 		 "	la	%0,0\n"
31                  "0:"
32 		 : "=a" (real_address) : "a" (address) : "cc");
33         return real_address;
34 }
35 
36 static inline void * phys_to_virt(unsigned long address)
37 {
38 	return (void *) address;
39 }
40 
41 void *xlate_dev_mem_ptr(unsigned long phys);
42 void unxlate_dev_mem_ptr(unsigned long phys, void *addr);
43 
44 /*
45  * Convert a virtual cached pointer to an uncached pointer
46  */
47 #define xlate_dev_kmem_ptr(p)	p
48 
49 #endif /* __KERNEL__ */
50 
51 #endif
52