From: Changqi Lu <luchangqi.123@bytedance.com>
To: qemu-block@nongnu.org, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, stefanha@redhat.com,
fam@euphon.net, ronniesahlberg@gmail.com, pbonzini@redhat.com,
pl@dlhnet.de, kbusch@kernel.org, its@irrelevant.dk,
foss@defmacro.it, philmd@linaro.org,
Changqi Lu <luchangqi.123@bytedance.com>,
zhenwei pi <pizhenwei@bytedance.com>
Subject: [PATCH 6/9] block/nvme: add reservation command protocol constants
Date: Wed, 8 May 2024 17:36:26 +0800 [thread overview]
Message-ID: <20240508093629.441057-7-luchangqi.123@bytedance.com> (raw)
In-Reply-To: <20240508093629.441057-1-luchangqi.123@bytedance.com>
Add constants for the NVMe persistent command protocol.
The constants include the reservation command opcode and
reservation type values defined in section 7 of the NVMe
2.0 specification.
Signed-off-by: Changqi Lu <luchangqi.123@bytedance.com>
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
---
include/block/nvme.h | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/include/block/nvme.h b/include/block/nvme.h
index bb231d0b9a..3409fba762 100644
--- a/include/block/nvme.h
+++ b/include/block/nvme.h
@@ -633,6 +633,10 @@ enum NvmeIoCommands {
NVME_CMD_WRITE_ZEROES = 0x08,
NVME_CMD_DSM = 0x09,
NVME_CMD_VERIFY = 0x0c,
+ NVME_CMD_RESV_REGISTER = 0x0d,
+ NVME_CMD_RESV_REPORT = 0x0e,
+ NVME_CMD_RESV_ACQUIRE = 0x11,
+ NVME_CMD_RESV_RELEASE = 0x15,
NVME_CMD_IO_MGMT_RECV = 0x12,
NVME_CMD_COPY = 0x19,
NVME_CMD_IO_MGMT_SEND = 0x1d,
@@ -641,6 +645,32 @@ enum NvmeIoCommands {
NVME_CMD_ZONE_APPEND = 0x7d,
};
+typedef enum {
+ NVME_RESV_REGISTER_ACTION_REGISTER = 0x00,
+ NVME_RESV_REGISTER_ACTION_UNREGISTER = 0x01,
+ NVME_RESV_REGISTER_ACTION_REPLACE = 0x02,
+} NVME_RESV_REGISTER_ACTION;
+
+typedef enum {
+ NVME_RESV_RELEASE_ACTION_RELEASE = 0x00,
+ NVME_RESV_RELEASE_ACTION_CLEAR = 0x01,
+} NVME_RESV_RELEASE_ACTION;
+
+typedef enum {
+ NVME_RESV_ACQUIRE_ACTION_ACQUIRE = 0x00,
+ NVME_RESV_ACQUIRE_ACTION_PREEMPT = 0x01,
+ NVME_RESV_ACQUIRE_ACTION_PREEMPT_AND_ABORT = 0x02,
+} NVME_RESV_ACQUIRE_ACTION;
+
+typedef enum {
+ NVME_RESV_WRITE_EXCLUSIVE = 0x01,
+ NVME_RESV_EXCLUSIVE_ACCESS = 0x02,
+ NVME_RESV_WRITE_EXCLUSIVE_REGS_ONLY = 0x03,
+ NVME_RESV_EXCLUSIVE_ACCESS_REGS_ONLY = 0x04,
+ NVME_RESV_WRITE_EXCLUSIVE_ALL_REGS = 0x05,
+ NVME_RESV_EXCLUSIVE_ACCESS_ALL_REGS = 0x06,
+} NVMEResvType;
+
typedef struct QEMU_PACKED NvmeDeleteQ {
uint8_t opcode;
uint8_t flags;
--
2.20.1
next prev parent reply other threads:[~2024-05-08 13:14 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-08 9:36 [PATCH 0/9] Support persistent reservation operations Changqi Lu
2024-05-08 9:36 ` [PATCH 1/9] block: add persistent reservation in/out api Changqi Lu
2024-05-09 18:22 ` Stefan Hajnoczi
2024-05-10 2:37 ` zhenwei pi
2024-05-08 9:36 ` [PATCH 2/9] block/raw: add persistent reservation in/out driver Changqi Lu
2024-05-09 18:23 ` Stefan Hajnoczi
2024-05-08 9:36 ` [PATCH 3/9] scsi/constant: add persistent reservation in/out protocol constants Changqi Lu
2024-05-09 18:28 ` Stefan Hajnoczi
2024-05-08 9:36 ` [PATCH 4/9] scsi/util: add helper functions for persistent reservation types conversion Changqi Lu
2024-05-09 18:28 ` Stefan Hajnoczi
2024-05-08 9:36 ` [PATCH 5/9] hw/scsi: add persistent reservation in/out api for scsi device Changqi Lu
2024-05-09 18:45 ` Stefan Hajnoczi
2024-05-09 19:09 ` Stefan Hajnoczi
2024-05-08 9:36 ` Changqi Lu [this message]
2024-05-09 18:48 ` [PATCH 6/9] block/nvme: add reservation command protocol constants Stefan Hajnoczi
2024-05-08 9:36 ` [PATCH 7/9] hw/nvme: add helper functions for converting reservation types Changqi Lu
2024-05-09 18:48 ` Stefan Hajnoczi
2024-05-08 9:36 ` [PATCH 8/9] hw/nvme: add reservation protocal command Changqi Lu
2024-05-08 10:41 ` Klaus Jensen
2024-05-08 9:36 ` [PATCH 9/9] block/iscsi: add persistent reservation in/out driver Changqi Lu
2024-05-09 19:08 ` [PATCH 0/9] Support persistent reservation operations Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240508093629.441057-7-luchangqi.123@bytedance.com \
--to=luchangqi.123@bytedance.com \
--cc=fam@euphon.net \
--cc=foss@defmacro.it \
--cc=hreitz@redhat.com \
--cc=its@irrelevant.dk \
--cc=kbusch@kernel.org \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=pizhenwei@bytedance.com \
--cc=pl@dlhnet.de \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=ronniesahlberg@gmail.com \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).