300
301 /*
302 * For mfthread only
303 */
304 extern pri_t minclsyspri;
305
306 /*
307 * Module Loading Data & Entry Points
308 */
309 DDI_DEFINE_STREAM_OPS(wpi_devops, nulldev, nulldev, wpi_attach,
310 wpi_detach, nodev, NULL, D_MP, NULL, wpi_quiesce);
311
312 static struct modldrv wpi_modldrv = {
313 &mod_driverops,
314 "Intel(R) PRO/Wireless 3945ABG driver",
315 &wpi_devops
316 };
317
318 static struct modlinkage wpi_modlinkage = {
319 MODREV_1,
320 &wpi_modldrv,
321 NULL
322 };
323
324 int
325 _init(void)
326 {
327 int status;
328
329 status = ddi_soft_state_init(&wpi_soft_state_p,
330 sizeof (wpi_sc_t), 1);
331 if (status != DDI_SUCCESS)
332 return (status);
333
334 mac_init_ops(&wpi_devops, "wpi");
335 status = mod_install(&wpi_modlinkage);
336 if (status != DDI_SUCCESS) {
337 mac_fini_ops(&wpi_devops);
338 ddi_soft_state_fini(&wpi_soft_state_p);
339 }
340
341 return (status);
|
300
301 /*
302 * For mfthread only
303 */
304 extern pri_t minclsyspri;
305
306 /*
307 * Module Loading Data & Entry Points
308 */
309 DDI_DEFINE_STREAM_OPS(wpi_devops, nulldev, nulldev, wpi_attach,
310 wpi_detach, nodev, NULL, D_MP, NULL, wpi_quiesce);
311
312 static struct modldrv wpi_modldrv = {
313 &mod_driverops,
314 "Intel(R) PRO/Wireless 3945ABG driver",
315 &wpi_devops
316 };
317
318 static struct modlinkage wpi_modlinkage = {
319 MODREV_1,
320 { &wpi_modldrv, NULL }
321 };
322
323 int
324 _init(void)
325 {
326 int status;
327
328 status = ddi_soft_state_init(&wpi_soft_state_p,
329 sizeof (wpi_sc_t), 1);
330 if (status != DDI_SUCCESS)
331 return (status);
332
333 mac_init_ops(&wpi_devops, "wpi");
334 status = mod_install(&wpi_modlinkage);
335 if (status != DDI_SUCCESS) {
336 mac_fini_ops(&wpi_devops);
337 ddi_soft_state_fini(&wpi_soft_state_p);
338 }
339
340 return (status);
|