io.h 916 B

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