/*1* include/asm-s390/io.h2*3* S390 version4* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation5* Author(s): Martin Schwidefsky ([email protected])6*7* Derived from "include/asm-i386/io.h"8*/910#ifndef _S390_IO_H11#define _S390_IO_H1213#ifdef __KERNEL__1415#include <asm/page.h>1617#define IO_SPACE_LIMIT 0xffffffff1819/*20* Change virtual addresses to physical addresses and vv.21* These are pretty trivial22*/23static inline unsigned long virt_to_phys(volatile void * address)24{25unsigned long real_address;26asm volatile(27" lra %0,0(%1)\n"28" jz 0f\n"29" la %0,0\n"30"0:"31: "=a" (real_address) : "a" (address) : "cc");32return real_address;33}3435static inline void * phys_to_virt(unsigned long address)36{37return (void *) address;38}3940/*41* Convert a physical pointer to a virtual kernel pointer for /dev/mem42* access43*/44#define xlate_dev_mem_ptr(p) __va(p)4546/*47* Convert a virtual cached pointer to an uncached pointer48*/49#define xlate_dev_kmem_ptr(p) p5051#endif /* __KERNEL__ */5253#endif545556