4295
4296 DDI_DEFINE_STREAM_OPS(bge_dev_ops,
4297 nulldev, /* identify */
4298 nulldev, /* probe */
4299 bge_attach, /* attach */
4300 bge_detach, /* detach */
4301 nodev, /* reset */
4302 NULL, /* cb_ops */
4303 D_MP, /* bus_ops */
4304 NULL, /* power */
4305 bge_quiesce /* quiesce */
4306 );
4307
4308 static struct modldrv bge_modldrv = {
4309 &mod_driverops, /* Type of module. This one is a driver */
4310 bge_ident, /* short description */
4311 &bge_dev_ops /* driver specific ops */
4312 };
4313
4314 static struct modlinkage modlinkage = {
4315 MODREV_1, (void *)&bge_modldrv, NULL
4316 };
4317
4318
4319 int
4320 _info(struct modinfo *modinfop)
4321 {
4322 return (mod_info(&modlinkage, modinfop));
4323 }
4324
4325 int
4326 _init(void)
4327 {
4328 int status;
4329
4330 mac_init_ops(&bge_dev_ops, "bge");
4331 status = mod_install(&modlinkage);
4332 if (status == DDI_SUCCESS)
4333 mutex_init(bge_log_mutex, NULL, MUTEX_DRIVER, NULL);
4334 else
4335 mac_fini_ops(&bge_dev_ops);
|
4295
4296 DDI_DEFINE_STREAM_OPS(bge_dev_ops,
4297 nulldev, /* identify */
4298 nulldev, /* probe */
4299 bge_attach, /* attach */
4300 bge_detach, /* detach */
4301 nodev, /* reset */
4302 NULL, /* cb_ops */
4303 D_MP, /* bus_ops */
4304 NULL, /* power */
4305 bge_quiesce /* quiesce */
4306 );
4307
4308 static struct modldrv bge_modldrv = {
4309 &mod_driverops, /* Type of module. This one is a driver */
4310 bge_ident, /* short description */
4311 &bge_dev_ops /* driver specific ops */
4312 };
4313
4314 static struct modlinkage modlinkage = {
4315 MODREV_1, { (void *)&bge_modldrv, NULL }
4316 };
4317
4318
4319 int
4320 _info(struct modinfo *modinfop)
4321 {
4322 return (mod_info(&modlinkage, modinfop));
4323 }
4324
4325 int
4326 _init(void)
4327 {
4328 int status;
4329
4330 mac_init_ops(&bge_dev_ops, "bge");
4331 status = mod_install(&modlinkage);
4332 if (status == DDI_SUCCESS)
4333 mutex_init(bge_log_mutex, NULL, MUTEX_DRIVER, NULL);
4334 else
4335 mac_fini_ops(&bge_dev_ops);
|