271 usbvc_info, /* info */
272 nulldev, /* identify */
273 nulldev, /* probe */
274 usbvc_attach, /* attach */
275 usbvc_detach, /* detach */
276 nodev, /* reset */
277 &usbvc_cb_ops, /* driver operations */
278 NULL, /* bus operations */
279 usbvc_power, /* power */
280 ddi_quiesce_not_needed, /* quiesce */
281 };
282
283 static struct modldrv usbvc_modldrv = {
284 &mod_driverops,
285 "USB video class driver",
286 &usbvc_ops
287 };
288
289 static struct modlinkage modlinkage = {
290 MODREV_1,
291 &usbvc_modldrv,
292 NULL
293 };
294
295 /* Soft state structures */
296 #define USBVC_INITIAL_SOFT_SPACE 1
297 static void *usbvc_statep;
298
299
300 /*
301 * Module-wide initialization routine.
302 */
303 int
304 _init(void)
305 {
306 int rval;
307
308 if ((rval = ddi_soft_state_init(&usbvc_statep,
309 sizeof (usbvc_state_t), USBVC_INITIAL_SOFT_SPACE)) != 0) {
310
311 return (rval);
312 }
|
271 usbvc_info, /* info */
272 nulldev, /* identify */
273 nulldev, /* probe */
274 usbvc_attach, /* attach */
275 usbvc_detach, /* detach */
276 nodev, /* reset */
277 &usbvc_cb_ops, /* driver operations */
278 NULL, /* bus operations */
279 usbvc_power, /* power */
280 ddi_quiesce_not_needed, /* quiesce */
281 };
282
283 static struct modldrv usbvc_modldrv = {
284 &mod_driverops,
285 "USB video class driver",
286 &usbvc_ops
287 };
288
289 static struct modlinkage modlinkage = {
290 MODREV_1,
291 { &usbvc_modldrv, NULL }
292 };
293
294 /* Soft state structures */
295 #define USBVC_INITIAL_SOFT_SPACE 1
296 static void *usbvc_statep;
297
298
299 /*
300 * Module-wide initialization routine.
301 */
302 int
303 _init(void)
304 {
305 int rval;
306
307 if ((rval = ddi_soft_state_init(&usbvc_statep,
308 sizeof (usbvc_state_t), USBVC_INITIAL_SOFT_SPACE)) != 0) {
309
310 return (rval);
311 }
|