304 0, /* refcnt */
305 lockstat_info, /* getinfo */
306 nulldev, /* identify */
307 nulldev, /* probe */
308 lockstat_attach, /* attach */
309 lockstat_detach, /* detach */
310 nulldev, /* reset */
311 &lockstat_cb_ops, /* cb_ops */
312 NULL, /* bus_ops */
313 NULL, /* power */
314 ddi_quiesce_not_needed, /* quiesce */
315 };
316
317 static struct modldrv modldrv = {
318 &mod_driverops, /* Type of module. This one is a driver */
319 "Lock Statistics", /* name of module */
320 &lockstat_ops, /* driver ops */
321 };
322
323 static struct modlinkage modlinkage = {
324 MODREV_1, (void *)&modldrv, NULL
325 };
326
327 int
328 _init(void)
329 {
330 return (mod_install(&modlinkage));
331 }
332
333 int
334 _fini(void)
335 {
336 return (mod_remove(&modlinkage));
337 }
338
339 int
340 _info(struct modinfo *modinfop)
341 {
342 return (mod_info(&modlinkage, modinfop));
343 }
|
304 0, /* refcnt */
305 lockstat_info, /* getinfo */
306 nulldev, /* identify */
307 nulldev, /* probe */
308 lockstat_attach, /* attach */
309 lockstat_detach, /* detach */
310 nulldev, /* reset */
311 &lockstat_cb_ops, /* cb_ops */
312 NULL, /* bus_ops */
313 NULL, /* power */
314 ddi_quiesce_not_needed, /* quiesce */
315 };
316
317 static struct modldrv modldrv = {
318 &mod_driverops, /* Type of module. This one is a driver */
319 "Lock Statistics", /* name of module */
320 &lockstat_ops, /* driver ops */
321 };
322
323 static struct modlinkage modlinkage = {
324 MODREV_1, { (void *)&modldrv, NULL }
325 };
326
327 int
328 _init(void)
329 {
330 return (mod_install(&modlinkage));
331 }
332
333 int
334 _fini(void)
335 {
336 return (mod_remove(&modlinkage));
337 }
338
339 int
340 _info(struct modinfo *modinfop)
341 {
342 return (mod_info(&modlinkage, modinfop));
343 }
|