linux/arch/s390/include/asm/io.h
<<
>>
Prefs
   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 */
  24static 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
  36static inline void * phys_to_virt(unsigned long address)
  37{
  38        return (void *) address;
  39}
  40
  41/*
  42 * Convert a physical pointer to a virtual kernel pointer for /dev/mem
  43 * access
  44 */
  45#define xlate_dev_mem_ptr(p)    __va(p)
  46
  47/*
  48 * Convert a virtual cached pointer to an uncached pointer
  49 */
  50#define xlate_dev_kmem_ptr(p)   p
  51
  52#endif /* __KERNEL__ */
  53
  54#endif
  55