35 строки
1.2 KiB
C
35 строки
1.2 KiB
C
#include <linux/init.h>
|
|
#include <linux/pci.h>
|
|
#include <linux/module.h>
|
|
#include <linux/interrupt.h>
|
|
#include "pci.h"
|
|
|
|
/**
|
|
* pci_find_device - begin or continue searching for a PCI device by vendor/device id
|
|
* @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids
|
|
* @device: PCI device id to match, or %PCI_ANY_ID to match all device ids
|
|
* @from: Previous PCI device found in search, or %NULL for new search.
|
|
*
|
|
* Iterates through the list of known PCI devices. If a PCI device is found
|
|
* with a matching @vendor and @device, a pointer to its device structure is
|
|
* returned. Otherwise, %NULL is returned.
|
|
* A new search is initiated by passing %NULL as the @from argument.
|
|
* Otherwise if @from is not %NULL, searches continue from next device
|
|
* on the global list.
|
|
*
|
|
* NOTE: Do not use this function any more; use pci_get_device() instead, as
|
|
* the PCI device returned by this function can disappear at any moment in
|
|
* time.
|
|
*/
|
|
struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device,
|
|
struct pci_dev *from)
|
|
{
|
|
struct pci_dev *pdev;
|
|
|
|
pci_dev_get(from);
|
|
pdev = pci_get_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from);
|
|
pci_dev_put(pdev);
|
|
return pdev;
|
|
}
|
|
EXPORT_SYMBOL(pci_find_device);
|