Browse Source
This way we can reuse it for other virtio-blk devices, e.g vhost-user-blk, which currently does not control its config space size dynamically. Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru> Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com> Message-Id: <20220906073111.353245-3-d-tatianin@yandex-team.ru> Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>pull/223/head
committed by
Michael S. Tsirkin
5 changed files with 64 additions and 23 deletions
@ -0,0 +1,39 @@ |
|||
/*
|
|||
* Virtio Block Device common helpers |
|||
* |
|||
* Copyright IBM, Corp. 2007 |
|||
* |
|||
* Authors: |
|||
* Anthony Liguori <aliguori@us.ibm.com> |
|||
* |
|||
* This work is licensed under the terms of the GNU GPL, version 2. See |
|||
* the COPYING file in the top-level directory. |
|||
*/ |
|||
|
|||
#include "qemu/osdep.h" |
|||
|
|||
#include "standard-headers/linux/virtio_blk.h" |
|||
#include "hw/virtio/virtio.h" |
|||
#include "hw/virtio/virtio-blk-common.h" |
|||
|
|||
/* Config size before the discard support (hide associated config fields) */ |
|||
#define VIRTIO_BLK_CFG_SIZE offsetof(struct virtio_blk_config, \ |
|||
max_discard_sectors) |
|||
|
|||
/*
|
|||
* Starting from the discard feature, we can use this array to properly |
|||
* set the config size depending on the features enabled. |
|||
*/ |
|||
static const VirtIOFeature feature_sizes[] = { |
|||
{.flags = 1ULL << VIRTIO_BLK_F_DISCARD, |
|||
.end = endof(struct virtio_blk_config, discard_sector_alignment)}, |
|||
{.flags = 1ULL << VIRTIO_BLK_F_WRITE_ZEROES, |
|||
.end = endof(struct virtio_blk_config, write_zeroes_may_unmap)}, |
|||
{} |
|||
}; |
|||
|
|||
const VirtIOConfigSizeParams virtio_blk_cfg_size_params = { |
|||
.min_size = VIRTIO_BLK_CFG_SIZE, |
|||
.max_size = sizeof(struct virtio_blk_config), |
|||
.feature_sizes = feature_sizes |
|||
}; |
|||
@ -0,0 +1,20 @@ |
|||
/*
|
|||
* Virtio Block Device common helpers |
|||
* |
|||
* Copyright IBM, Corp. 2007 |
|||
* |
|||
* Authors: |
|||
* Anthony Liguori <aliguori@us.ibm.com> |
|||
* |
|||
* This work is licensed under the terms of the GNU GPL, version 2. See |
|||
* the COPYING file in the top-level directory. |
|||
*/ |
|||
|
|||
#ifndef VIRTIO_BLK_COMMON_H |
|||
#define VIRTIO_BLK_COMMON_H |
|||
|
|||
#include "hw/virtio/virtio.h" |
|||
|
|||
extern const VirtIOConfigSizeParams virtio_blk_cfg_size_params; |
|||
|
|||
#endif |
|||
Loading…
Reference in new issue