184 0, /* refcnt */
185 sgen_getinfo, /* info */
186 nodev, /* identify */
187 sgen_probe, /* probe */
188 sgen_attach, /* attach */
189 sgen_detach, /* detach */
190 nodev, /* reset */
191 &sgen_cb_ops, /* driver operations */
192 (struct bus_ops *)0, /* bus operations */
193 NULL, /* power */
194 ddi_quiesce_not_supported, /* devo_quiesce */
195 };
196
197 static void *sgen_soft_state = NULL;
198
199 static struct modldrv modldrv = {
200 &mod_driverops, "SCSI generic driver", &sgen_dev_ops
201 };
202
203 static struct modlinkage modlinkage = {
204 MODREV_1, &modldrv, NULL
205 };
206
207 int
208 _init(void)
209 {
210 int err;
211
212 /* establish driver name from module name */
213 sgen_label = (char *)mod_modname(&modlinkage);
214
215 sgen_log(NULL, SGEN_DIAG2, "in sgen_init()");
216 if ((err = ddi_soft_state_init(&sgen_soft_state,
217 sizeof (sgen_state_t), SGEN_ESTIMATED_NUM_DEVS)) != 0) {
218 goto done;
219 }
220
221 if ((err = mod_install(&modlinkage)) != 0) {
222 ddi_soft_state_fini(&sgen_soft_state);
223 goto done;
224 }
|
184 0, /* refcnt */
185 sgen_getinfo, /* info */
186 nodev, /* identify */
187 sgen_probe, /* probe */
188 sgen_attach, /* attach */
189 sgen_detach, /* detach */
190 nodev, /* reset */
191 &sgen_cb_ops, /* driver operations */
192 (struct bus_ops *)0, /* bus operations */
193 NULL, /* power */
194 ddi_quiesce_not_supported, /* devo_quiesce */
195 };
196
197 static void *sgen_soft_state = NULL;
198
199 static struct modldrv modldrv = {
200 &mod_driverops, "SCSI generic driver", &sgen_dev_ops
201 };
202
203 static struct modlinkage modlinkage = {
204 MODREV_1, { &modldrv, NULL }
205 };
206
207 int
208 _init(void)
209 {
210 int err;
211
212 /* establish driver name from module name */
213 sgen_label = (char *)mod_modname(&modlinkage);
214
215 sgen_log(NULL, SGEN_DIAG2, "in sgen_init()");
216 if ((err = ddi_soft_state_init(&sgen_soft_state,
217 sizeof (sgen_state_t), SGEN_ESTIMATED_NUM_DEVS)) != 0) {
218 goto done;
219 }
220
221 if ((err = mod_install(&modlinkage)) != 0) {
222 ddi_soft_state_fini(&sgen_soft_state);
223 goto done;
224 }
|