Linux-2.6.12-rc2
[linux-flexiantxendom0-natty.git] / arch / sh / kernel / io.c
1 /*
2  * linux/arch/sh/kernel/io.c
3  *
4  * Copyright (C) 2000  Stuart Menefy
5  *
6  * Provide real functions which expand to whatever the header file defined.
7  * Also definitions of machine independent IO functions.
8  */
9
10 #include <asm/io.h>
11 #include <linux/module.h>
12
13 /*
14  * Copy data from IO memory space to "real" memory space.
15  * This needs to be optimized.
16  */
17 void  memcpy_fromio(void * to, unsigned long from, unsigned long count)
18 {
19         char *p = to;
20         while (count) {
21                 count--;
22                 *p = readb(from);
23                 p++;
24                 from++;
25         }
26 }
27  
28 /*
29  * Copy data from "real" memory space to IO memory space.
30  * This needs to be optimized.
31  */
32 void  memcpy_toio(unsigned long to, const void * from, unsigned long count)
33 {
34         const char *p = from;
35         while (count) {
36                 count--;
37                 writeb(*p, to);
38                 p++;
39                 to++;
40         }
41 }
42  
43 /*
44  * "memset" on IO memory space.
45  * This needs to be optimized.
46  */
47 void  memset_io(unsigned long dst, int c, unsigned long count)
48 {
49         while (count) {
50                 count--;
51                 writeb(c, dst);
52                 dst++;
53         }
54 }
55
56 EXPORT_SYMBOL(memcpy_fromio);
57 EXPORT_SYMBOL(memcpy_toio);
58 EXPORT_SYMBOL(memset_io);
59