pub trait Driver {
type IdInfo: 'static;
const ID_TABLE: IdTable<Self::IdInfo>;
// Required method
fn probe(
dev: &mut Device,
id_info: &Self::IdInfo,
) -> Result<Pin<KBox<Self>>>;
}
Expand description
The PCI driver trait.
§Example
struct MyDriver;
kernel::pci_device_table!(
PCI_TABLE,
MODULE_PCI_TABLE,
<MyDriver as pci::Driver>::IdInfo,
[
(pci::DeviceId::from_id(bindings::PCI_VENDOR_ID_REDHAT, bindings::PCI_ANY_ID as _), ())
]
);
impl pci::Driver for MyDriver {
type IdInfo = ();
const ID_TABLE: pci::IdTable<Self::IdInfo> = &PCI_TABLE;
fn probe(
_pdev: &mut pci::Device,
_id_info: &Self::IdInfo,
) -> Result<Pin<KBox<Self>>> {
Err(ENODEV)
}
}
Drivers must implement this trait in order to get a PCI driver registered. Please refer to the
Adapter
documentation for an example.
Required Associated Constants§
Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.