FreeBSD/sys/dev/pci/pci.c
/*
 * Determine if MSI is blacklisted globally on this system.  Currently,
 * we just check for blacklisted chipsets as represented by the
 * host-PCI bridge at device 0:0:0.  In the future, it may become
 * necessary to check other system attributes, such as the kenv values
 * that give the motherboard manufacturer and model number.
 */
Determine if MSI is blacklisted globally on this system.  Currently,
we just check for blacklisted chipsets as represented by the
host-PCI bridge at device 0:0:0.  In the future, it may become
necessary to check other system attributes, such as the kenv values
that give the motherboard manufacturer and model number.
Determine if MSI is blacklisted globally on this system . Currently we just check for blacklisted chipsets as represented by the host - PCI bridge at device 0 : 0 : 0 . In the future it may become necessary to check other system attributes such as the kenv values that give the motherboard manufacturer and model number .
static int
pci_msi_blacklisted(void)
{
	device_t dev;
	if (!pci_honor_msi_blacklist)
		return (0);
	if (!(pcie_chipset || pcix_chipset)) {
		if (vm_guest != VM_GUEST_NO) {
			dev = pci_find_bsf(0, 0, 0);
			if (dev != NULL)
				return (!pci_has_quirk(pci_get_devid(dev),
					PCI_QUIRK_ENABLE_MSI_VM));
		}
		return (1);
	}
	dev = pci_find_bsf(0, 0, 0);
	if (dev != NULL)
		return (pci_msi_device_blacklisted(dev));
	return (0);
}
static int pci_msi_blacklisted ( void ) { device_t dev ; if ( ! pci_honor_msi_blacklist ) return ( 0 ) ; if ( ! ( pcie_chipset || pcix_chipset ) ) { if ( vm_guest != VM_GUEST_NO ) { dev = pci_find_bsf ( 0 , 0 , 0 ) ; if ( dev != NULL ) return ( ! pci_has_quirk ( pci_get_devid ( dev ) , PCI_QUIRK_ENABLE_MSI_VM ) ) ; } return ( 1 ) ; } dev = pci_find_bsf ( 0 , 0 , 0 ) ; if ( dev != NULL ) return ( pci_msi_device_blacklisted ( dev ) ) ; return ( 0 ) ; }
Determine if MSI is blacklisted globally on this system.
Determine if MSI is blacklisted globally on this system .
/* Blacklist all non-PCI-express and non-PCI-X chipsets. */ /*
			 * Whitelist older chipsets in virtual
			 * machines known to support MSI.
			 */