Lines Matching refs:vdev
19 static int virtio_blk_read_many(VDev *vdev, unsigned long sector, void *load_addr, in virtio_blk_read_many() argument
24 VRing *vr = &vdev->vrings[vdev->cmd_vr_idx]; in virtio_blk_read_many()
54 VDev *vdev = virtio_get_device(); in virtio_read_many() local
56 switch (vdev->senseid.cu_model) { in virtio_read_many()
58 return virtio_blk_read_many(vdev, sector, load_addr, sec_num); in virtio_read_many()
60 return virtio_scsi_read_many(vdev, sector, load_addr, sec_num); in virtio_read_many()
120 VDev *vdev = virtio_get_device(); in virtio_assume_iso9660() local
122 switch (vdev->senseid.cu_model) { in virtio_assume_iso9660()
124 vdev->guessed_disk_nature = VIRTIO_GDN_SCSI; in virtio_assume_iso9660()
125 vdev->config.blk.blk_size = VIRTIO_ISO_BLOCK_SIZE; in virtio_assume_iso9660()
126 vdev->config.blk.physical_block_exp = 0; in virtio_assume_iso9660()
127 vdev->blk_factor = VIRTIO_ISO_BLOCK_SIZE / VIRTIO_SECTOR_SIZE; in virtio_assume_iso9660()
130 vdev->scsi_block_size = VIRTIO_ISO_BLOCK_SIZE; in virtio_assume_iso9660()
137 VDev *vdev = virtio_get_device(); in virtio_assume_eckd() local
139 vdev->guessed_disk_nature = VIRTIO_GDN_DASD; in virtio_assume_eckd()
140 vdev->blk_factor = 1; in virtio_assume_eckd()
141 vdev->config.blk.physical_block_exp = 0; in virtio_assume_eckd()
142 switch (vdev->senseid.cu_model) { in virtio_assume_eckd()
144 vdev->config.blk.blk_size = VIRTIO_DASD_DEFAULT_BLOCK_SIZE; in virtio_assume_eckd()
147 vdev->config.blk.blk_size = vdev->scsi_block_size; in virtio_assume_eckd()
150 vdev->config.blk.geometry.heads = 15; in virtio_assume_eckd()
151 vdev->config.blk.geometry.sectors = in virtio_assume_eckd()
152 virtio_eckd_sectors_for_block_size(vdev->config.blk.blk_size); in virtio_assume_eckd()
158 VDev *vdev = virtio_get_device(); in virtio_ipl_disk_is_valid() local
160 if (vdev->guessed_disk_nature == VIRTIO_GDN_SCSI || in virtio_ipl_disk_is_valid()
161 vdev->guessed_disk_nature == VIRTIO_GDN_DASD) { in virtio_ipl_disk_is_valid()
165 return (vdev->senseid.cu_model == VIRTIO_ID_BLOCK || in virtio_ipl_disk_is_valid()
166 vdev->senseid.cu_model == VIRTIO_ID_SCSI) && in virtio_ipl_disk_is_valid()
172 VDev *vdev = virtio_get_device(); in virtio_get_block_size() local
174 switch (vdev->senseid.cu_model) { in virtio_get_block_size()
176 return vdev->config.blk.blk_size; in virtio_get_block_size()
178 return vdev->scsi_block_size; in virtio_get_block_size()
185 VDev *vdev = virtio_get_device(); in virtio_get_heads() local
187 switch (vdev->senseid.cu_model) { in virtio_get_heads()
189 return vdev->config.blk.geometry.heads; in virtio_get_heads()
191 return vdev->guessed_disk_nature == VIRTIO_GDN_DASD in virtio_get_heads()
192 ? vdev->config.blk.geometry.heads : 255; in virtio_get_heads()
199 VDev *vdev = virtio_get_device(); in virtio_get_sectors() local
201 switch (vdev->senseid.cu_model) { in virtio_get_sectors()
203 return vdev->config.blk.geometry.sectors; in virtio_get_sectors()
205 return vdev->guessed_disk_nature == VIRTIO_GDN_DASD in virtio_get_sectors()
206 ? vdev->config.blk.geometry.sectors : 63; in virtio_get_sectors()
213 VDev *vdev = virtio_get_device(); in virtio_get_blocks() local
216 switch (vdev->senseid.cu_model) { in virtio_get_blocks()
218 return vdev->config.blk.capacity / factor; in virtio_get_blocks()
220 return vdev->scsi_last_block / factor; in virtio_get_blocks()
227 VDev *vdev = virtio_get_device(); in virtio_blk_setup_device() local
229 vdev->guest_features[0] = VIRTIO_BLK_F_GEOMETRY | VIRTIO_BLK_F_BLK_SIZE; in virtio_blk_setup_device()
230 vdev->schid = schid; in virtio_blk_setup_device()
231 virtio_setup_ccw(vdev); in virtio_blk_setup_device()