]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - arch/arm/kernel/io.c
Linux-2.6.12-rc2
[mirror_ubuntu-artful-kernel.git] / arch / arm / kernel / io.c
1 #include <linux/module.h>
2 #include <linux/types.h>
3
4 #include <asm/io.h>
5
6 /*
7 * Copy data from IO memory space to "real" memory space.
8 * This needs to be optimized.
9 */
10 void _memcpy_fromio(void *to, void __iomem *from, size_t count)
11 {
12 unsigned char *t = to;
13 while (count) {
14 count--;
15 *t = readb(from);
16 t++;
17 from++;
18 }
19 }
20
21 /*
22 * Copy data from "real" memory space to IO memory space.
23 * This needs to be optimized.
24 */
25 void _memcpy_toio(void __iomem *to, const void *from, size_t count)
26 {
27 const unsigned char *f = from;
28 while (count) {
29 count--;
30 writeb(*f, to);
31 f++;
32 to++;
33 }
34 }
35
36 /*
37 * "memset" on IO memory space.
38 * This needs to be optimized.
39 */
40 void _memset_io(void __iomem *dst, int c, size_t count)
41 {
42 while (count) {
43 count--;
44 writeb(c, dst);
45 dst++;
46 }
47 }
48
49 EXPORT_SYMBOL(_memcpy_fromio);
50 EXPORT_SYMBOL(_memcpy_toio);
51 EXPORT_SYMBOL(_memset_io);