143 static void pcie_scan_mps(dev_info_t *rc_dip, dev_info_t *dip,
144 int *max_supported);
145 static int pcie_get_max_supported(dev_info_t *dip, void *arg);
146 static int pcie_map_phys(dev_info_t *dip, pci_regspec_t *phys_spec,
147 caddr_t *addrp, ddi_acc_handle_t *handlep);
148 static void pcie_unmap_phys(ddi_acc_handle_t *handlep, pci_regspec_t *ph);
149
150 dev_info_t *pcie_get_rc_dip(dev_info_t *dip);
151
152 /*
153 * modload support
154 */
155
156 static struct modlmisc modlmisc = {
157 &mod_miscops, /* Type of module */
158 "PCI Express Framework Module"
159 };
160
161 static struct modlinkage modlinkage = {
162 MODREV_1,
163 (void *)&modlmisc,
164 NULL
165 };
166
167 /*
168 * Global Variables needed for a non-atomic version of ddi_fm_ereport_post.
169 * Currently used to send the pci.fabric ereports whose payload depends on the
170 * type of PCI device it is being sent for.
171 */
172 char *pcie_nv_buf;
173 nv_alloc_t *pcie_nvap;
174 nvlist_t *pcie_nvl;
175
176 int
177 _init(void)
178 {
179 int rval;
180
181 pcie_nv_buf = kmem_alloc(ERPT_DATA_SZ, KM_SLEEP);
182 pcie_nvap = fm_nva_xcreate(pcie_nv_buf, ERPT_DATA_SZ);
183 pcie_nvl = fm_nvlist_create(pcie_nvap);
184
|
143 static void pcie_scan_mps(dev_info_t *rc_dip, dev_info_t *dip,
144 int *max_supported);
145 static int pcie_get_max_supported(dev_info_t *dip, void *arg);
146 static int pcie_map_phys(dev_info_t *dip, pci_regspec_t *phys_spec,
147 caddr_t *addrp, ddi_acc_handle_t *handlep);
148 static void pcie_unmap_phys(ddi_acc_handle_t *handlep, pci_regspec_t *ph);
149
150 dev_info_t *pcie_get_rc_dip(dev_info_t *dip);
151
152 /*
153 * modload support
154 */
155
156 static struct modlmisc modlmisc = {
157 &mod_miscops, /* Type of module */
158 "PCI Express Framework Module"
159 };
160
161 static struct modlinkage modlinkage = {
162 MODREV_1,
163 { (void *)&modlmisc, NULL }
164 };
165
166 /*
167 * Global Variables needed for a non-atomic version of ddi_fm_ereport_post.
168 * Currently used to send the pci.fabric ereports whose payload depends on the
169 * type of PCI device it is being sent for.
170 */
171 char *pcie_nv_buf;
172 nv_alloc_t *pcie_nvap;
173 nvlist_t *pcie_nvl;
174
175 int
176 _init(void)
177 {
178 int rval;
179
180 pcie_nv_buf = kmem_alloc(ERPT_DATA_SZ, KM_SLEEP);
181 pcie_nvap = fm_nva_xcreate(pcie_nv_buf, ERPT_DATA_SZ);
182 pcie_nvl = fm_nvlist_create(pcie_nvap);
183
|