/* All RCiEP devices are on the same bus as the RCEC */ if (nextbusn == 0xff && lastbusn == 0x00) return;
for (bnr = nextbusn; bnr <= lastbusn; bnr++) { /* No association indicated (PCIe 5.0-1, 7.9.10.3) */ if (bnr == rcec->bus->number) continue;
bus = pci_find_bus(pci_domain_nr(rcec->bus), bnr); if (!bus) continue;
/* Find RCiEP devices on the given bus ranges */
pci_walk_bus(bus, cb, rcec_data);
}
}
/** * pcie_link_rcec - Link RCiEP devices associated with RCEC. * @rcec: RCEC whose RCiEP devices should be linked. * * Link the given RCEC to each RCiEP device found.
*/ void pcie_link_rcec(struct pci_dev *rcec)
{ struct walk_rcec_data rcec_data;
/** * pcie_walk_rcec - Walk RCiEP devices associating with RCEC and call callback. * @rcec: RCEC whose RCiEP devices should be walked * @cb: Callback to be called for each RCiEP device found * @userdata: Arbitrary pointer to be passed to callback * * Walk the given RCEC. Call the callback on each RCiEP found. * * If @cb returns anything other than 0, break out.
*/ void pcie_walk_rcec(struct pci_dev *rcec, int (*cb)(struct pci_dev *, void *), void *userdata)
{ struct walk_rcec_data rcec_data;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.