172 xenbusdrv_info, /* devo_getinfo */
173 nulldev, /* devo_identify */
174 nulldev, /* devo_probe */
175 xenbusdrv_attach, /* devo_attach */
176 xenbusdrv_detach, /* devo_detach */
177 nodev, /* devo_reset */
178 &xenbusdrv_cb_ops, /* devo_cb_ops */
179 NULL, /* devo_bus_ops */
180 NULL, /* devo_power */
181 ddi_quiesce_not_needed, /* devo_quiesce */
182 };
183
184 static struct modldrv modldrv = {
185 &mod_driverops, /* Type of module. This one is a driver */
186 "virtual bus driver", /* Name of the module. */
187 &xenbusdrv_dev_ops /* driver ops */
188 };
189
190 static struct modlinkage modlinkage = {
191 MODREV_1,
192 &modldrv,
193 NULL
194 };
195
196 int
197 _init(void)
198 {
199 int e;
200
201 e = ddi_soft_state_init(&xenbusdrv_statep, sizeof (xenbus_dev_t), 1);
202 if (e)
203 return (e);
204
205 e = mod_install(&modlinkage);
206 if (e)
207 ddi_soft_state_fini(&xenbusdrv_statep);
208
209 return (e);
210 }
211
212 int
213 _fini(void)
|
172 xenbusdrv_info, /* devo_getinfo */
173 nulldev, /* devo_identify */
174 nulldev, /* devo_probe */
175 xenbusdrv_attach, /* devo_attach */
176 xenbusdrv_detach, /* devo_detach */
177 nodev, /* devo_reset */
178 &xenbusdrv_cb_ops, /* devo_cb_ops */
179 NULL, /* devo_bus_ops */
180 NULL, /* devo_power */
181 ddi_quiesce_not_needed, /* devo_quiesce */
182 };
183
184 static struct modldrv modldrv = {
185 &mod_driverops, /* Type of module. This one is a driver */
186 "virtual bus driver", /* Name of the module. */
187 &xenbusdrv_dev_ops /* driver ops */
188 };
189
190 static struct modlinkage modlinkage = {
191 MODREV_1,
192 { &modldrv, NULL }
193 };
194
195 int
196 _init(void)
197 {
198 int e;
199
200 e = ddi_soft_state_init(&xenbusdrv_statep, sizeof (xenbus_dev_t), 1);
201 if (e)
202 return (e);
203
204 e = mod_install(&modlinkage);
205 if (e)
206 ddi_soft_state_fini(&xenbusdrv_statep);
207
208 return (e);
209 }
210
211 int
212 _fini(void)
|