diff options
author | scottl <scottl@FreeBSD.org> | 2003-09-14 19:30:00 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2003-09-14 19:30:00 +0000 |
commit | 0ef16e15fc4e3586c3d2f2b4bd3a5b454cbd52fa (patch) | |
tree | 8a08fc4815fbb424ae0e825350ac89b61fd15e89 /sys/dev/pci/pcivar.h | |
parent | 4b89f38d2e819883e012f22dbe91bb83bdc2081b (diff) | |
download | FreeBSD-src-0ef16e15fc4e3586c3d2f2b4bd3a5b454cbd52fa.zip FreeBSD-src-0ef16e15fc4e3586c3d2f2b4bd3a5b454cbd52fa.tar.gz |
Teach the PCI code to parse MSI extended capabilities. Re-arrange the
pcicfg struct a bit to hold extcap structures instead of structure members.
Diffstat (limited to 'sys/dev/pci/pcivar.h')
-rw-r--r-- | sys/dev/pci/pcivar.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index de084f6..ef24d89 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -51,6 +51,21 @@ typedef uint64_t pci_addr_t; /* uint64_t for system with 64bit addresses */ typedef uint32_t pci_addr_t; /* uint64_t for system with 64bit addresses */ #endif +/* Interesting values for PCI power management */ +struct pcicfg_pp { + uint16_t pp_cap; /* PCI power management capabilities */ + uint8_t pp_status; /* config space address of PCI power status reg */ + uint8_t pp_pmcsr; /* config space address of PMCSR reg */ + uint8_t pp_data; /* config space address of PCI power data reg */ +}; + +/* Interesting values for PCI MSI */ +struct pcicfg_msi { + uint16_t msi_ctrl; /* Message Control */ + uint8_t msi_msgnum; /* Number of messages */ + uint16_t msi_data; /* Location of MSI data word */ +}; + /* config header information common to all header types */ typedef struct pcicfg { @@ -85,11 +100,8 @@ typedef struct pcicfg { uint8_t slot; /* config space slot address */ uint8_t func; /* config space function number */ - uint16_t pp_cap; /* PCI power management capabilities */ - uint8_t pp_status; /* config space address of PCI power status reg */ - uint8_t pp_pmcsr; /* config space address of PMCSR reg */ - uint8_t pp_data; /* config space address of PCI power data reg */ - + struct pcicfg_pp pp; /* pci power management */ + struct pcicfg_msi msi; /* pci msi */ } pcicfgregs; /* additional type 1 device config header information (PCI to PCI bridge) */ |