749 static struct dev_ops sysevent_ops = {
750 DEVO_REV, /* devo_rev */
751 0, /* refcnt */
752 sysevent_info, /* info */
753 nulldev, /* identify */
754 nulldev, /* probe */
755 sysevent_attach, /* attach */
756 sysevent_detach, /* detach */
757 nodev, /* reset */
758 &sysevent_cb_ops, /* driver operations */
759 (struct bus_ops *)0, /* no bus operations */
760 nulldev, /* power */
761 ddi_quiesce_not_needed, /* quiesce */
762 };
763
764 static struct modldrv modldrv = {
765 &mod_driverops, "sysevent driver", &sysevent_ops
766 };
767
768 static struct modlinkage modlinkage = {
769 MODREV_1, &modldrv, NULL
770 };
771
772 int
773 _init(void)
774 {
775 int s;
776
777 s = ddi_soft_state_init(&evchan_ctlp, sizeof (evchan_ctl_t), 1);
778 if (s != 0)
779 return (s);
780
781 if ((s = mod_install(&modlinkage)) != 0)
782 ddi_soft_state_fini(&evchan_ctlp);
783 return (s);
784 }
785
786 int
787 _fini(void)
788 {
789 int s;
|
749 static struct dev_ops sysevent_ops = {
750 DEVO_REV, /* devo_rev */
751 0, /* refcnt */
752 sysevent_info, /* info */
753 nulldev, /* identify */
754 nulldev, /* probe */
755 sysevent_attach, /* attach */
756 sysevent_detach, /* detach */
757 nodev, /* reset */
758 &sysevent_cb_ops, /* driver operations */
759 (struct bus_ops *)0, /* no bus operations */
760 nulldev, /* power */
761 ddi_quiesce_not_needed, /* quiesce */
762 };
763
764 static struct modldrv modldrv = {
765 &mod_driverops, "sysevent driver", &sysevent_ops
766 };
767
768 static struct modlinkage modlinkage = {
769 MODREV_1, { &modldrv, NULL }
770 };
771
772 int
773 _init(void)
774 {
775 int s;
776
777 s = ddi_soft_state_init(&evchan_ctlp, sizeof (evchan_ctl_t), 1);
778 if (s != 0)
779 return (s);
780
781 if ((s = mod_install(&modlinkage)) != 0)
782 ddi_soft_state_fini(&evchan_ctlp);
783 return (s);
784 }
785
786 int
787 _fini(void)
788 {
789 int s;
|