rust/helpers/pci.c

Source file repositories/reference/linux-study-clean/rust/helpers/pci.c

File Facts

System
Linux kernel
Corpus path
rust/helpers/pci.c
Extension
.c
Size
1062 bytes
Lines
47
Domain
Rust Kernel Layer
Bucket
Rust API Membrane
Inferred role
Rust Kernel Layer: implementation source
Status
source implementation candidate

Why This File Exists

Rust-side wrappers and abstractions around kernel C APIs, ownership contracts, allocation, synchronization, and module integration.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0

#include <linux/pci.h>

__rust_helper u16 rust_helper_pci_dev_id(struct pci_dev *dev)
{
	return PCI_DEVID(dev->bus->number, dev->devfn);
}

__rust_helper resource_size_t
rust_helper_pci_resource_start(struct pci_dev *pdev, int bar)
{
	return pci_resource_start(pdev, bar);
}

__rust_helper resource_size_t rust_helper_pci_resource_len(struct pci_dev *pdev,
							   int bar)
{
	return pci_resource_len(pdev, bar);
}

__rust_helper bool rust_helper_dev_is_pci(const struct device *dev)
{
	return dev_is_pci(dev);
}

#ifndef CONFIG_PCI_MSI
__rust_helper int rust_helper_pci_alloc_irq_vectors(struct pci_dev *dev,
						    unsigned int min_vecs,
						    unsigned int max_vecs,
						    unsigned int flags)
{
	return pci_alloc_irq_vectors(dev, min_vecs, max_vecs, flags);
}

__rust_helper void rust_helper_pci_free_irq_vectors(struct pci_dev *dev)
{
	pci_free_irq_vectors(dev);
}

__rust_helper int rust_helper_pci_irq_vector(struct pci_dev *pdev,
					     unsigned int nvec)
{
	return pci_irq_vector(pdev, nvec);
}
#endif

Annotation

Implementation Notes