734 signalfd_info, /* get_dev_info */
735 nulldev, /* identify */
736 nulldev, /* probe */
737 signalfd_attach, /* attach */
738 signalfd_detach, /* detach */
739 nodev, /* reset */
740 &signalfd_cb_ops, /* driver operations */
741 NULL, /* bus operations */
742 nodev, /* dev power */
743 ddi_quiesce_not_needed, /* quiesce */
744 };
745
746 static struct modldrv modldrv = {
747 &mod_driverops, /* module type (this is a pseudo driver) */
748 "signalfd support", /* name of module */
749 &signalfd_ops, /* driver ops */
750 };
751
752 static struct modlinkage modlinkage = {
753 MODREV_1,
754 (void *)&modldrv,
755 NULL
756 };
757
758 int
759 _init(void)
760 {
761 return (mod_install(&modlinkage));
762 }
763
764 int
765 _info(struct modinfo *modinfop)
766 {
767 return (mod_info(&modlinkage, modinfop));
768 }
769
770 int
771 _fini(void)
772 {
773 return (mod_remove(&modlinkage));
774 }
|
734 signalfd_info, /* get_dev_info */
735 nulldev, /* identify */
736 nulldev, /* probe */
737 signalfd_attach, /* attach */
738 signalfd_detach, /* detach */
739 nodev, /* reset */
740 &signalfd_cb_ops, /* driver operations */
741 NULL, /* bus operations */
742 nodev, /* dev power */
743 ddi_quiesce_not_needed, /* quiesce */
744 };
745
746 static struct modldrv modldrv = {
747 &mod_driverops, /* module type (this is a pseudo driver) */
748 "signalfd support", /* name of module */
749 &signalfd_ops, /* driver ops */
750 };
751
752 static struct modlinkage modlinkage = {
753 MODREV_1,
754 { (void *)&modldrv, NULL }
755 };
756
757 int
758 _init(void)
759 {
760 return (mod_install(&modlinkage));
761 }
762
763 int
764 _info(struct modinfo *modinfop)
765 {
766 return (mod_info(&modlinkage, modinfop));
767 }
768
769 int
770 _fini(void)
771 {
772 return (mod_remove(&modlinkage));
773 }
|