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