3581 * across reboot.
3582 */
3583 xdf_devid_setup(vdp);
3584 if (vdp->xdf_tgt_devid == NULL) {
3585 if (ddi_devid_init(vdp->xdf_dip, DEVID_FAB, 0, NULL,
3586 &vdp->xdf_tgt_devid) != DDI_SUCCESS) {
3587 cmn_err(CE_WARN,
3588 "xdf@%s_ attach failed, devid_init failed",
3589 ddi_get_name_addr(dip));
3590 goto errout1;
3591 } else {
3592 (void) ddi_devid_register(vdp->xdf_dip,
3593 vdp->xdf_tgt_devid);
3594 }
3595 }
3596
3597 done:
3598 #ifdef XPV_HVM_DRIVER
3599 xdf_hvm_add(dip);
3600
3601 /* Report our version to dom0. */
3602 if (xenbus_printf(XBT_NULL, "guest/xdf", "version", "%d",
3603 HVMPV_XDF_VERS))
3604 cmn_err(CE_WARN, "xdf: couldn't write version\n");
3605
3606 #endif /* XPV_HVM_DRIVER */
3607
3608 /* Create kstat for iostat(1M) */
3609 if (xdf_kstat_create(dip) != 0) {
3610 cmn_err(CE_WARN, "xdf@%s: failed to create kstat",
3611 ddi_get_name_addr(dip));
3612 goto errout1;
3613 }
3614
3615 /*
3616 * Don't bother with getting real device identification
3617 * strings (is it even possible?), they are unlikely to
3618 * change often (if at all).
3619 */
3620 (void) ndi_prop_update_string(DDI_DEV_T_NONE, dip, INQUIRY_VENDOR_ID,
3621 "Xen");
3622 (void) ndi_prop_update_string(DDI_DEV_T_NONE, dip, INQUIRY_PRODUCT_ID,
3623 dev_iscd ? "Virtual CD" : "Virtual disk");
3624 (void) ndi_prop_update_string(DDI_DEV_T_NONE, dip, INQUIRY_REVISION_ID,
3625 "1.0");
|
3581 * across reboot.
3582 */
3583 xdf_devid_setup(vdp);
3584 if (vdp->xdf_tgt_devid == NULL) {
3585 if (ddi_devid_init(vdp->xdf_dip, DEVID_FAB, 0, NULL,
3586 &vdp->xdf_tgt_devid) != DDI_SUCCESS) {
3587 cmn_err(CE_WARN,
3588 "xdf@%s_ attach failed, devid_init failed",
3589 ddi_get_name_addr(dip));
3590 goto errout1;
3591 } else {
3592 (void) ddi_devid_register(vdp->xdf_dip,
3593 vdp->xdf_tgt_devid);
3594 }
3595 }
3596
3597 done:
3598 #ifdef XPV_HVM_DRIVER
3599 xdf_hvm_add(dip);
3600
3601 /* Report our version to dom0 */
3602 (void) xenbus_printf(XBT_NULL, "guest/xdf", "version", "%d",
3603 HVMPV_XDF_VERS);
3604 #endif /* XPV_HVM_DRIVER */
3605
3606 /* Create kstat for iostat(1M) */
3607 if (xdf_kstat_create(dip) != 0) {
3608 cmn_err(CE_WARN, "xdf@%s: failed to create kstat",
3609 ddi_get_name_addr(dip));
3610 goto errout1;
3611 }
3612
3613 /*
3614 * Don't bother with getting real device identification
3615 * strings (is it even possible?), they are unlikely to
3616 * change often (if at all).
3617 */
3618 (void) ndi_prop_update_string(DDI_DEV_T_NONE, dip, INQUIRY_VENDOR_ID,
3619 "Xen");
3620 (void) ndi_prop_update_string(DDI_DEV_T_NONE, dip, INQUIRY_PRODUCT_ID,
3621 dev_iscd ? "Virtual CD" : "Virtual disk");
3622 (void) ndi_prop_update_string(DDI_DEV_T_NONE, dip, INQUIRY_REVISION_ID,
3623 "1.0");
|