]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/sysdep_lnx.c
LinCAN PCI cards support updated to support PCI devices reference counting.
[lincan.git] / lincan / src / sysdep_lnx.c
index 2220890144618a3383816829feb35a272101af82..1033a5f7e0fa6da3894611ee3a877f7d36df7829 100644 (file)
@@ -214,6 +214,37 @@ void can_release_mem_region(unsigned long start, unsigned long n)
     #endif
 }
 
+#ifdef CAN_ENABLE_PCI_SUPPORT
+
+struct pci_dev *can_pci_get_next_untaken_device(unsigned int vendor, unsigned int device)
+{
+       struct pci_dev *pcidev = NULL;
+
+       do {
+               pcidev = can_pci_get_device(vendor, device, pcidev);
+               if(pcidev == NULL)
+                       return NULL;
+       } while(can_check_dev_taken(pcidev));
+
+       return pcidev;
+}
+
+struct pci_dev *can_pci_get_next_untaken_subsyst(unsigned int vendor, unsigned int device,
+                       unsigned int ss_vendor, unsigned int ss_device)
+{
+       struct pci_dev *pcidev = NULL;
+
+       do {
+               pcidev = can_pci_get_subsys(vendor, device, ss_vendor, ss_device, pcidev);
+               if(pcidev == NULL)
+                       return NULL;
+       } while(can_check_dev_taken(pcidev));
+
+       return pcidev;
+}
+
+#endif /*CAN_ENABLE_PCI_SUPPORT*/
+
 #ifndef CAN_WITH_RTL
 
 /**