/*
- * linux/arch/m32r/mm/io_remap.c
+ * linux/arch/m32r/mm/ioremap-nommu.c
*
* Copyright (c) 2001, 2002 Hiroyuki Kondo
*
#define IS_LOW512(addr) (!((unsigned long)(addr) & ~0x1fffffffUL))
-void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
+void __iomem *
+__ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
{
return (void *)phys_addr;
}
#define IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == KSEG1)
-void iounmap(void *addr)
+void iounmap(volatile void __iomem *addr)
{
}
/*
- * linux/arch/m32r/mm/io_remap.c
+ * linux/arch/m32r/mm/ioremap.c
*
* Copyright (c) 2001, 2002 Hiroyuki Kondo
*
#include <asm/cacheflush.h>
#include <asm/tlbflush.h>
-static inline void remap_area_pte(pte_t * pte, unsigned long address, unsigned long size,
- unsigned long phys_addr, unsigned long flags)
+static inline void
+remap_area_pte(pte_t * pte, unsigned long address, unsigned long size,
+ unsigned long phys_addr, unsigned long flags)
{
unsigned long end;
unsigned long pfn;
} while (address && (address < end));
}
-static inline int remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size,
- unsigned long phys_addr, unsigned long flags)
+static inline int
+remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size,
+ unsigned long phys_addr, unsigned long flags)
{
unsigned long end;
return 0;
}
-static int remap_area_pages(unsigned long address, unsigned long phys_addr,
- unsigned long size, unsigned long flags)
+static int
+remap_area_pages(unsigned long address, unsigned long phys_addr,
+ unsigned long size, unsigned long flags)
{
int error;
pgd_t * dir;
#define IS_LOW512(addr) (!((unsigned long)(addr) & ~0x1fffffffUL))
-void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
+void __iomem *
+__ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
{
void __iomem * addr;
struct vm_struct * area;
#define IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == KSEG1)
-void iounmap(void *addr)
+void iounmap(volatile void __iomem *addr)
{
if (!IS_KSEG1(addr))
vfree((void *) (PAGE_MASK & (unsigned long) addr));
#ifndef _ASM_M32R_IO_H
#define _ASM_M32R_IO_H
-/* $Id$ */
-
+#include <linux/string.h>
+#include <linux/compiler.h>
#include <asm/page.h> /* __va */
#ifdef __KERNEL__
* this function
*/
-static __inline__ unsigned long virt_to_phys(volatile void * address)
+static inline unsigned long virt_to_phys(volatile void * address)
{
return __pa(address);
}
* this function
*/
-static __inline__ void *phys_to_virt(unsigned long address)
+static inline void *phys_to_virt(unsigned long address)
{
return __va(address);
}
-extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags);
+extern void __iomem *
+__ioremap(unsigned long offset, unsigned long size, unsigned long flags);
/**
* ioremap - map bus memory into CPU space
* address.
*/
-static __inline__ void * ioremap(unsigned long offset, unsigned long size)
+static inline void * ioremap(unsigned long offset, unsigned long size)
{
return __ioremap(offset, size, 0);
}
-extern void iounmap(void *addr);
+extern void iounmap(volatile void __iomem *addr);
#define ioremap_nocache(off,size) ioremap(off,size)
/*
static inline unsigned char _readb(unsigned long addr)
{
- return *(volatile unsigned char *)addr;
+ return *(volatile unsigned char __force *)addr;
}
static inline unsigned short _readw(unsigned long addr)
{
- return *(volatile unsigned short *)addr;
+ return *(volatile unsigned short __force *)addr;
}
static inline unsigned long _readl(unsigned long addr)
{
- return *(volatile unsigned long *)addr;
+ return *(volatile unsigned long __force *)addr;
}
static inline void _writeb(unsigned char b, unsigned long addr)
{
- *(volatile unsigned char *)addr = b;
+ *(volatile unsigned char __force *)addr = b;
}
static inline void _writew(unsigned short w, unsigned long addr)
{
- *(volatile unsigned short *)addr = w;
+ *(volatile unsigned short __force *)addr = w;
}
static inline void _writel(unsigned long l, unsigned long addr)
{
- *(volatile unsigned long *)addr = l;
+ *(volatile unsigned long __force *)addr = l;
}
#define inb _inb
return retval;
}
-#define memset_io(a, b, c) memset((void *)(a), (b), (c))
-#define memcpy_fromio(a, b, c) memcpy((a), (void *)(b), (c))
-#define memcpy_toio(a, b, c) memcpy((void *)(a), (b), (c))
+static inline void
+memset_io(volatile void __iomem *addr, unsigned char val, int count)
+{
+ memset((void __force *) addr, val, count);
+}
+
+static inline void
+memcpy_fromio(void *dst, volatile void __iomem *src, int count)
+{
+ memcpy(dst, (void __force *) src, count);
+}
+
+static inline void
+memcpy_toio(volatile void __iomem *dst, const void *src, int count)
+{
+ memcpy((void __force *) dst, src, count);
+}
#endif /* __KERNEL__ */