iomap.c File Reference

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 Documentation

#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)

Definition at line 68 of file iomap.c.

#define mmio_read16be ( addr   )     be16_to_cpu(__raw_readw(addr))

Definition at line 86 of file iomap.c.

#define mmio_read32be ( addr   )     be32_to_cpu(__raw_readl(addr))

Definition at line 87 of file iomap.c.

#define mmio_write16be ( val,
port   )     __raw_writew(be16_to_cpu(val),port)

Definition at line 127 of file iomap.c.

#define mmio_write32be ( val,
port   )     __raw_writel(be32_to_cpu(val),port)

Definition at line 128 of file iomap.c.

#define PIO_MASK   0x0ffffUL

Definition at line 38 of file iomap.c.

#define PIO_OFFSET   0x10000UL

Definition at line 37 of file iomap.c.

#define pio_read16be ( port   )     swab16(inw(port))

Definition at line 81 of file iomap.c.

#define pio_read32be ( port   )     swab32(inl(port))

Definition at line 82 of file iomap.c.

#define PIO_RESERVED   0x40000UL

Definition at line 39 of file iomap.c.

#define pio_write16be ( val,
port   )     outw(swab16(val),port)

Definition at line 122 of file iomap.c.

#define pio_write32be ( val,
port   )     outl(swab32(val),port)

Definition at line 123 of file iomap.c.


Function Documentation

static void bad_io_access ( unsigned long  port,
const char *  access 
) [static]

Definition at line 42 of file iomap.c.

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 
)

Definition at line 247 of file iomap.c.

void ioport_unmap ( void __iomem *  addr  ) 

Definition at line 254 of file iomap.c.

unsigned int ioread16 ( void __iomem *  addr  ) 

Definition at line 95 of file iomap.c.

void ioread16_rep ( void __iomem *  addr,
void *  dst,
unsigned long  count 
)

Definition at line 218 of file iomap.c.

unsigned int ioread16be ( void __iomem *  addr  ) 

Definition at line 100 of file iomap.c.

unsigned int ioread32 ( void __iomem *  addr  ) 

Definition at line 105 of file iomap.c.

void ioread32_rep ( void __iomem *  addr,
void *  dst,
unsigned long  count 
)

Definition at line 222 of file iomap.c.

unsigned int ioread32be ( void __iomem *  addr  ) 

Definition at line 110 of file iomap.c.

unsigned int ioread8 ( void __iomem *  addr  ) 

Definition at line 90 of file iomap.c.

void ioread8_rep ( void __iomem *  addr,
void *  dst,
unsigned long  count 
)

Definition at line 214 of file iomap.c.

void iowrite16 ( u16  val,
void __iomem *  addr 
)

Definition at line 135 of file iomap.c.

void iowrite16_rep ( void __iomem *  addr,
const void *  src,
unsigned long  count 
)

Definition at line 234 of file iomap.c.

void iowrite16be ( u16  val,
void __iomem *  addr 
)

Definition at line 139 of file iomap.c.

void iowrite32 ( u32  val,
void __iomem *  addr 
)

Definition at line 143 of file iomap.c.

void iowrite32_rep ( void __iomem *  addr,
const void *  src,
unsigned long  count 
)

Definition at line 238 of file iomap.c.

void iowrite32be ( u32  val,
void __iomem *  addr 
)

Definition at line 147 of file iomap.c.

void iowrite8 ( u8  val,
void __iomem *  addr 
)

Definition at line 131 of file iomap.c.

void iowrite8_rep ( void __iomem *  addr,
const void *  src,
unsigned long  count 
)

Definition at line 230 of file iomap.c.

static void mmio_insb ( void __iomem *  addr,
u8 *  dst,
int  count 
) [inline, static]

Definition at line 164 of file iomap.c.

static void mmio_insl ( void __iomem *  addr,
u32 *  dst,
int  count 
) [inline, static]

Definition at line 180 of file iomap.c.

static void mmio_insw ( void __iomem *  addr,
u16 *  dst,
int  count 
) [inline, static]

Definition at line 172 of file iomap.c.

static void mmio_outsb ( void __iomem *  addr,
const u8 *  src,
int  count 
) [inline, static]

Definition at line 191 of file iomap.c.

static void mmio_outsl ( void __iomem *  addr,
const u32 *  src,
int  count 
) [inline, static]

Definition at line 205 of file iomap.c.

static void mmio_outsw ( void __iomem *  addr,
const u16 *  src,
int  count 
) [inline, static]

Definition at line 198 of file iomap.c.

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.

Definition at line 275 of file iomap.c.

void pci_iounmap ( struct pci_dev *  dev,
void __iomem *  addr 
)

Definition at line 296 of file iomap.c.


Generated on Wed Apr 11 06:39:15 2012 for DDE - The L4 Device Driver Environment by  doxygen 1.5.6