Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 |