170 ppb_detach, /* detach */
171 nulldev, /* reset */
172 &ppb_cb_ops, /* driver operations */
173 &ppb_bus_ops, /* bus operations */
174 NULL, /* power */
175 ddi_quiesce_not_needed, /* quiesce */
176 };
177
178 /*
179 * Module linkage information for the kernel.
180 */
181
182 static struct modldrv modldrv = {
183 &mod_driverops, /* Type of module */
184 "Standard PCI to PCI bridge nexus driver",
185 &ppb_ops, /* driver ops */
186 };
187
188 static struct modlinkage modlinkage = {
189 MODREV_1,
190 (void *)&modldrv,
191 NULL
192 };
193
194 /*
195 * soft state pointer and structure template:
196 */
197 static void *ppb_state;
198
199 typedef struct {
200 dev_info_t *dip;
201 int ppb_fmcap;
202 ddi_iblock_cookie_t ppb_fm_ibc;
203 kmutex_t ppb_mutex;
204 kmutex_t ppb_peek_poke_mutex;
205 kmutex_t ppb_err_mutex;
206
207 /*
208 * cpr support:
209 */
210 uint_t config_state_index;
211 struct {
|
170 ppb_detach, /* detach */
171 nulldev, /* reset */
172 &ppb_cb_ops, /* driver operations */
173 &ppb_bus_ops, /* bus operations */
174 NULL, /* power */
175 ddi_quiesce_not_needed, /* quiesce */
176 };
177
178 /*
179 * Module linkage information for the kernel.
180 */
181
182 static struct modldrv modldrv = {
183 &mod_driverops, /* Type of module */
184 "Standard PCI to PCI bridge nexus driver",
185 &ppb_ops, /* driver ops */
186 };
187
188 static struct modlinkage modlinkage = {
189 MODREV_1,
190 { (void *)&modldrv, NULL }
191 };
192
193 /*
194 * soft state pointer and structure template:
195 */
196 static void *ppb_state;
197
198 typedef struct {
199 dev_info_t *dip;
200 int ppb_fmcap;
201 ddi_iblock_cookie_t ppb_fm_ibc;
202 kmutex_t ppb_mutex;
203 kmutex_t ppb_peek_poke_mutex;
204 kmutex_t ppb_err_mutex;
205
206 /*
207 * cpr support:
208 */
209 uint_t config_state_index;
210 struct {
|