180 pcieb_detach, /* detach */
181 nulldev, /* reset */
182 &pcieb_cb_ops, /* driver operations */
183 &pcieb_bus_ops, /* bus operations */
184 pcie_power, /* power */
185 ddi_quiesce_not_needed, /* quiesce */
186 };
187
188 /*
189 * Module linkage information for the kernel.
190 */
191
192 static struct modldrv modldrv = {
193 &mod_driverops, /* Type of module */
194 "PCIe bridge/switch driver",
195 &pcieb_ops, /* driver ops */
196 };
197
198 static struct modlinkage modlinkage = {
199 MODREV_1,
200 (void *)&modldrv,
201 NULL
202 };
203
204 /*
205 * forward function declarations:
206 */
207 static void pcieb_uninitchild(dev_info_t *);
208 static int pcieb_initchild(dev_info_t *child);
209 static void pcieb_create_ranges_prop(dev_info_t *, ddi_acc_handle_t);
210 static boolean_t pcieb_is_pcie_device_type(dev_info_t *dip);
211
212 /* interrupt related declarations */
213 static int pcieb_msi_supported(dev_info_t *);
214 static int pcieb_intr_attach(pcieb_devstate_t *pcieb);
215 static int pcieb_intr_init(pcieb_devstate_t *pcieb_p, int intr_type);
216 static void pcieb_intr_fini(pcieb_devstate_t *pcieb_p);
217
218 int
219 _init(void)
220 {
221 int e;
|
180 pcieb_detach, /* detach */
181 nulldev, /* reset */
182 &pcieb_cb_ops, /* driver operations */
183 &pcieb_bus_ops, /* bus operations */
184 pcie_power, /* power */
185 ddi_quiesce_not_needed, /* quiesce */
186 };
187
188 /*
189 * Module linkage information for the kernel.
190 */
191
192 static struct modldrv modldrv = {
193 &mod_driverops, /* Type of module */
194 "PCIe bridge/switch driver",
195 &pcieb_ops, /* driver ops */
196 };
197
198 static struct modlinkage modlinkage = {
199 MODREV_1,
200 { (void *)&modldrv, NULL }
201 };
202
203 /*
204 * forward function declarations:
205 */
206 static void pcieb_uninitchild(dev_info_t *);
207 static int pcieb_initchild(dev_info_t *child);
208 static void pcieb_create_ranges_prop(dev_info_t *, ddi_acc_handle_t);
209 static boolean_t pcieb_is_pcie_device_type(dev_info_t *dip);
210
211 /* interrupt related declarations */
212 static int pcieb_msi_supported(dev_info_t *);
213 static int pcieb_intr_attach(pcieb_devstate_t *pcieb);
214 static int pcieb_intr_init(pcieb_devstate_t *pcieb_p, int intr_type);
215 static void pcieb_intr_fini(pcieb_devstate_t *pcieb_p);
216
217 int
218 _init(void)
219 {
220 int e;
|