809 fbt_attach, /* attach */
810 fbt_detach, /* detach */
811 nodev, /* reset */
812 &fbt_cb_ops, /* driver operations */
813 NULL, /* bus operations */
814 nodev, /* dev power */
815 ddi_quiesce_not_needed, /* quiesce */
816 };
817
818 /*
819 * Module linkage information for the kernel.
820 */
821 static struct modldrv modldrv = {
822 &mod_driverops, /* module type (this is a pseudo driver) */
823 "Function Boundary Tracing", /* name of module */
824 &fbt_ops, /* driver ops */
825 };
826
827 static struct modlinkage modlinkage = {
828 MODREV_1,
829 (void *)&modldrv,
830 NULL
831 };
832
833 int
834 _init(void)
835 {
836 return (mod_install(&modlinkage));
837 }
838
839 int
840 _info(struct modinfo *modinfop)
841 {
842 return (mod_info(&modlinkage, modinfop));
843 }
844
845 int
846 _fini(void)
847 {
848 return (mod_remove(&modlinkage));
849 }
|
809 fbt_attach, /* attach */
810 fbt_detach, /* detach */
811 nodev, /* reset */
812 &fbt_cb_ops, /* driver operations */
813 NULL, /* bus operations */
814 nodev, /* dev power */
815 ddi_quiesce_not_needed, /* quiesce */
816 };
817
818 /*
819 * Module linkage information for the kernel.
820 */
821 static struct modldrv modldrv = {
822 &mod_driverops, /* module type (this is a pseudo driver) */
823 "Function Boundary Tracing", /* name of module */
824 &fbt_ops, /* driver ops */
825 };
826
827 static struct modlinkage modlinkage = {
828 MODREV_1,
829 { (void *)&modldrv, NULL }
830 };
831
832 int
833 _init(void)
834 {
835 return (mod_install(&modlinkage));
836 }
837
838 int
839 _info(struct modinfo *modinfop)
840 {
841 return (mod_info(&modlinkage, modinfop));
842 }
843
844 int
845 _fini(void)
846 {
847 return (mod_remove(&modlinkage));
848 }
|