--- src/sys/bus/pci/pcivar.h 2007/11/23 14:41:56 1.12 +++ src/sys/bus/pci/pcivar.h 2007/11/25 04:08:42 1.13 @@ -52,7 +52,7 @@ typedef u_int64_t pci_addr_t; /* u_int64 typedef u_int32_t pci_addr_t; /* u_int64_t for system with 64bit addresses */ #endif -/* config values for PCI power management */ +/* config values for PCI power management capability */ struct pcicfg_pmgt { u_int16_t pp_cap; /* PCI power management capabilities */ u_int8_t pp_status; /* config space address of PCI power status reg */ @@ -60,6 +60,13 @@ struct pcicfg_pmgt { u_int8_t pp_data; /* config space address of PCI power data reg */ }; +/* config values for PCI Express capability */ +struct pcicfg_expr { + uint8_t expr_ptr; /* capability ptr */ + uint16_t expr_cap; /* capabilities */ + uint32_t expr_slotcap; /* slot capabilities */ +}; + /* config header information common to all header types */ typedef struct pcicfg { @@ -98,7 +105,8 @@ typedef struct pcicfg { u_int8_t secondarybus; /* bus on secondary side of bridge, if any */ u_int8_t subordinatebus; /* topmost bus number behind bridge, if any */ - struct pcicfg_pmgt pmgt; /* power management */ + struct pcicfg_pmgt pmgt; /* power management capability */ + struct pcicfg_expr expr; /* PCI Express capability */ } pcicfgregs; /* additional type 1 device config header information (PCI to PCI bridge) */