Linux Audio

Check our new training course

Loading...
v3.1
 1#include <linux/module.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 */
 9void _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 */
24void _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 */
39void _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
48EXPORT_SYMBOL(_memcpy_fromio);
49EXPORT_SYMBOL(_memcpy_toio);
50EXPORT_SYMBOL(_memset_io);
v3.5.6
 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 */
 9void _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 */
24void _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 */
39void _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
48EXPORT_SYMBOL(_memcpy_fromio);
49EXPORT_SYMBOL(_memcpy_toio);
50EXPORT_SYMBOL(_memset_io);