uint16_t pci_conf_read16( unsigned int bus, unsigned int dev, unsigned int func, unsigned int reg) { uint32_t value; BUG_ON((bus > 255) || (dev > 31) || (func > 7) || (reg > 255)); pci_sal_read(0, bus, (dev<<3)|func, reg, 2, &value); return (uint16_t)value; }
static int pci_sal_read_config_dword (struct pci_dev *dev, int where, u32 *value) { if (!value) return -EINVAL; return pci_sal_read(PCI_SEGMENT(dev), dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, 4, value); }
static int pci_sal_read_config_byte (struct pci_dev *dev, int where, u8 *value) { int result = 0; u32 data = 0; if (!value) return -EINVAL; result = pci_sal_read(PCI_SEGMENT(dev), dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, 1, &data); *value = (u8) data; return result; }