summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/pcivar.h
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2003-09-14 19:30:00 +0000
committerscottl <scottl@FreeBSD.org>2003-09-14 19:30:00 +0000
commit0ef16e15fc4e3586c3d2f2b4bd3a5b454cbd52fa (patch)
tree8a08fc4815fbb424ae0e825350ac89b61fd15e89 /sys/dev/pci/pcivar.h
parent4b89f38d2e819883e012f22dbe91bb83bdc2081b (diff)
downloadFreeBSD-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.h22
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) */
OpenPOWER on IntegriCloud