286 crypto_getinfo, /* devo_getinfo */
287 nulldev, /* devo_identify */
288 nulldev, /* devo_probe */
289 crypto_attach, /* devo_attach */
290 crypto_detach, /* devo_detach */
291 nodev, /* devo_reset */
292 &cbops, /* devo_cb_ops */
293 NULL, /* devo_bus_ops */
294 NULL, /* devo_power */
295 ddi_quiesce_not_needed, /* devo_quiesce */
296 };
297
298 static struct modldrv modldrv = {
299 &mod_driverops, /* drv_modops */
300 "Cryptographic Library Interface", /* drv_linkinfo */
301 &devops,
302 };
303
304 static struct modlinkage modlinkage = {
305 MODREV_1, /* ml_rev */
306 &modldrv, /* ml_linkage */
307 NULL
308 };
309
310 /*
311 * DDI entry points.
312 */
313 int
314 _init(void)
315 {
316 return (mod_install(&modlinkage));
317 }
318
319 int
320 _fini(void)
321 {
322 return (mod_remove(&modlinkage));
323 }
324
325 int
326 _info(struct modinfo *modinfop)
327 {
|
286 crypto_getinfo, /* devo_getinfo */
287 nulldev, /* devo_identify */
288 nulldev, /* devo_probe */
289 crypto_attach, /* devo_attach */
290 crypto_detach, /* devo_detach */
291 nodev, /* devo_reset */
292 &cbops, /* devo_cb_ops */
293 NULL, /* devo_bus_ops */
294 NULL, /* devo_power */
295 ddi_quiesce_not_needed, /* devo_quiesce */
296 };
297
298 static struct modldrv modldrv = {
299 &mod_driverops, /* drv_modops */
300 "Cryptographic Library Interface", /* drv_linkinfo */
301 &devops,
302 };
303
304 static struct modlinkage modlinkage = {
305 MODREV_1, /* ml_rev */
306 { &modldrv, /* ml_linkage */
307 NULL }
308 };
309
310 /*
311 * DDI entry points.
312 */
313 int
314 _init(void)
315 {
316 return (mod_install(&modlinkage));
317 }
318
319 int
320 _fini(void)
321 {
322 return (mod_remove(&modlinkage));
323 }
324
325 int
326 _info(struct modinfo *modinfop)
327 {
|