Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.17-rc4 165 lines 2.6 kB view raw
1#include <linux/config.h> 2#include <linux/module.h> 3#include <linux/types.h> 4 5#include <asm/io.h> 6 7/* 8 * Copy data from IO memory space to "real" memory space. 9 * This needs to be optimized. 10 */ 11void memcpy_fromio(void *to, const volatile void __iomem *from, long count) 12{ 13 char *dst = to; 14 15 while (count) { 16 count--; 17 *dst++ = readb(from++); 18 } 19} 20EXPORT_SYMBOL(memcpy_fromio); 21 22/* 23 * Copy data from "real" memory space to IO memory space. 24 * This needs to be optimized. 25 */ 26void memcpy_toio(volatile void __iomem *to, const void *from, long count) 27{ 28 const char *src = from; 29 30 while (count) { 31 count--; 32 writeb(*src++, to++); 33 } 34} 35EXPORT_SYMBOL(memcpy_toio); 36 37/* 38 * "memset" on IO memory space. 39 * This needs to be optimized. 40 */ 41void memset_io(volatile void __iomem *dst, int c, long count) 42{ 43 unsigned char ch = (char)(c & 0xff); 44 45 while (count) { 46 count--; 47 writeb(ch, dst); 48 dst++; 49 } 50} 51EXPORT_SYMBOL(memset_io); 52 53#ifdef CONFIG_IA64_GENERIC 54 55#undef __ia64_inb 56#undef __ia64_inw 57#undef __ia64_inl 58#undef __ia64_outb 59#undef __ia64_outw 60#undef __ia64_outl 61#undef __ia64_readb 62#undef __ia64_readw 63#undef __ia64_readl 64#undef __ia64_readq 65#undef __ia64_readb_relaxed 66#undef __ia64_readw_relaxed 67#undef __ia64_readl_relaxed 68#undef __ia64_readq_relaxed 69#undef __ia64_writeb 70#undef __ia64_writew 71#undef __ia64_writel 72#undef __ia64_writeq 73#undef __ia64_mmiowb 74 75unsigned int 76__ia64_inb (unsigned long port) 77{ 78 return ___ia64_inb(port); 79} 80 81unsigned int 82__ia64_inw (unsigned long port) 83{ 84 return ___ia64_inw(port); 85} 86 87unsigned int 88__ia64_inl (unsigned long port) 89{ 90 return ___ia64_inl(port); 91} 92 93void 94__ia64_outb (unsigned char val, unsigned long port) 95{ 96 ___ia64_outb(val, port); 97} 98 99void 100__ia64_outw (unsigned short val, unsigned long port) 101{ 102 ___ia64_outw(val, port); 103} 104 105void 106__ia64_outl (unsigned int val, unsigned long port) 107{ 108 ___ia64_outl(val, port); 109} 110 111unsigned char 112__ia64_readb (void __iomem *addr) 113{ 114 return ___ia64_readb (addr); 115} 116 117unsigned short 118__ia64_readw (void __iomem *addr) 119{ 120 return ___ia64_readw (addr); 121} 122 123unsigned int 124__ia64_readl (void __iomem *addr) 125{ 126 return ___ia64_readl (addr); 127} 128 129unsigned long 130__ia64_readq (void __iomem *addr) 131{ 132 return ___ia64_readq (addr); 133} 134 135unsigned char 136__ia64_readb_relaxed (void __iomem *addr) 137{ 138 return ___ia64_readb (addr); 139} 140 141unsigned short 142__ia64_readw_relaxed (void __iomem *addr) 143{ 144 return ___ia64_readw (addr); 145} 146 147unsigned int 148__ia64_readl_relaxed (void __iomem *addr) 149{ 150 return ___ia64_readl (addr); 151} 152 153unsigned long 154__ia64_readq_relaxed (void __iomem *addr) 155{ 156 return ___ia64_readq (addr); 157} 158 159void 160__ia64_mmiowb(void) 161{ 162 ___ia64_mmiowb(); 163} 164 165#endif /* CONFIG_IA64_GENERIC */