55 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  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
 |