Introduce virt_to_phys()
PATCH 1/3 Introduce virt_to_phys()
virt_to_phys() returns the physical address given a virtual. In most cases this will just the input value as the vast majority of systems run in a 1:1 mode.
However in systems that are not running this way it should report the physical address or ~0 if no mapping exists for the given virtual address.
Signed-off-by Kumar Gala <[email protected]>
--- include/asm-arm/io.h | 5 +++++ include/asm-avr32/io.h | 5 +++++ include/asm-blackfin/io.h | 5 +++++ include/asm-i386/io.h | 5 +++++ include/asm-m68k/io.h | 5 +++++ include/asm-microblaze/io.h | 5 +++++ include/asm-mips/io.h | 2 +- include/asm-nios/io.h | 5 +++++ include/asm-nios2/io.h | 5 +++++ include/asm-ppc/io.h | 5 +++++ include/asm-sh/io.h | 5 +++++ include/asm-sparc/io.h | 5 +++++ 12 files changed, 56 insertions(+), 1 deletions(-)
include/asm-arm/io.h +5 -0
@@ -57,6 +57,11 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +/* * Generic virtual read/write. Note that we don't support half-word * read/writes. We define __arch_*[bl] here, and leave __arch_*w
include/asm-avr32/io.h +5 -0
@@ -125,4 +125,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long len) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif /* __ASM_AVR32_IO_H */
include/asm-blackfin/io.h +5 -0
@@ -64,6 +64,11 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +/* * These are for ISA/PCI shared memory _only_ and should never be used * on any other type of memory, including Zorro memory. They are meant to
include/asm-i386/io.h +5 -0
@@ -229,4 +229,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif
include/asm-m68k/io.h +5 -0
@@ -251,4 +251,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif /* __ASM_M68K_IO_H__ */
include/asm-microblaze/io.h +5 -0
@@ -155,4 +155,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif /* __MICROBLAZE_IO_H__ */
include/asm-mips/io.h +1 -1
@@ -118,7 +118,7 @@ static inline void set_io_port_base(unsigned long base)* Change virtual addresses to physical addresses and vv. * These are trivial on the 1:1 Linux/MIPS mapping */ -extern inline unsigned long virt_to_phys (volatile void * address) +extern inline phys_addr_t virt_to_phys (void * address) {return CPHYSADDR (address); }
include/asm-nios/io.h +5 -0
@@ -133,4 +133,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif /* __ASM_NIOS_IO_H_ */
include/asm-nios2/io.h +5 -0
@@ -53,6 +53,11 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +extern unsigned char inb (unsigned char *port);extern unsigned short inw (unsigned short *port);extern unsigned inl (unsigned port);
include/asm-ppc/io.h +5 -0
@@ -298,4 +298,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif
include/asm-sh/io.h +5 -0
@@ -261,5 +261,10 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif /* __KERNEL__ */ #endif /* __ASM_SH_IO_H */
include/asm-sparc/io.h +5 -0
@@ -90,4 +90,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags) } +static inline phys_addr_t virt_to_phys (void * vaddr) +{ +return (phys_addr_t)(vaddr); +} +#endif
Signature · 1 line
1.5.6.5