* This needs to be optimized.
*/
void
-__ia64_memcpy_fromio (void * to, unsigned long from, long count)
+__ia64_memcpy_fromio (void *to, unsigned long from, long count)
{
+ char *dst = to;
+
while (count) {
count--;
- *(char *) to = readb(from);
- ((char *) to)++;
- from++;
+ *dst++ = readb(from++);
}
}
EXPORT_SYMBOL(__ia64_memcpy_fromio);
* This needs to be optimized.
*/
void
-__ia64_memcpy_toio (unsigned long to, void * from, long count)
+__ia64_memcpy_toio (unsigned long to, void *from, long count)
{
+ char *src = from;
+
while (count) {
count--;
- writeb(*(char *) from, to);
- ((char *) from)++;
- to++;
+ writeb(*src++, to++);
}
}
EXPORT_SYMBOL(__ia64_memcpy_toio);
#else /* ! SMP */
-#define per_cpu(var, cpu) ((void)cpu, per_cpu__##var)
+#define per_cpu(var, cpu) (*((void)cpu, &per_cpu__##var))
#define __get_cpu_var(var) per_cpu__##var
#define per_cpu_init() (__phys_per_cpu_start)