Looks good,
Reviewed-by: Dmitry Fomichev
On Mon, 2020-06-29 at 20:26 +0200, Klaus Jensen wrote:
> From: Klaus Jensen
>
> The NvmeFeatureVal does not belong with the spec-related data structures
> in include/block/nvme.h that is shared between the block-level nvme
> driver and the emulated nvme device.
>
> Move it into the nvme device specific header file as it is the only
> user of the structure. Also, remove the unused members.
>
> Signed-off-by: Klaus Jensen
> ---
> hw/block/nvme.h | 11 +++
> include/block/nvme.h | 20
> 2 files changed, 11 insertions(+), 20 deletions(-)
>
> diff --git a/hw/block/nvme.h b/hw/block/nvme.h
> index 1f64a0e94035..16a254d30b4e 100644
> --- a/hw/block/nvme.h
> +++ b/hw/block/nvme.h
> @@ -79,6 +79,17 @@ static inline uint8_t nvme_ns_lbads(NvmeNamespace *ns)
> #define NVME(obj) \
> OBJECT_CHECK(NvmeCtrl, (obj), TYPE_NVME)
>
> +typedef struct NvmeFeatureVal {
> +union {
> +struct {
> +uint16_t temp_thresh_hi;
> +uint16_t temp_thresh_low;
> +};
> +uint32_t temp_thresh;
> +};
> +uint32_tasync_config;
> +} NvmeFeatureVal;
> +
> typedef struct NvmeCtrl {
> PCIDeviceparent_obj;
> MemoryRegion iomem;
> diff --git a/include/block/nvme.h b/include/block/nvme.h
> index e98584e38134..c9f232a70e98 100644
> --- a/include/block/nvme.h
> +++ b/include/block/nvme.h
> @@ -865,26 +865,6 @@ enum NvmeIdCtrlLpa {
> #define NVME_CTRL_SGLS_MPTR_SGL (0x1 << 19)
> #define NVME_CTRL_SGLS_ADDR_OFFSET (0x1 << 20)
>
> -typedef struct NvmeFeatureVal {
> -uint32_tarbitration;
> -uint32_tpower_mgmt;
> -union {
> -struct {
> -uint16_t temp_thresh_hi;
> -uint16_t temp_thresh_low;
> -};
> -uint32_t temp_thresh;
> -};
> -uint32_terr_rec;
> -uint32_tvolatile_wc;
> -uint32_tnum_queues;
> -uint32_tint_coalescing;
> -uint32_t*int_vector_config;
> -uint32_twrite_atomicity;
> -uint32_tasync_config;
> -uint32_tsw_prog_marker;
> -} NvmeFeatureVal;
> -
> #define NVME_ARB_AB(arb)(arb & 0x7)
> #define NVME_ARB_LPW(arb) ((arb >> 8) & 0xff)
> #define NVME_ARB_MPW(arb) ((arb >> 16) & 0xff)