Linux-2.6.12-rc2
[GitHub/mt8127/android_kernel_alcatel_ttab.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