Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 */