Lines Matching refs:addr

32  * Technically, this should be 'if (VMALLOC_START < addr < VMALLOC_END),
36 #define INDIRECT_ADDR(addr) (((unsigned long)(addr) & 1UL<<63) != 0)
37 #define ADDR_TO_REGION(addr) (((unsigned long)addr >> 60) & 7)
40 #define INDIRECT_ADDR(addr) (((unsigned long)(addr) & 1UL<<31) != 0)
41 #define ADDR_TO_REGION(addr) (((unsigned long)addr >> 28) & 7)
70 #define ADDR2PORT(addr) ((unsigned long __force)(addr) & 0xffffff)
72 static unsigned int ioport_read8(const void __iomem *addr)
74 return inb(ADDR2PORT(addr));
77 static unsigned int ioport_read16(const void __iomem *addr)
79 return inw(ADDR2PORT(addr));
82 static unsigned int ioport_read32(const void __iomem *addr)
84 return inl(ADDR2PORT(addr));
87 static void ioport_write8(u8 datum, void __iomem *addr)
89 outb(datum, ADDR2PORT(addr));
92 static void ioport_write16(u16 datum, void __iomem *addr)
94 outw(datum, ADDR2PORT(addr));
97 static void ioport_write32(u32 datum, void __iomem *addr)
99 outl(datum, ADDR2PORT(addr));
102 static void ioport_read8r(const void __iomem *addr, void *dst, unsigned long count)
104 insb(ADDR2PORT(addr), dst, count);
107 static void ioport_read16r(const void __iomem *addr, void *dst, unsigned long count)
109 insw(ADDR2PORT(addr), dst, count);
112 static void ioport_read32r(const void __iomem *addr, void *dst, unsigned long count)
114 insl(ADDR2PORT(addr), dst, count);
117 static void ioport_write8r(void __iomem *addr, const void *s, unsigned long n)
119 outsb(ADDR2PORT(addr), s, n);
122 static void ioport_write16r(void __iomem *addr, const void *s, unsigned long n)
124 outsw(ADDR2PORT(addr), s, n);
127 static void ioport_write32r(void __iomem *addr, const void *s, unsigned long n)
129 outsl(ADDR2PORT(addr), s, n);
153 static unsigned int iomem_read8(const void __iomem *addr)
155 return readb(addr);
158 static unsigned int iomem_read16(const void __iomem *addr)
160 return readw(addr);
163 static unsigned int iomem_read16be(const void __iomem *addr)
165 return __raw_readw(addr);
168 static unsigned int iomem_read32(const void __iomem *addr)
170 return readl(addr);
173 static unsigned int iomem_read32be(const void __iomem *addr)
175 return __raw_readl(addr);
178 static u64 iomem_read64(const void __iomem *addr)
180 return readq(addr);
183 static u64 iomem_read64be(const void __iomem *addr)
185 return __raw_readq(addr);
188 static void iomem_write8(u8 datum, void __iomem *addr)
190 writeb(datum, addr);
193 static void iomem_write16(u16 datum, void __iomem *addr)
195 writew(datum, addr);
198 static void iomem_write16be(u16 datum, void __iomem *addr)
200 __raw_writew(datum, addr);
203 static void iomem_write32(u32 datum, void __iomem *addr)
205 writel(datum, addr);
208 static void iomem_write32be(u32 datum, void __iomem *addr)
210 __raw_writel(datum, addr);
213 static void iomem_write64(u64 datum, void __iomem *addr)
215 writel(datum, addr);
218 static void iomem_write64be(u64 datum, void __iomem *addr)
220 __raw_writel(datum, addr);
223 static void iomem_read8r(const void __iomem *addr, void *dst, unsigned long count)
226 *(u8 *)dst = __raw_readb(addr);
231 static void iomem_read16r(const void __iomem *addr, void *dst, unsigned long count)
234 *(u16 *)dst = __raw_readw(addr);
239 static void iomem_read32r(const void __iomem *addr, void *dst, unsigned long count)
242 *(u32 *)dst = __raw_readl(addr);
247 static void iomem_write8r(void __iomem *addr, const void *s, unsigned long n)
250 __raw_writeb(*(u8 *)s, addr);
255 static void iomem_write16r(void __iomem *addr, const void *s, unsigned long n)
258 __raw_writew(*(u16 *)s, addr);
263 static void iomem_write32r(void __iomem *addr, const void *s, unsigned long n)
266 __raw_writel(*(u32 *)s, addr);
300 unsigned int ioread8(const void __iomem *addr)
302 if (unlikely(INDIRECT_ADDR(addr)))
303 return iomap_ops[ADDR_TO_REGION(addr)]->read8(addr);
304 return *((u8 *)addr);
307 unsigned int ioread16(const void __iomem *addr)
309 if (unlikely(INDIRECT_ADDR(addr)))
310 return iomap_ops[ADDR_TO_REGION(addr)]->read16(addr);
311 return le16_to_cpup((u16 *)addr);
314 unsigned int ioread16be(const void __iomem *addr)
316 if (unlikely(INDIRECT_ADDR(addr)))
317 return iomap_ops[ADDR_TO_REGION(addr)]->read16be(addr);
318 return *((u16 *)addr);
321 unsigned int ioread32(const void __iomem *addr)
323 if (unlikely(INDIRECT_ADDR(addr)))
324 return iomap_ops[ADDR_TO_REGION(addr)]->read32(addr);
325 return le32_to_cpup((u32 *)addr);
328 unsigned int ioread32be(const void __iomem *addr)
330 if (unlikely(INDIRECT_ADDR(addr)))
331 return iomap_ops[ADDR_TO_REGION(addr)]->read32be(addr);
332 return *((u32 *)addr);
335 u64 ioread64(const void __iomem *addr)
337 if (unlikely(INDIRECT_ADDR(addr)))
338 return iomap_ops[ADDR_TO_REGION(addr)]->read64(addr);
339 return le64_to_cpup((u64 *)addr);
342 u64 ioread64be(const void __iomem *addr)
344 if (unlikely(INDIRECT_ADDR(addr)))
345 return iomap_ops[ADDR_TO_REGION(addr)]->read64be(addr);
346 return *((u64 *)addr);
349 u64 ioread64_lo_hi(const void __iomem *addr)
353 low = ioread32(addr);
354 high = ioread32(addr + sizeof(u32));
359 u64 ioread64_hi_lo(const void __iomem *addr)
363 high = ioread32(addr + sizeof(u32));
364 low = ioread32(addr);
369 void iowrite8(u8 datum, void __iomem *addr)
371 if (unlikely(INDIRECT_ADDR(addr))) {
372 iomap_ops[ADDR_TO_REGION(addr)]->write8(datum, addr);
374 *((u8 *)addr) = datum;
378 void iowrite16(u16 datum, void __iomem *addr)
380 if (unlikely(INDIRECT_ADDR(addr))) {
381 iomap_ops[ADDR_TO_REGION(addr)]->write16(datum, addr);
383 *((u16 *)addr) = cpu_to_le16(datum);
387 void iowrite16be(u16 datum, void __iomem *addr)
389 if (unlikely(INDIRECT_ADDR(addr))) {
390 iomap_ops[ADDR_TO_REGION(addr)]->write16be(datum, addr);
392 *((u16 *)addr) = datum;
396 void iowrite32(u32 datum, void __iomem *addr)
398 if (unlikely(INDIRECT_ADDR(addr))) {
399 iomap_ops[ADDR_TO_REGION(addr)]->write32(datum, addr);
401 *((u32 *)addr) = cpu_to_le32(datum);
405 void iowrite32be(u32 datum, void __iomem *addr)
407 if (unlikely(INDIRECT_ADDR(addr))) {
408 iomap_ops[ADDR_TO_REGION(addr)]->write32be(datum, addr);
410 *((u32 *)addr) = datum;
414 void iowrite64(u64 datum, void __iomem *addr)
416 if (unlikely(INDIRECT_ADDR(addr))) {
417 iomap_ops[ADDR_TO_REGION(addr)]->write64(datum, addr);
419 *((u64 *)addr) = cpu_to_le64(datum);
423 void iowrite64be(u64 datum, void __iomem *addr)
425 if (unlikely(INDIRECT_ADDR(addr))) {
426 iomap_ops[ADDR_TO_REGION(addr)]->write64be(datum, addr);
428 *((u64 *)addr) = datum;
432 void iowrite64_lo_hi(u64 val, void __iomem *addr)
434 iowrite32(val, addr);
435 iowrite32(val >> 32, addr + sizeof(u32));
438 void iowrite64_hi_lo(u64 val, void __iomem *addr)
440 iowrite32(val >> 32, addr + sizeof(u32));
441 iowrite32(val, addr);
446 void ioread8_rep(const void __iomem *addr, void *dst, unsigned long count)
448 if (unlikely(INDIRECT_ADDR(addr))) {
449 iomap_ops[ADDR_TO_REGION(addr)]->read8r(addr, dst, count);
452 *(u8 *)dst = *(u8 *)addr;
458 void ioread16_rep(const void __iomem *addr, void *dst, unsigned long count)
460 if (unlikely(INDIRECT_ADDR(addr))) {
461 iomap_ops[ADDR_TO_REGION(addr)]->read16r(addr, dst, count);
464 *(u16 *)dst = *(u16 *)addr;
470 void ioread32_rep(const void __iomem *addr, void *dst, unsigned long count)
472 if (unlikely(INDIRECT_ADDR(addr))) {
473 iomap_ops[ADDR_TO_REGION(addr)]->read32r(addr, dst, count);
476 *(u32 *)dst = *(u32 *)addr;
482 void iowrite8_rep(void __iomem *addr, const void *src, unsigned long count)
484 if (unlikely(INDIRECT_ADDR(addr))) {
485 iomap_ops[ADDR_TO_REGION(addr)]->write8r(addr, src, count);
488 *(u8 *)addr = *(u8 *)src;
494 void iowrite16_rep(void __iomem *addr, const void *src, unsigned long count)
496 if (unlikely(INDIRECT_ADDR(addr))) {
497 iomap_ops[ADDR_TO_REGION(addr)]->write16r(addr, src, count);
500 *(u16 *)addr = *(u16 *)src;
506 void iowrite32_rep(void __iomem *addr, const void *src, unsigned long count)
508 if (unlikely(INDIRECT_ADDR(addr))) {
509 iomap_ops[ADDR_TO_REGION(addr)]->write32r(addr, src, count);
512 *(u32 *)addr = *(u32 *)src;
525 void ioport_unmap(void __iomem *addr)
527 if (!INDIRECT_ADDR(addr)) {
528 iounmap(addr);
532 void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
534 if (!INDIRECT_ADDR(addr)) {
535 iounmap(addr);