#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub enum LinuxPciUserspaceKernelDriverModule
{
uio_pci_generic,
igb_uio,
vfio_pci,
}
impl Default for LinuxPciUserspaceKernelDriverModule
{
#[inline(always)]
fn default() -> Self
{
LinuxPciUserspaceKernelDriverModule::uio_pci_generic
}
}
impl LinuxPciUserspaceKernelDriverModule
{
#[inline(always)]
pub fn linux_kernel_module_name(self) -> &'static LinuxKernelModuleName
{
self.linux_kernel_module().linux_kernel_module_name()
}
#[inline(always)]
pub fn first_pci_driver_name(self, sys_path: &SysPath) -> PciDriverName
{
self.linux_kernel_module().first_pci_driver_name(sys_path).unwrap()
}
#[inline(always)]
pub fn linux_kernel_module(self) -> &'static LinuxKernelModule<'static>
{
use self::LinuxPciUserspaceKernelDriverModule::*;
match self
{
uio_pci_generic => LinuxKernelModule::uio_pci_generic(),
igb_uio => LinuxKernelModule::igb_uio(),
vfio_pci => LinuxKernelModule::vfio_pci(),
}
}
}