556 profile_attach, /* attach */
557 profile_detach, /* detach */
558 nodev, /* reset */
559 &profile_cb_ops, /* driver operations */
560 NULL, /* bus operations */
561 nodev, /* dev power */
562 ddi_quiesce_not_needed, /* quiesce */
563 };
564
565 /*
566 * Module linkage information for the kernel.
567 */
568 static struct modldrv modldrv = {
569 &mod_driverops, /* module type (this is a pseudo driver) */
570 "Profile Interrupt Tracing", /* name of module */
571 &profile_ops, /* driver ops */
572 };
573
574 static struct modlinkage modlinkage = {
575 MODREV_1,
576 (void *)&modldrv,
577 NULL
578 };
579
580 int
581 _init(void)
582 {
583 return (mod_install(&modlinkage));
584 }
585
586 int
587 _info(struct modinfo *modinfop)
588 {
589 return (mod_info(&modlinkage, modinfop));
590 }
591
592 int
593 _fini(void)
594 {
595 return (mod_remove(&modlinkage));
596 }
|
556 profile_attach, /* attach */
557 profile_detach, /* detach */
558 nodev, /* reset */
559 &profile_cb_ops, /* driver operations */
560 NULL, /* bus operations */
561 nodev, /* dev power */
562 ddi_quiesce_not_needed, /* quiesce */
563 };
564
565 /*
566 * Module linkage information for the kernel.
567 */
568 static struct modldrv modldrv = {
569 &mod_driverops, /* module type (this is a pseudo driver) */
570 "Profile Interrupt Tracing", /* name of module */
571 &profile_ops, /* driver ops */
572 };
573
574 static struct modlinkage modlinkage = {
575 MODREV_1,
576 { (void *)&modldrv, NULL }
577 };
578
579 int
580 _init(void)
581 {
582 return (mod_install(&modlinkage));
583 }
584
585 int
586 _info(struct modinfo *modinfop)
587 {
588 return (mod_info(&modlinkage, modinfop));
589 }
590
591 int
592 _fini(void)
593 {
594 return (mod_remove(&modlinkage));
595 }
|