Revision 9752c371 hw/virtio-blk.c
b/hw/virtio-blk.c | ||
---|---|---|
26 | 26 |
VirtQueue *vq; |
27 | 27 |
void *rq; |
28 | 28 |
QEMUBH *bh; |
29 |
BlockConf *conf; |
|
29 | 30 |
} VirtIOBlock; |
30 | 31 |
|
31 | 32 |
static VirtIOBlock *to_virtio_blk(VirtIODevice *vdev) |
... | ... | |
405 | 406 |
blkcfg.heads = heads; |
406 | 407 |
blkcfg.sectors = secs; |
407 | 408 |
blkcfg.size_max = 0; |
409 |
blkcfg.physical_block_exp = get_physical_block_exp(s->conf); |
|
410 |
blkcfg.alignment_offset = 0; |
|
411 |
blkcfg.min_io_size = s->conf->min_io_size / 512; |
|
412 |
blkcfg.opt_io_size = s->conf->opt_io_size / 512; |
|
408 | 413 |
memcpy(config, &blkcfg, sizeof(struct virtio_blk_config)); |
409 | 414 |
} |
410 | 415 |
|
... | ... | |
414 | 419 |
|
415 | 420 |
features |= (1 << VIRTIO_BLK_F_SEG_MAX); |
416 | 421 |
features |= (1 << VIRTIO_BLK_F_GEOMETRY); |
422 |
features |= (1 << VIRTIO_BLK_F_TOPOLOGY); |
|
417 | 423 |
|
418 | 424 |
if (bdrv_enable_write_cache(s->bs)) |
419 | 425 |
features |= (1 << VIRTIO_BLK_F_WCACHE); |
... | ... | |
471 | 477 |
s->vdev.get_features = virtio_blk_get_features; |
472 | 478 |
s->vdev.reset = virtio_blk_reset; |
473 | 479 |
s->bs = conf->dinfo->bdrv; |
480 |
s->conf = conf; |
|
474 | 481 |
s->rq = NULL; |
475 | 482 |
bdrv_guess_geometry(s->bs, &cylinders, &heads, &secs); |
476 | 483 |
bdrv_set_geometry_hint(s->bs, cylinders, heads, secs); |
Also available in: Unified diff