x86-64: Reorganize io_64.h
Make it more similar to io_32.h. No real code changes. Signed-off-by: Brian Gerst <brgerst@gmail.com> LKML-Reference: <1265380629-3212-4-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
committed by
H. Peter Anvin
parent
bd2984e964
commit
2e16fc7728
@@ -35,6 +35,54 @@
|
|||||||
* - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
* - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
|
#include <asm-generic/iomap.h>
|
||||||
|
|
||||||
|
#include <linux/vmalloc.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Convert a virtual cached pointer to an uncached pointer
|
||||||
|
*/
|
||||||
|
#define xlate_dev_kmem_ptr(p) p
|
||||||
|
|
||||||
|
void memset_io(volatile void __iomem *a, int b, size_t c);
|
||||||
|
|
||||||
|
void __memcpy_fromio(void *, unsigned long, unsigned);
|
||||||
|
static inline void memcpy_fromio(void *to, const volatile void __iomem *from,
|
||||||
|
unsigned len)
|
||||||
|
{
|
||||||
|
__memcpy_fromio(to, (unsigned long)from, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
void __memcpy_toio(unsigned long, const void *, unsigned);
|
||||||
|
static inline void memcpy_toio(volatile void __iomem *to, const void *from,
|
||||||
|
unsigned len)
|
||||||
|
{
|
||||||
|
__memcpy_toio((unsigned long)to, from, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ISA space is 'always mapped' on a typical x86 system, no need to
|
||||||
|
* explicitly ioremap() it. The fact that the ISA IO space is mapped
|
||||||
|
* to PAGE_OFFSET is pure coincidence - it does not mean ISA values
|
||||||
|
* are physical addresses. The following constant pointer can be
|
||||||
|
* used as the IO-area pointer (it can be iounmapped as well, so the
|
||||||
|
* analogy with PCI is quite large):
|
||||||
|
*/
|
||||||
|
#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cache management
|
||||||
|
*
|
||||||
|
* This needed for two cases
|
||||||
|
* 1. Out of order aware processors
|
||||||
|
* 2. Accidentally out of order processors (PPro errata #51)
|
||||||
|
*/
|
||||||
|
#define flush_write_buffers() do { } while (0)
|
||||||
|
|
||||||
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
extern void native_io_delay(void);
|
extern void native_io_delay(void);
|
||||||
|
|
||||||
extern int io_delay_type;
|
extern int io_delay_type;
|
||||||
@@ -53,6 +101,7 @@ static inline void slow_down_io(void)
|
|||||||
native_io_delay();
|
native_io_delay();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -136,46 +185,5 @@ __OUTS(b)
|
|||||||
__OUTS(w)
|
__OUTS(w)
|
||||||
__OUTS(l)
|
__OUTS(l)
|
||||||
|
|
||||||
#if defined(__KERNEL__) && defined(__x86_64__)
|
|
||||||
|
|
||||||
#include <linux/vmalloc.h>
|
|
||||||
|
|
||||||
#include <asm-generic/iomap.h>
|
|
||||||
|
|
||||||
void __memcpy_fromio(void *, unsigned long, unsigned);
|
|
||||||
void __memcpy_toio(unsigned long, const void *, unsigned);
|
|
||||||
|
|
||||||
static inline void memcpy_fromio(void *to, const volatile void __iomem *from,
|
|
||||||
unsigned len)
|
|
||||||
{
|
|
||||||
__memcpy_fromio(to, (unsigned long)from, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void memcpy_toio(volatile void __iomem *to, const void *from,
|
|
||||||
unsigned len)
|
|
||||||
{
|
|
||||||
__memcpy_toio((unsigned long)to, from, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
void memset_io(volatile void __iomem *a, int b, size_t c);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ISA space is 'always mapped' on a typical x86 system, no need to
|
|
||||||
* explicitly ioremap() it. The fact that the ISA IO space is mapped
|
|
||||||
* to PAGE_OFFSET is pure coincidence - it does not mean ISA values
|
|
||||||
* are physical addresses. The following constant pointer can be
|
|
||||||
* used as the IO-area pointer (it can be iounmapped as well, so the
|
|
||||||
* analogy with PCI is quite large):
|
|
||||||
*/
|
|
||||||
#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
|
|
||||||
|
|
||||||
#define flush_write_buffers()
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Convert a virtual cached pointer to an uncached pointer
|
|
||||||
*/
|
|
||||||
#define xlate_dev_kmem_ptr(p) p
|
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
|
||||||
|
|
||||||
#endif /* _ASM_X86_IO_64_H */
|
#endif /* _ASM_X86_IO_64_H */
|
||||||
|
Reference in New Issue
Block a user