2891 return (DDI_SUCCESS);
2892 }
2893
2894 /*
2895 * Stream Information.
2896 */
2897 DDI_DEFINE_STREAM_OPS(atge_devops, nulldev, nulldev, atge_attach, atge_detach,
2898 nodev, NULL, D_MP, NULL, atge_quiesce);
2899
2900 /*
2901 * Module linkage information.
2902 */
2903 static struct modldrv atge_modldrv = {
2904 &mod_driverops, /* Type of Module */
2905 "Atheros/Attansic Gb Ethernet", /* Description */
2906 &atge_devops /* drv_dev_ops */
2907 };
2908
2909 static struct modlinkage atge_modlinkage = {
2910 MODREV_1, /* ml_rev */
2911 (void *)&atge_modldrv,
2912 NULL
2913 };
2914
2915 /*
2916 * DDI Entry points.
2917 */
2918 int
2919 _init(void)
2920 {
2921 int r;
2922 mac_init_ops(&atge_devops, "atge");
2923 if ((r = mod_install(&atge_modlinkage)) != DDI_SUCCESS) {
2924 mac_fini_ops(&atge_devops);
2925 }
2926
2927 return (r);
2928 }
2929
2930 int
2931 _fini(void)
2932 {
|
2891 return (DDI_SUCCESS);
2892 }
2893
2894 /*
2895 * Stream Information.
2896 */
2897 DDI_DEFINE_STREAM_OPS(atge_devops, nulldev, nulldev, atge_attach, atge_detach,
2898 nodev, NULL, D_MP, NULL, atge_quiesce);
2899
2900 /*
2901 * Module linkage information.
2902 */
2903 static struct modldrv atge_modldrv = {
2904 &mod_driverops, /* Type of Module */
2905 "Atheros/Attansic Gb Ethernet", /* Description */
2906 &atge_devops /* drv_dev_ops */
2907 };
2908
2909 static struct modlinkage atge_modlinkage = {
2910 MODREV_1, /* ml_rev */
2911 { (void *)&atge_modldrv, NULL }
2912 };
2913
2914 /*
2915 * DDI Entry points.
2916 */
2917 int
2918 _init(void)
2919 {
2920 int r;
2921 mac_init_ops(&atge_devops, "atge");
2922 if ((r = mod_install(&atge_modlinkage)) != DDI_SUCCESS) {
2923 mac_fini_ops(&atge_devops);
2924 }
2925
2926 return (r);
2927 }
2928
2929 int
2930 _fini(void)
2931 {
|