382 amd64_gart_getinfo, /* devo_getinfo */
383 nulldev, /* devo_identify */
384 nulldev, /* devo_probe */
385 amd64_gart_attach, /* devo_attach */
386 amd64_gart_detach, /* devo_detach */
387 nodev, /* devo_reset */
388 &amd64_gart_cb_ops, /* devo_cb_ops */
389 0, /* devo_bus_ops */
390 0, /* devo_power */
391 ddi_quiesce_not_needed, /* devo_quiesce */
392 };
393
394 static struct modldrv modldrv = {
395 &mod_driverops,
396 "AGP AMD gart driver",
397 &amd64_gart_ops,
398 };
399
400 static struct modlinkage modlinkage = {
401 MODREV_1, /* MODREV_1 is indicated by manual */
402 &modldrv,
403 NULL
404 };
405
406
407 int
408 _init(void)
409 {
410 int ret = DDI_SUCCESS;
411
412 ret = ddi_soft_state_init(&amd64_gart_glob_soft_handle,
413 sizeof (amd64_gart_softstate_t),
414 MAX_GART_INSTS);
415
416 if (ret)
417 return (ret);
418 if ((ret = mod_install(&modlinkage)) != 0) {
419 ddi_soft_state_fini(&amd64_gart_glob_soft_handle);
420 return (ret);
421 }
422 return (DDI_SUCCESS);
423 }
|
382 amd64_gart_getinfo, /* devo_getinfo */
383 nulldev, /* devo_identify */
384 nulldev, /* devo_probe */
385 amd64_gart_attach, /* devo_attach */
386 amd64_gart_detach, /* devo_detach */
387 nodev, /* devo_reset */
388 &amd64_gart_cb_ops, /* devo_cb_ops */
389 0, /* devo_bus_ops */
390 0, /* devo_power */
391 ddi_quiesce_not_needed, /* devo_quiesce */
392 };
393
394 static struct modldrv modldrv = {
395 &mod_driverops,
396 "AGP AMD gart driver",
397 &amd64_gart_ops,
398 };
399
400 static struct modlinkage modlinkage = {
401 MODREV_1, /* MODREV_1 is indicated by manual */
402 { &modldrv, NULL }
403 };
404
405
406 int
407 _init(void)
408 {
409 int ret = DDI_SUCCESS;
410
411 ret = ddi_soft_state_init(&amd64_gart_glob_soft_handle,
412 sizeof (amd64_gart_softstate_t),
413 MAX_GART_INSTS);
414
415 if (ret)
416 return (ret);
417 if ((ret = mod_install(&modlinkage)) != 0) {
418 ddi_soft_state_fini(&amd64_gart_glob_soft_handle);
419 return (ret);
420 }
421 return (DDI_SUCCESS);
422 }
|