PeeCeeI.c (6206aa8b2b9a45b4cf3ee31b7209b014be349fd9) | PeeCeeI.c (917c3660d6d9a4b073a3db7c10f6989adae4e191) |
---|---|
1/* 2 * PeeCeeI.c: The emerging standard... 3 * 4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 5 */ 6 | 1/* 2 * PeeCeeI.c: The emerging standard... 3 * 4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 5 */ 6 |
7#include <linux/module.h> 8 |
|
7#include <asm/io.h> 8#include <asm/byteorder.h> 9 10void outsb(unsigned long __addr, const void *src, unsigned long count) 11{ 12 void __iomem *addr = (void __iomem *) __addr; 13 const u8 *p = src; 14 15 while (count--) 16 outb(*p++, addr); 17} | 9#include <asm/io.h> 10#include <asm/byteorder.h> 11 12void outsb(unsigned long __addr, const void *src, unsigned long count) 13{ 14 void __iomem *addr = (void __iomem *) __addr; 15 const u8 *p = src; 16 17 while (count--) 18 outb(*p++, addr); 19} |
20EXPORT_SYMBOL(outsb); |
|
18 19void outsw(unsigned long __addr, const void *src, unsigned long count) 20{ 21 void __iomem *addr = (void __iomem *) __addr; 22 23 while (count--) { 24 __raw_writew(*(u16 *)src, addr); 25 src += sizeof(u16); 26 } 27} | 21 22void outsw(unsigned long __addr, const void *src, unsigned long count) 23{ 24 void __iomem *addr = (void __iomem *) __addr; 25 26 while (count--) { 27 __raw_writew(*(u16 *)src, addr); 28 src += sizeof(u16); 29 } 30} |
31EXPORT_SYMBOL(outsw); |
|
28 29void outsl(unsigned long __addr, const void *src, unsigned long count) 30{ 31 void __iomem *addr = (void __iomem *) __addr; 32 u32 l, l2; 33 34 if (!count) 35 return; --- 37 unchanged lines hidden (view full) --- 73 l |= (l2 >> 8); 74 __raw_writel(l, addr); 75 l = l2 << 24; 76 src += sizeof(u32); 77 } 78 break; 79 } 80} | 32 33void outsl(unsigned long __addr, const void *src, unsigned long count) 34{ 35 void __iomem *addr = (void __iomem *) __addr; 36 u32 l, l2; 37 38 if (!count) 39 return; --- 37 unchanged lines hidden (view full) --- 77 l |= (l2 >> 8); 78 __raw_writel(l, addr); 79 l = l2 << 24; 80 src += sizeof(u32); 81 } 82 break; 83 } 84} |
85EXPORT_SYMBOL(outsl); |
|
81 82void insb(unsigned long __addr, void *dst, unsigned long count) 83{ 84 void __iomem *addr = (void __iomem *) __addr; 85 86 if (count) { 87 u32 *pi; 88 u8 *pb = dst; --- 11 unchanged lines hidden (view full) --- 100 *pi++ = w; 101 count -= 4; 102 } 103 pb = (u8 *)pi; 104 while (count--) 105 *pb++ = inb(addr); 106 } 107} | 86 87void insb(unsigned long __addr, void *dst, unsigned long count) 88{ 89 void __iomem *addr = (void __iomem *) __addr; 90 91 if (count) { 92 u32 *pi; 93 u8 *pb = dst; --- 11 unchanged lines hidden (view full) --- 105 *pi++ = w; 106 count -= 4; 107 } 108 pb = (u8 *)pi; 109 while (count--) 110 *pb++ = inb(addr); 111 } 112} |
113EXPORT_SYMBOL(insb); |
|
108 109void insw(unsigned long __addr, void *dst, unsigned long count) 110{ 111 void __iomem *addr = (void __iomem *) __addr; 112 113 if (count) { 114 u16 *ps = dst; 115 u32 *pi; --- 11 unchanged lines hidden (view full) --- 127 *pi++ = w; 128 count -= 2; 129 } 130 ps = (u16 *)pi; 131 if (count) 132 *ps = le16_to_cpu(inw(addr)); 133 } 134} | 114 115void insw(unsigned long __addr, void *dst, unsigned long count) 116{ 117 void __iomem *addr = (void __iomem *) __addr; 118 119 if (count) { 120 u16 *ps = dst; 121 u32 *pi; --- 11 unchanged lines hidden (view full) --- 133 *pi++ = w; 134 count -= 2; 135 } 136 ps = (u16 *)pi; 137 if (count) 138 *ps = le16_to_cpu(inw(addr)); 139 } 140} |
141EXPORT_SYMBOL(insw); |
|
135 136void insl(unsigned long __addr, void *dst, unsigned long count) 137{ 138 void __iomem *addr = (void __iomem *) __addr; 139 140 if (count) { 141 if ((((unsigned long)dst) & 0x3) == 0) { 142 u32 *pi = dst; --- 52 unchanged lines hidden (view full) --- 195 *ps++ = ((l >> 8) & 0xffff); 196 pb = (u8 *)ps; 197 *pb = l; 198 break; 199 } 200 } 201 } 202} | 142 143void insl(unsigned long __addr, void *dst, unsigned long count) 144{ 145 void __iomem *addr = (void __iomem *) __addr; 146 147 if (count) { 148 if ((((unsigned long)dst) & 0x3) == 0) { 149 u32 *pi = dst; --- 52 unchanged lines hidden (view full) --- 202 *ps++ = ((l >> 8) & 0xffff); 203 pb = (u8 *)ps; 204 *pb = l; 205 break; 206 } 207 } 208 } 209} |
210EXPORT_SYMBOL(insl); |
|
203 | 211 |