217 power_getinfo, /* getinfo */
218 nulldev, /* identify */
219 nulldev, /* probe */
220 power_attach, /* attach */
221 power_detach, /* detach */
222 nodev, /* reset */
223 &power_cb_ops, /* cb_ops */
224 (struct bus_ops *)NULL, /* bus_ops */
225 NULL, /* power */
226 ddi_quiesce_not_supported, /* devo_quiesce */
227 };
228
229 static struct modldrv modldrv = {
230 &mod_driverops, /* Type of module. This one is a driver */
231 "power button driver", /* name of module */
232 &power_ops, /* driver ops */
233 };
234
235 static struct modlinkage modlinkage = {
236 MODREV_1,
237 (void *)&modldrv,
238 NULL
239 };
240
241 /*
242 * These are the module initialization routines.
243 */
244
245 int
246 _init(void)
247 {
248 int error;
249
250 if ((error = ddi_soft_state_init(&power_state,
251 sizeof (struct power_soft_state), 0)) != 0)
252 return (error);
253
254 if ((error = mod_install(&modlinkage)) != 0)
255 ddi_soft_state_fini(&power_state);
256
257 return (error);
258 }
|
217 power_getinfo, /* getinfo */
218 nulldev, /* identify */
219 nulldev, /* probe */
220 power_attach, /* attach */
221 power_detach, /* detach */
222 nodev, /* reset */
223 &power_cb_ops, /* cb_ops */
224 (struct bus_ops *)NULL, /* bus_ops */
225 NULL, /* power */
226 ddi_quiesce_not_supported, /* devo_quiesce */
227 };
228
229 static struct modldrv modldrv = {
230 &mod_driverops, /* Type of module. This one is a driver */
231 "power button driver", /* name of module */
232 &power_ops, /* driver ops */
233 };
234
235 static struct modlinkage modlinkage = {
236 MODREV_1,
237 { (void *)&modldrv, NULL }
238 };
239
240 /*
241 * These are the module initialization routines.
242 */
243
244 int
245 _init(void)
246 {
247 int error;
248
249 if ((error = ddi_soft_state_init(&power_state,
250 sizeof (struct power_soft_state), 0)) != 0)
251 return (error);
252
253 if ((error = mod_install(&modlinkage)) != 0)
254 ddi_soft_state_fini(&power_state);
255
256 return (error);
257 }
|