File: /usr/src/linux/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, unsigned long from, size_t count)
11 {
12 while (count) {
13 count--;
14 *(char *) to = readb(from);
15 ((char *) to)++;
16 from++;
17 }
18 }
19
20 /*
21 * Copy data from "real" memory space to IO memory space.
22 * This needs to be optimized.
23 */
24 void _memcpy_toio(unsigned long to, const void * from, size_t count)
25 {
26 while (count) {
27 count--;
28 writeb(*(char *) from, to);
29 ((char *) from)++;
30 to++;
31 }
32 }
33
34 /*
35 * "memset" on IO memory space.
36 * This needs to be optimized.
37 */
38 void _memset_io(unsigned long dst, int c, size_t count)
39 {
40 while (count) {
41 count--;
42 writeb(c, dst);
43 dst++;
44 }
45 }
46
47 EXPORT_SYMBOL(_memcpy_fromio);
48 EXPORT_SYMBOL(_memcpy_toio);
49 EXPORT_SYMBOL(_memset_io);
50