Use the tAddressSpace functions read8/16/32 and write8/16/32 to access PCI registers through an iBus.
write8( ), write16( ), write32( );
Write 8, 16, or 32 bits. This function is inlined and is usually compiled away to a pointer dereference.
read8( ), read16( ), read32( );
Read 8, 16, or 32 bits. This function is inlined and is usually compiled away to a pointer dereference.
This example is from the MITE initialization in the RLP examples:
iBus* bus = NULL;
u32 physicalBar1 = 0;
u32 address = 0xC0;
u32 value = 0;
bus = acquireBoard("PXI::4::2::INSTR");
miteSpace = bus->createAddressSpace(kPCI_BAR0);
physicalBar1 = bus->get(kBusAddressPhysical, kPCI_BAR1);
value = (physicalBar1 & 0xFFFFFF00L) | 0x80;