diff options
Diffstat (limited to 'src/device/device_const.c')
-rw-r--r-- | src/device/device_const.c | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/src/device/device_const.c b/src/device/device_const.c index 2cacb4a9ac..084d2ac385 100644 --- a/src/device/device_const.c +++ b/src/device/device_const.c @@ -51,22 +51,25 @@ DEVTREE_CONST struct device *dev_find_slot(unsigned int bus, } /** - * Given a device pointer, find the next PCI device. + * Given a Device Path Type, find the device structure. * - * @param previous_dev A pointer to a PCI device structure. - * @return Pointer to the next device structure (if found), 0 otherwise. + * @param prev_match The previously matched device instance. + * @param path_type The Device Path Type. + * @return Pointer to the device structure (if found), 0 otherwise. */ -DEVTREE_CONST struct device *dev_find_next_pci_device( - DEVTREE_CONST struct device *previous_dev) +DEVTREE_CONST struct device *dev_find_path( + DEVTREE_CONST struct device *prev_match, + enum device_path_type path_type) { - DEVTREE_CONST struct device *dev, *result; + DEVTREE_CONST struct device *dev, *result = NULL; - if (previous_dev == NULL) - previous_dev = all_devices; + if (prev_match == NULL) + prev_match = all_devices; + else + prev_match = prev_match->next; - result = 0; - for (dev = previous_dev->next; dev; dev = dev->next) { - if (dev->path.type == DEVICE_PATH_PCI) { + for (dev = prev_match; dev; dev = dev->next) { + if (dev->path.type == path_type) { result = dev; break; } @@ -75,6 +78,18 @@ DEVTREE_CONST struct device *dev_find_next_pci_device( } /** + * Given a device pointer, find the next PCI device. + * + * @param previous_dev A pointer to a PCI device structure. + * @return Pointer to the next device structure (if found), 0 otherwise. + */ +DEVTREE_CONST struct device *dev_find_next_pci_device( + DEVTREE_CONST struct device *previous_dev) +{ + return dev_find_path(previous_dev, DEVICE_PATH_PCI); +} + +/** * Given an SMBus bus and a device number, find the device structure. * * @param bus The bus number. |