--- src/sys/bus/pci/pci.c 2007/11/25 04:08:42 1.48 +++ src/sys/bus/pci/pci.c 2007/11/25 10:31:40 1.49 @@ -567,6 +567,9 @@ pci_read_capabilities(device_t pcib, pci case PCIY_PMG: /* PCI power management */ pci_read_cap_pmgt(pcib, ptr, cfg); break; + case PCIY_PCIX: /* PCI-X */ + cfg->pcixcap_ptr = ptr; + break; case PCIY_EXPRESS: /* PCI Express */ pci_read_cap_expr(pcib, ptr, cfg); break; @@ -1870,6 +1873,12 @@ pci_read_ivar(device_t dev, device_t chi */ *result = NULL; return (EINVAL); + case PCI_IVAR_PCIXCAP_PTR: + *result = cfg->pcixcap_ptr; + break; + case PCI_IVAR_PCIECAP_PTR: + *result = cfg->expr.expr_ptr; + break; default: return ENOENT; } @@ -1901,6 +1910,8 @@ pci_write_ivar(device_t dev, device_t ch case PCI_IVAR_SLOT: case PCI_IVAR_FUNCTION: case PCI_IVAR_ETHADDR: + case PCI_IVAR_PCIXCAP_PTR: + case PCI_IVAR_PCIECAP_PTR: return EINVAL; /* disallow for now */ case PCI_IVAR_SECONDARYBUS: