384 eventfd_info, /* get_dev_info */
385 nulldev, /* identify */
386 nulldev, /* probe */
387 eventfd_attach, /* attach */
388 eventfd_detach, /* detach */
389 nodev, /* reset */
390 &eventfd_cb_ops, /* driver operations */
391 NULL, /* bus operations */
392 nodev, /* dev power */
393 ddi_quiesce_not_needed, /* quiesce */
394 };
395
396 static struct modldrv modldrv = {
397 &mod_driverops, /* module type (this is a pseudo driver) */
398 "eventfd support", /* name of module */
399 &eventfd_ops, /* driver ops */
400 };
401
402 static struct modlinkage modlinkage = {
403 MODREV_1,
404 (void *)&modldrv,
405 NULL
406 };
407
408 int
409 _init(void)
410 {
411 return (mod_install(&modlinkage));
412 }
413
414 int
415 _info(struct modinfo *modinfop)
416 {
417 return (mod_info(&modlinkage, modinfop));
418 }
419
420 int
421 _fini(void)
422 {
423 return (mod_remove(&modlinkage));
424 }
|
384 eventfd_info, /* get_dev_info */
385 nulldev, /* identify */
386 nulldev, /* probe */
387 eventfd_attach, /* attach */
388 eventfd_detach, /* detach */
389 nodev, /* reset */
390 &eventfd_cb_ops, /* driver operations */
391 NULL, /* bus operations */
392 nodev, /* dev power */
393 ddi_quiesce_not_needed, /* quiesce */
394 };
395
396 static struct modldrv modldrv = {
397 &mod_driverops, /* module type (this is a pseudo driver) */
398 "eventfd support", /* name of module */
399 &eventfd_ops, /* driver ops */
400 };
401
402 static struct modlinkage modlinkage = {
403 MODREV_1,
404 { (void *)&modldrv, NULL }
405 };
406
407 int
408 _init(void)
409 {
410 return (mod_install(&modlinkage));
411 }
412
413 int
414 _info(struct modinfo *modinfop)
415 {
416 return (mod_info(&modlinkage, modinfop));
417 }
418
419 int
420 _fini(void)
421 {
422 return (mod_remove(&modlinkage));
423 }
|