235 rdsv3_detach, /* detach */
236 nodev, /* reset */
237 &rdsv3_cb_ops, /* driver ops - devctl interfaces */
238 NULL, /* bus operations */
239 NULL, /* power */
240 ddi_quiesce_not_needed /* quiesce */
241 };
242
243 /*
244 * Module linkage information.
245 */
246 #define RDSV3_DEVDESC "RDSv3 IB transport driver"
247 static struct modldrv rdsv3_modldrv = {
248 &mod_driverops, /* Driver module */
249 RDSV3_DEVDESC, /* Driver name and version */
250 &rdsv3_ops, /* Driver ops */
251 };
252
253 static struct modlinkage rdsv3_modlinkage = {
254 MODREV_1,
255 (void *)&rdsv3_modldrv,
256 NULL
257 };
258
259 int
260 _init(void)
261 {
262 int ret;
263
264 if (ibt_hw_is_present() == 0) {
265 return (ENODEV);
266 }
267
268 /* Initialize logging */
269 rdsv3_logging_initialization();
270
271 ret = mod_install(&rdsv3_modlinkage);
272 if (ret != 0) {
273 /*
274 * Could not load module
275 */
276 rdsv3_logging_destroy();
|
235 rdsv3_detach, /* detach */
236 nodev, /* reset */
237 &rdsv3_cb_ops, /* driver ops - devctl interfaces */
238 NULL, /* bus operations */
239 NULL, /* power */
240 ddi_quiesce_not_needed /* quiesce */
241 };
242
243 /*
244 * Module linkage information.
245 */
246 #define RDSV3_DEVDESC "RDSv3 IB transport driver"
247 static struct modldrv rdsv3_modldrv = {
248 &mod_driverops, /* Driver module */
249 RDSV3_DEVDESC, /* Driver name and version */
250 &rdsv3_ops, /* Driver ops */
251 };
252
253 static struct modlinkage rdsv3_modlinkage = {
254 MODREV_1,
255 { (void *)&rdsv3_modldrv, NULL }
256 };
257
258 int
259 _init(void)
260 {
261 int ret;
262
263 if (ibt_hw_is_present() == 0) {
264 return (ENODEV);
265 }
266
267 /* Initialize logging */
268 rdsv3_logging_initialization();
269
270 ret = mod_install(&rdsv3_modlinkage);
271 if (ret != 0) {
272 /*
273 * Could not load module
274 */
275 rdsv3_logging_destroy();
|