334 systrace_attach, /* attach */
335 systrace_detach, /* detach */
336 nodev, /* reset */
337 &systrace_cb_ops, /* driver operations */
338 NULL, /* bus operations */
339 nodev, /* dev power */
340 ddi_quiesce_not_needed, /* quiesce */
341 };
342
343 /*
344 * Module linkage information for the kernel.
345 */
346 static struct modldrv modldrv = {
347 &mod_driverops, /* module type (this is a pseudo driver) */
348 "System Call Tracing", /* name of module */
349 &systrace_ops, /* driver ops */
350 };
351
352 static struct modlinkage modlinkage = {
353 MODREV_1,
354 (void *)&modldrv,
355 NULL
356 };
357
358 int
359 _init(void)
360 {
361 return (mod_install(&modlinkage));
362 }
363
364 int
365 _info(struct modinfo *modinfop)
366 {
367 return (mod_info(&modlinkage, modinfop));
368 }
369
370 int
371 _fini(void)
372 {
373 return (mod_remove(&modlinkage));
374 }
|
334 systrace_attach, /* attach */
335 systrace_detach, /* detach */
336 nodev, /* reset */
337 &systrace_cb_ops, /* driver operations */
338 NULL, /* bus operations */
339 nodev, /* dev power */
340 ddi_quiesce_not_needed, /* quiesce */
341 };
342
343 /*
344 * Module linkage information for the kernel.
345 */
346 static struct modldrv modldrv = {
347 &mod_driverops, /* module type (this is a pseudo driver) */
348 "System Call Tracing", /* name of module */
349 &systrace_ops, /* driver ops */
350 };
351
352 static struct modlinkage modlinkage = {
353 MODREV_1,
354 { (void *)&modldrv, NULL }
355 };
356
357 int
358 _init(void)
359 {
360 return (mod_install(&modlinkage));
361 }
362
363 int
364 _info(struct modinfo *modinfop)
365 {
366 return (mod_info(&modlinkage, modinfop));
367 }
368
369 int
370 _fini(void)
371 {
372 return (mod_remove(&modlinkage));
373 }
|