On Fri, Jan 29, 2021 at 10:15:40AM +0100, Klaus Jensen wrote:
> From: Klaus Jensen <[email protected]>
>
> Add new data structures and types for the Simple Copy command.
>
> Signed-off-by: Klaus Jensen <[email protected]>
> Reviewed-by: Minwoo Im <[email protected]>
> Acked-by: Stefan Hajnoczi <[email protected]>
> ---
> include/block/nvme.h | 45 ++++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 43 insertions(+), 2 deletions(-)
>
> diff --git a/include/block/nvme.h b/include/block/nvme.h
> index e4b918064df9..5977bcf0308a 100644
> --- a/include/block/nvme.h
> +++ b/include/block/nvme.h
> @@ -579,6 +579,7 @@ enum NvmeIoCommands {
> NVME_CMD_COMPARE = 0x05,
> NVME_CMD_WRITE_ZEROES = 0x08,
> NVME_CMD_DSM = 0x09,
> + NVME_CMD_COPY = 0x19,
> NVME_CMD_ZONE_MGMT_SEND = 0x79,
> NVME_CMD_ZONE_MGMT_RECV = 0x7a,
> NVME_CMD_ZONE_APPEND = 0x7d,
> @@ -724,6 +725,35 @@ typedef struct QEMU_PACKED NvmeDsmRange {
> uint64_t slba;
> } NvmeDsmRange;
>
> +enum {
> + NVME_COPY_FORMAT_0 = 0x0,
> +};
> +
> +typedef struct NvmeCopyCmd {
> + uint8_t opcode;
> + uint8_t flags;
> + uint16_t cid;
> + uint32_t nsid;
> + uint32_t rsvd2[4];
> + NvmeCmdDptr dptr;
> + uint64_t sdlba;
> + uint32_t cdw12;
> + uint32_t cdw13;
Can we find better names for the fields within cdw's 12 and 13?
Something like:
uint8_t nr;
uint8_t control[3];
uint16_t rsvd13;
uint16_t dspec;