1 #ifndef _IPXE_IOMAP_VIRT_H
2 #define _IPXE_IOMAP_VIRT_H
3 
4 /** @file
5  *
6  * iPXE I/O mapping API using phys_to_virt()
7  *
8  */
9 
10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 
12 #ifdef IOMAP_VIRT
13 #define IOMAP_PREFIX_virt
14 #else
15 #define IOMAP_PREFIX_virt __virt_
16 #endif
17 
18 static inline __always_inline void *
IOMAP_INLINE(virt,ioremap)19 IOMAP_INLINE ( virt, ioremap ) ( unsigned long bus_addr, size_t len __unused ) {
20 	return ( bus_addr ? phys_to_virt ( bus_addr ) : NULL );
21 }
22 
23 static inline __always_inline void
IOMAP_INLINE(virt,iounmap)24 IOMAP_INLINE ( virt, iounmap ) ( volatile const void *io_addr __unused ) {
25 	/* Nothing to do */
26 }
27 
28 static inline __always_inline unsigned long
IOMAP_INLINE(virt,io_to_bus)29 IOMAP_INLINE ( virt, io_to_bus ) ( volatile const void *io_addr ) {
30 	return virt_to_phys ( io_addr );
31 }
32 
33 #endif /* _IPXE_IOMAP_VIRT_H */
34