1451 kmem_free(adapter->cmd_buf_arr,
1452 sizeof (struct unm_cmd_buffer) * adapter->MaxTxDescCount);
1453 }
1454
1455 #ifdef SOLARIS11
1456 DDI_DEFINE_STREAM_OPS(unm_ops, nulldev, nulldev, unmattach, unmdetach,
1457 nodev, NULL, D_MP, NULL, NULL);
1458 #else
1459 DDI_DEFINE_STREAM_OPS(unm_ops, nulldev, nulldev, unmattach, unmdetach,
1460 nodev, NULL, D_MP, NULL);
1461 #endif
1462
1463 static struct modldrv modldrv = {
1464 &mod_driverops, /* Type of module. This one is a driver */
1465 ident,
1466 &unm_ops, /* driver ops */
1467 };
1468
1469 static struct modlinkage modlinkage = {
1470 MODREV_1,
1471 (&modldrv),
1472 NULL
1473 };
1474
1475
1476 int
1477 _init(void)
1478 {
1479 int ret;
1480
1481 unm_ops.devo_cb_ops->cb_str = NULL;
1482 mac_init_ops(&unm_ops, "ntxn");
1483
1484 ret = mod_install(&modlinkage);
1485 if (ret != DDI_SUCCESS) {
1486 mac_fini_ops(&unm_ops);
1487 cmn_err(CE_WARN, "ntxn: mod_install failed\n");
1488 }
1489
1490 return (ret);
1491 }
1492
|
1451 kmem_free(adapter->cmd_buf_arr,
1452 sizeof (struct unm_cmd_buffer) * adapter->MaxTxDescCount);
1453 }
1454
1455 #ifdef SOLARIS11
1456 DDI_DEFINE_STREAM_OPS(unm_ops, nulldev, nulldev, unmattach, unmdetach,
1457 nodev, NULL, D_MP, NULL, NULL);
1458 #else
1459 DDI_DEFINE_STREAM_OPS(unm_ops, nulldev, nulldev, unmattach, unmdetach,
1460 nodev, NULL, D_MP, NULL);
1461 #endif
1462
1463 static struct modldrv modldrv = {
1464 &mod_driverops, /* Type of module. This one is a driver */
1465 ident,
1466 &unm_ops, /* driver ops */
1467 };
1468
1469 static struct modlinkage modlinkage = {
1470 MODREV_1,
1471 { (&modldrv), NULL }
1472 };
1473
1474
1475 int
1476 _init(void)
1477 {
1478 int ret;
1479
1480 unm_ops.devo_cb_ops->cb_str = NULL;
1481 mac_init_ops(&unm_ops, "ntxn");
1482
1483 ret = mod_install(&modlinkage);
1484 if (ret != DDI_SUCCESS) {
1485 mac_fini_ops(&unm_ops);
1486 cmn_err(CE_WARN, "ntxn: mod_install failed\n");
1487 }
1488
1489 return (ret);
1490 }
1491
|