2870 ipw2100_csr_put32(sc, IPW2100_CSR_INTR_MASK, IPW2100_INTR_MASK_ALL);
2871
2872 return (DDI_INTR_CLAIMED);
2873 }
2874
2875
2876 /*
2877 * Module Loading Data & Entry Points
2878 */
2879 DDI_DEFINE_STREAM_OPS(ipw2100_devops, nulldev, nulldev, ipw2100_attach,
2880 ipw2100_detach, nodev, NULL, D_MP, NULL, ipw2100_quiesce);
2881
2882 static struct modldrv ipw2100_modldrv = {
2883 &mod_driverops,
2884 ipw2100_ident,
2885 &ipw2100_devops
2886 };
2887
2888 static struct modlinkage ipw2100_modlinkage = {
2889 MODREV_1,
2890 &ipw2100_modldrv,
2891 NULL
2892 };
2893
2894 int
2895 _init(void)
2896 {
2897 int status;
2898
2899 status = ddi_soft_state_init(&ipw2100_ssp,
2900 sizeof (struct ipw2100_softc), 1);
2901 if (status != DDI_SUCCESS)
2902 return (status);
2903
2904 mac_init_ops(&ipw2100_devops, IPW2100_DRV_NAME);
2905 status = mod_install(&ipw2100_modlinkage);
2906 if (status != DDI_SUCCESS) {
2907 mac_fini_ops(&ipw2100_devops);
2908 ddi_soft_state_fini(&ipw2100_ssp);
2909 }
2910
2911 return (status);
|
2870 ipw2100_csr_put32(sc, IPW2100_CSR_INTR_MASK, IPW2100_INTR_MASK_ALL);
2871
2872 return (DDI_INTR_CLAIMED);
2873 }
2874
2875
2876 /*
2877 * Module Loading Data & Entry Points
2878 */
2879 DDI_DEFINE_STREAM_OPS(ipw2100_devops, nulldev, nulldev, ipw2100_attach,
2880 ipw2100_detach, nodev, NULL, D_MP, NULL, ipw2100_quiesce);
2881
2882 static struct modldrv ipw2100_modldrv = {
2883 &mod_driverops,
2884 ipw2100_ident,
2885 &ipw2100_devops
2886 };
2887
2888 static struct modlinkage ipw2100_modlinkage = {
2889 MODREV_1,
2890 { &ipw2100_modldrv, NULL }
2891 };
2892
2893 int
2894 _init(void)
2895 {
2896 int status;
2897
2898 status = ddi_soft_state_init(&ipw2100_ssp,
2899 sizeof (struct ipw2100_softc), 1);
2900 if (status != DDI_SUCCESS)
2901 return (status);
2902
2903 mac_init_ops(&ipw2100_devops, IPW2100_DRV_NAME);
2904 status = mod_install(&ipw2100_modlinkage);
2905 if (status != DDI_SUCCESS) {
2906 mac_fini_ops(&ipw2100_devops);
2907 ddi_soft_state_fini(&ipw2100_ssp);
2908 }
2909
2910 return (status);
|