Go to the source code of this file.
Defines | |
| #define | PIO_OFFSET 0x10000UL |
| #define | PIO_MASK 0x0ffffUL |
| #define | PIO_RESERVED 0x40000UL |
| #define | IO_COND(addr, is_pio, is_mmio) |
| #define | pio_read16be(port) swab16(inw(port)) |
| #define | pio_read32be(port) swab32(inl(port)) |
| #define | mmio_read16be(addr) be16_to_cpu(__raw_readw(addr)) |
| #define | mmio_read32be(addr) be32_to_cpu(__raw_readl(addr)) |
| #define | pio_write16be(val, port) outw(swab16(val),port) |
| #define | pio_write32be(val, port) outl(swab32(val),port) |
| #define | mmio_write16be(val, port) __raw_writew(be16_to_cpu(val),port) |
| #define | mmio_write32be(val, port) __raw_writel(be32_to_cpu(val),port) |
Functions | |
| static void | bad_io_access (unsigned long port, const char *access) |
| unsigned int | ioread8 (void __iomem *addr) |
| unsigned int | ioread16 (void __iomem *addr) |
| unsigned int | ioread16be (void __iomem *addr) |
| unsigned int | ioread32 (void __iomem *addr) |
| unsigned int | ioread32be (void __iomem *addr) |
| EXPORT_SYMBOL (ioread8) | |
| EXPORT_SYMBOL (ioread16) | |
| EXPORT_SYMBOL (ioread16be) | |
| EXPORT_SYMBOL (ioread32) | |
| EXPORT_SYMBOL (ioread32be) | |
| void | iowrite8 (u8 val, void __iomem *addr) |
| void | iowrite16 (u16 val, void __iomem *addr) |
| void | iowrite16be (u16 val, void __iomem *addr) |
| void | iowrite32 (u32 val, void __iomem *addr) |
| void | iowrite32be (u32 val, void __iomem *addr) |
| EXPORT_SYMBOL (iowrite8) | |
| EXPORT_SYMBOL (iowrite16) | |
| EXPORT_SYMBOL (iowrite16be) | |
| EXPORT_SYMBOL (iowrite32) | |
| EXPORT_SYMBOL (iowrite32be) | |
| static void | mmio_insb (void __iomem *addr, u8 *dst, int count) |
| static void | mmio_insw (void __iomem *addr, u16 *dst, int count) |
| static void | mmio_insl (void __iomem *addr, u32 *dst, int count) |
| static void | mmio_outsb (void __iomem *addr, const u8 *src, int count) |
| static void | mmio_outsw (void __iomem *addr, const u16 *src, int count) |
| static void | mmio_outsl (void __iomem *addr, const u32 *src, int count) |
| void | ioread8_rep (void __iomem *addr, void *dst, unsigned long count) |
| void | ioread16_rep (void __iomem *addr, void *dst, unsigned long count) |
| void | ioread32_rep (void __iomem *addr, void *dst, unsigned long count) |
| EXPORT_SYMBOL (ioread8_rep) | |
| EXPORT_SYMBOL (ioread16_rep) | |
| EXPORT_SYMBOL (ioread32_rep) | |
| void | iowrite8_rep (void __iomem *addr, const void *src, unsigned long count) |
| void | iowrite16_rep (void __iomem *addr, const void *src, unsigned long count) |
| void | iowrite32_rep (void __iomem *addr, const void *src, unsigned long count) |
| EXPORT_SYMBOL (iowrite8_rep) | |
| EXPORT_SYMBOL (iowrite16_rep) | |
| EXPORT_SYMBOL (iowrite32_rep) | |
| void __iomem * | ioport_map (unsigned long port, unsigned int nr) |
| void | ioport_unmap (void __iomem *addr) |
| EXPORT_SYMBOL (ioport_map) | |
| EXPORT_SYMBOL (ioport_unmap) | |
| void __iomem * | pci_iomap (struct pci_dev *dev, int bar, unsigned long maxlen) |
| pci_iomap - create a virtual mapping cookie for a PCI BAR : PCI device that owns the BAR : BAR number : length of the memory to map | |
| void | pci_iounmap (struct pci_dev *dev, void __iomem *addr) |
| EXPORT_SYMBOL (pci_iomap) | |
| EXPORT_SYMBOL (pci_iounmap) | |
| #define IO_COND | ( | addr, | |||
| is_pio, | |||||
| is_mmio | ) |
Value:
do { \ unsigned long port = (unsigned long __force)addr; \ if (port >= PIO_RESERVED) { \ is_mmio; \ } else if (port > PIO_OFFSET) { \ port &= PIO_MASK; \ is_pio; \ } else \ bad_io_access(port, #is_pio ); \ } while (0)
| #define mmio_read16be | ( | addr | ) | be16_to_cpu(__raw_readw(addr)) |
| #define mmio_read32be | ( | addr | ) | be32_to_cpu(__raw_readl(addr)) |
| #define mmio_write16be | ( | val, | |||
| port | ) | __raw_writew(be16_to_cpu(val),port) |
| #define mmio_write32be | ( | val, | |||
| port | ) | __raw_writel(be32_to_cpu(val),port) |
| static void bad_io_access | ( | unsigned long | port, | |
| const char * | access | |||
| ) | [static] |
| EXPORT_SYMBOL | ( | pci_iounmap | ) |
| EXPORT_SYMBOL | ( | pci_iomap | ) |
| EXPORT_SYMBOL | ( | ioport_unmap | ) |
| EXPORT_SYMBOL | ( | ioport_map | ) |
| EXPORT_SYMBOL | ( | iowrite32_rep | ) |
| EXPORT_SYMBOL | ( | iowrite16_rep | ) |
| EXPORT_SYMBOL | ( | iowrite8_rep | ) |
| EXPORT_SYMBOL | ( | ioread32_rep | ) |
| EXPORT_SYMBOL | ( | ioread16_rep | ) |
| EXPORT_SYMBOL | ( | ioread8_rep | ) |
| EXPORT_SYMBOL | ( | iowrite32be | ) |
| EXPORT_SYMBOL | ( | iowrite32 | ) |
| EXPORT_SYMBOL | ( | iowrite16be | ) |
| EXPORT_SYMBOL | ( | iowrite16 | ) |
| EXPORT_SYMBOL | ( | iowrite8 | ) |
| EXPORT_SYMBOL | ( | ioread32be | ) |
| EXPORT_SYMBOL | ( | ioread32 | ) |
| EXPORT_SYMBOL | ( | ioread16be | ) |
| EXPORT_SYMBOL | ( | ioread16 | ) |
| EXPORT_SYMBOL | ( | ioread8 | ) |
| void __iomem* ioport_map | ( | unsigned long | port, | |
| unsigned int | nr | |||
| ) |
| void ioread16_rep | ( | void __iomem * | addr, | |
| void * | dst, | |||
| unsigned long | count | |||
| ) |
| void ioread32_rep | ( | void __iomem * | addr, | |
| void * | dst, | |||
| unsigned long | count | |||
| ) |
| void ioread8_rep | ( | void __iomem * | addr, | |
| void * | dst, | |||
| unsigned long | count | |||
| ) |
| void iowrite16_rep | ( | void __iomem * | addr, | |
| const void * | src, | |||
| unsigned long | count | |||
| ) |
| void iowrite32_rep | ( | void __iomem * | addr, | |
| const void * | src, | |||
| unsigned long | count | |||
| ) |
| void iowrite8_rep | ( | void __iomem * | addr, | |
| const void * | src, | |||
| unsigned long | count | |||
| ) |
| static void mmio_insb | ( | void __iomem * | addr, | |
| u8 * | dst, | |||
| int | count | |||
| ) | [inline, static] |
| static void mmio_insl | ( | void __iomem * | addr, | |
| u32 * | dst, | |||
| int | count | |||
| ) | [inline, static] |
| static void mmio_insw | ( | void __iomem * | addr, | |
| u16 * | dst, | |||
| int | count | |||
| ) | [inline, static] |
| static void mmio_outsb | ( | void __iomem * | addr, | |
| const u8 * | src, | |||
| int | count | |||
| ) | [inline, static] |
| static void mmio_outsl | ( | void __iomem * | addr, | |
| const u32 * | src, | |||
| int | count | |||
| ) | [inline, static] |
| static void mmio_outsw | ( | void __iomem * | addr, | |
| const u16 * | src, | |||
| int | count | |||
| ) | [inline, static] |
| void __iomem* pci_iomap | ( | struct pci_dev * | dev, | |
| int | bar, | |||
| unsigned long | maxlen | |||
| ) |
pci_iomap - create a virtual mapping cookie for a PCI BAR : PCI device that owns the BAR : BAR number : length of the memory to map
Using this function you will get a __iomem address to your device BAR. You can access it using ioread*() and iowrite*(). These functions hide the details if this is a MMIO or PIO address space and will just do what you expect from them in the correct way.
specifies the maximum length to map. If you want to get access to the complete BAR without checking for its length first, pass 0 here.
| void pci_iounmap | ( | struct pci_dev * | dev, | |
| void __iomem * | addr | |||
| ) |
1.5.6