3050 ipw2200_csr_put32(sc, IPW2200_CSR_INTR_MASK, IPW2200_INTR_MASK_ALL);
3051
3052 return (DDI_INTR_CLAIMED);
3053 }
3054
3055
3056 /*
3057 * Module Loading Data & Entry Points
3058 */
3059 DDI_DEFINE_STREAM_OPS(ipw2200_devops, nulldev, nulldev, ipw2200_attach,
3060 ipw2200_detach, nodev, NULL, D_MP, NULL, ipw2200_quiesce);
3061
3062 static struct modldrv ipw2200_modldrv = {
3063 &mod_driverops,
3064 ipw2200_ident,
3065 &ipw2200_devops
3066 };
3067
3068 static struct modlinkage ipw2200_modlinkage = {
3069 MODREV_1,
3070 &ipw2200_modldrv,
3071 NULL
3072 };
3073
3074 int
3075 _init(void)
3076 {
3077 int status;
3078
3079 status = ddi_soft_state_init(&ipw2200_ssp,
3080 sizeof (struct ipw2200_softc), 1);
3081 if (status != DDI_SUCCESS)
3082 return (status);
3083
3084 mac_init_ops(&ipw2200_devops, IPW2200_DRV_NAME);
3085 status = mod_install(&ipw2200_modlinkage);
3086 if (status != DDI_SUCCESS) {
3087 mac_fini_ops(&ipw2200_devops);
3088 ddi_soft_state_fini(&ipw2200_ssp);
3089 }
3090
3091 return (status);
|
3050 ipw2200_csr_put32(sc, IPW2200_CSR_INTR_MASK, IPW2200_INTR_MASK_ALL);
3051
3052 return (DDI_INTR_CLAIMED);
3053 }
3054
3055
3056 /*
3057 * Module Loading Data & Entry Points
3058 */
3059 DDI_DEFINE_STREAM_OPS(ipw2200_devops, nulldev, nulldev, ipw2200_attach,
3060 ipw2200_detach, nodev, NULL, D_MP, NULL, ipw2200_quiesce);
3061
3062 static struct modldrv ipw2200_modldrv = {
3063 &mod_driverops,
3064 ipw2200_ident,
3065 &ipw2200_devops
3066 };
3067
3068 static struct modlinkage ipw2200_modlinkage = {
3069 MODREV_1,
3070 { &ipw2200_modldrv, NULL }
3071 };
3072
3073 int
3074 _init(void)
3075 {
3076 int status;
3077
3078 status = ddi_soft_state_init(&ipw2200_ssp,
3079 sizeof (struct ipw2200_softc), 1);
3080 if (status != DDI_SUCCESS)
3081 return (status);
3082
3083 mac_init_ops(&ipw2200_devops, IPW2200_DRV_NAME);
3084 status = mod_install(&ipw2200_modlinkage);
3085 if (status != DDI_SUCCESS) {
3086 mac_fini_ops(&ipw2200_devops);
3087 ddi_soft_state_fini(&ipw2200_ssp);
3088 }
3089
3090 return (status);
|