Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
io.c
Go to the documentation of this file.
1 #include <linux/export.h>
2 #include <linux/types.h>
3 #include <linux/io.h>
4 
5 /*
6  * Copy data from IO memory space to "real" memory space.
7  * This needs to be optimized.
8  */
9 void _memcpy_fromio(void *to, const volatile void __iomem *from, size_t count)
10 {
11  unsigned char *t = to;
12  while (count) {
13  count--;
14  *t = readb(from);
15  t++;
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(volatile void __iomem *to, const void *from, size_t count)
25 {
26  const unsigned char *f = from;
27  while (count) {
28  count--;
29  writeb(*f, to);
30  f++;
31  to++;
32  }
33 }
34 
35 /*
36  * "memset" on IO memory space.
37  * This needs to be optimized.
38  */
39 void _memset_io(volatile void __iomem *dst, int c, size_t count)
40 {
41  while (count) {
42  count--;
43  writeb(c, dst);
44  dst++;
45  }
46 }
47