xref: /linux/rust/helpers/pci.c (revision 416f99c3b16f582a3fc6d64a1f77f39d94b76de5)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 #include <linux/pci.h>
4 
rust_helper_pci_dev_id(struct pci_dev * dev)5 u16 rust_helper_pci_dev_id(struct pci_dev *dev)
6 {
7 	return PCI_DEVID(dev->bus->number, dev->devfn);
8 }
9 
rust_helper_pci_resource_start(struct pci_dev * pdev,int bar)10 resource_size_t rust_helper_pci_resource_start(struct pci_dev *pdev, int bar)
11 {
12 	return pci_resource_start(pdev, bar);
13 }
14 
rust_helper_pci_resource_len(struct pci_dev * pdev,int bar)15 resource_size_t rust_helper_pci_resource_len(struct pci_dev *pdev, int bar)
16 {
17 	return pci_resource_len(pdev, bar);
18 }
19 
rust_helper_dev_is_pci(const struct device * dev)20 bool rust_helper_dev_is_pci(const struct device *dev)
21 {
22 	return dev_is_pci(dev);
23 }
24 
25 #ifndef CONFIG_PCI_MSI
rust_helper_pci_alloc_irq_vectors(struct pci_dev * dev,unsigned int min_vecs,unsigned int max_vecs,unsigned int flags)26 int rust_helper_pci_alloc_irq_vectors(struct pci_dev *dev,
27 				      unsigned int min_vecs,
28 				      unsigned int max_vecs,
29 				      unsigned int flags)
30 {
31 	return pci_alloc_irq_vectors(dev, min_vecs, max_vecs, flags);
32 }
33 
rust_helper_pci_free_irq_vectors(struct pci_dev * dev)34 void rust_helper_pci_free_irq_vectors(struct pci_dev *dev)
35 {
36 	pci_free_irq_vectors(dev);
37 }
38 
rust_helper_pci_irq_vector(struct pci_dev * pdev,unsigned int nvec)39 int rust_helper_pci_irq_vector(struct pci_dev *pdev, unsigned int nvec)
40 {
41 	return pci_irq_vector(pdev, nvec);
42 }
43 #endif
44