^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* This file is meant to be include multiple times by other headers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) /* last 2 argments are used by platforms/cell/io-workarounds.[ch] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) DEF_PCI_AC_RET(readb, u8, (const PCI_IO_ADDR addr), (addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) DEF_PCI_AC_RET(readw, u16, (const PCI_IO_ADDR addr), (addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) DEF_PCI_AC_RET(readl, u32, (const PCI_IO_ADDR addr), (addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) DEF_PCI_AC_RET(readw_be, u16, (const PCI_IO_ADDR addr), (addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) DEF_PCI_AC_RET(readl_be, u32, (const PCI_IO_ADDR addr), (addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) DEF_PCI_AC_NORET(writeb, (u8 val, PCI_IO_ADDR addr), (val, addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) DEF_PCI_AC_NORET(writew, (u16 val, PCI_IO_ADDR addr), (val, addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) DEF_PCI_AC_NORET(writel, (u32 val, PCI_IO_ADDR addr), (val, addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) DEF_PCI_AC_NORET(writew_be, (u16 val, PCI_IO_ADDR addr), (val, addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) DEF_PCI_AC_NORET(writel_be, (u32 val, PCI_IO_ADDR addr), (val, addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #ifdef __powerpc64__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) DEF_PCI_AC_RET(readq, u64, (const PCI_IO_ADDR addr), (addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) DEF_PCI_AC_RET(readq_be, u64, (const PCI_IO_ADDR addr), (addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) DEF_PCI_AC_NORET(writeq, (u64 val, PCI_IO_ADDR addr), (val, addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) DEF_PCI_AC_NORET(writeq_be, (u64 val, PCI_IO_ADDR addr), (val, addr), mem, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #endif /* __powerpc64__ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) DEF_PCI_AC_RET(inb, u8, (unsigned long port), (port), pio, port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) DEF_PCI_AC_RET(inw, u16, (unsigned long port), (port), pio, port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) DEF_PCI_AC_RET(inl, u32, (unsigned long port), (port), pio, port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) DEF_PCI_AC_NORET(outb, (u8 val, unsigned long port), (val, port), pio, port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) DEF_PCI_AC_NORET(outw, (u16 val, unsigned long port), (val, port), pio, port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) DEF_PCI_AC_NORET(outl, (u32 val, unsigned long port), (val, port), pio, port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) DEF_PCI_AC_NORET(readsb, (const PCI_IO_ADDR a, void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) (a, b, c), mem, a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) DEF_PCI_AC_NORET(readsw, (const PCI_IO_ADDR a, void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) (a, b, c), mem, a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) DEF_PCI_AC_NORET(readsl, (const PCI_IO_ADDR a, void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) (a, b, c), mem, a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) DEF_PCI_AC_NORET(writesb, (PCI_IO_ADDR a, const void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) (a, b, c), mem, a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) DEF_PCI_AC_NORET(writesw, (PCI_IO_ADDR a, const void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) (a, b, c), mem, a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) DEF_PCI_AC_NORET(writesl, (PCI_IO_ADDR a, const void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) (a, b, c), mem, a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) DEF_PCI_AC_NORET(insb, (unsigned long p, void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) (p, b, c), pio, p)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) (p, b, c), pio, p)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) (p, b, c), pio, p)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) (p, b, c), pio, p)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) (p, b, c), pio, p)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) (p, b, c), pio, p)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) DEF_PCI_AC_NORET(memset_io, (PCI_IO_ADDR a, int c, unsigned long n),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) (a, c, n), mem, a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) DEF_PCI_AC_NORET(memcpy_fromio, (void *d, const PCI_IO_ADDR s, unsigned long n),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) (d, s, n), mem, s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) DEF_PCI_AC_NORET(memcpy_toio, (PCI_IO_ADDR d, const void *s, unsigned long n),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) (d, s, n), mem, d)