Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v4.18 80 lines 2.0 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _KMAP_H 3#define _KMAP_H 4 5#ifdef CONFIG_MMU 6 7/* Values for nocacheflag and cmode */ 8#define IOMAP_FULL_CACHING 0 9#define IOMAP_NOCACHE_SER 1 10#define IOMAP_NOCACHE_NONSER 2 11#define IOMAP_WRITETHROUGH 3 12 13/* 14 * These functions exported by arch/m68k/mm/kmap.c. 15 * Only needed on MMU enabled systems. 16 */ 17extern void __iomem *__ioremap(unsigned long physaddr, unsigned long size, 18 int cacheflag); 19extern void iounmap(void __iomem *addr); 20extern void __iounmap(void *addr, unsigned long size); 21 22#define ioremap ioremap 23static inline void __iomem *ioremap(unsigned long physaddr, unsigned long size) 24{ 25 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER); 26} 27 28#define ioremap_nocache ioremap_nocache 29static inline void __iomem *ioremap_nocache(unsigned long physaddr, 30 unsigned long size) 31{ 32 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER); 33} 34 35#define ioremap_uc ioremap_nocache 36static inline void __iomem *ioremap_wt(unsigned long physaddr, 37 unsigned long size) 38{ 39 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH); 40} 41 42#define ioremap_fillcache ioremap_fullcache 43static inline void __iomem *ioremap_fullcache(unsigned long physaddr, 44 unsigned long size) 45{ 46 return __ioremap(physaddr, size, IOMAP_FULL_CACHING); 47} 48 49static inline void memset_io(volatile void __iomem *addr, unsigned char val, 50 int count) 51{ 52 __builtin_memset((void __force *) addr, val, count); 53} 54 55static inline void memcpy_fromio(void *dst, const volatile void __iomem *src, 56 int count) 57{ 58 __builtin_memcpy(dst, (void __force *) src, count); 59} 60 61static inline void memcpy_toio(volatile void __iomem *dst, const void *src, 62 int count) 63{ 64 __builtin_memcpy((void __force *) dst, src, count); 65} 66 67#endif /* CONFIG_MMU */ 68 69#define ioport_map ioport_map 70static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) 71{ 72 return (void __iomem *) port; 73} 74 75#define ioport_unmap ioport_unmap 76static inline void ioport_unmap(void __iomem *p) 77{ 78} 79 80#endif /* _KMAP_H */