Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/virtio/block/virtio_blk.c
| Show First 20 Lines • Show All 749 Lines • ▼ Show 20 Lines | vtblk_alloc_disk(struct vtblk_softc *sc, struct virtio_blk_config *blkcfg) | ||||
| dp->d_name = VTBLK_DISK_NAME; | dp->d_name = VTBLK_DISK_NAME; | ||||
| dp->d_unit = device_get_unit(dev); | dp->d_unit = device_get_unit(dev); | ||||
| dp->d_drv1 = sc; | dp->d_drv1 = sc; | ||||
| dp->d_flags = DISKFLAG_UNMAPPED_BIO | DISKFLAG_DIRECT_COMPLETION; | dp->d_flags = DISKFLAG_UNMAPPED_BIO | DISKFLAG_DIRECT_COMPLETION; | ||||
| dp->d_hba_vendor = virtio_get_vendor(dev); | dp->d_hba_vendor = virtio_get_vendor(dev); | ||||
| dp->d_hba_device = virtio_get_device(dev); | dp->d_hba_device = virtio_get_device(dev); | ||||
| dp->d_hba_subvendor = virtio_get_subvendor(dev); | dp->d_hba_subvendor = virtio_get_subvendor(dev); | ||||
| dp->d_hba_subdevice = virtio_get_subdevice(dev); | dp->d_hba_subdevice = virtio_get_subdevice(dev); | ||||
| strlcpy(dp->d_attachment, device_get_nameunit(dev), | |||||
| sizeof(dp->d_attachment)); | |||||
| if (virtio_with_feature(dev, VIRTIO_BLK_F_RO)) | if (virtio_with_feature(dev, VIRTIO_BLK_F_RO)) | ||||
| dp->d_flags |= DISKFLAG_WRITE_PROTECT; | dp->d_flags |= DISKFLAG_WRITE_PROTECT; | ||||
| else { | else { | ||||
| if (virtio_with_feature(dev, VIRTIO_BLK_F_FLUSH)) | if (virtio_with_feature(dev, VIRTIO_BLK_F_FLUSH)) | ||||
| dp->d_flags |= DISKFLAG_CANFLUSHCACHE; | dp->d_flags |= DISKFLAG_CANFLUSHCACHE; | ||||
| dp->d_dump = vtblk_dump; | dp->d_dump = vtblk_dump; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 908 Lines • Show Last 20 Lines | |||||