mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
nvme: add reservation command's defines
This is a preparation patch for NVMeOF target reservation commands implantation. Add the defines of reservation command, such as reservation log and sub operations. Signed-off-by: Guixin Liu <kanie@linux.alibaba.com> Tested-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
parent
43d5d3b417
commit
1900e1a449
@ -2037,4 +2037,72 @@ struct nvme_completion {
|
||||
#define NVME_MINOR(ver) (((ver) >> 8) & 0xff)
|
||||
#define NVME_TERTIARY(ver) ((ver) & 0xff)
|
||||
|
||||
enum {
|
||||
NVME_AEN_RESV_LOG_PAGE_AVALIABLE = 0x00,
|
||||
};
|
||||
|
||||
enum {
|
||||
NVME_PR_LOG_EMPTY_LOG_PAGE = 0x00,
|
||||
NVME_PR_LOG_REGISTRATION_PREEMPTED = 0x01,
|
||||
NVME_PR_LOG_RESERVATION_RELEASED = 0x02,
|
||||
NVME_PR_LOG_RESERVATOPM_PREEMPTED = 0x03,
|
||||
};
|
||||
|
||||
enum {
|
||||
NVME_PR_NOTIFY_BIT_REG_PREEMPTED = 1,
|
||||
NVME_PR_NOTIFY_BIT_RESV_RELEASED = 2,
|
||||
NVME_PR_NOTIFY_BIT_RESV_PREEMPTED = 3,
|
||||
};
|
||||
|
||||
struct nvme_pr_log {
|
||||
__le64 count;
|
||||
__u8 type;
|
||||
__u8 nr_pages;
|
||||
__u8 rsvd1[2];
|
||||
__le32 nsid;
|
||||
__u8 rsvd2[48];
|
||||
};
|
||||
|
||||
struct nvmet_pr_register_data {
|
||||
__le64 crkey;
|
||||
__le64 nrkey;
|
||||
};
|
||||
|
||||
struct nvmet_pr_acquire_data {
|
||||
__le64 crkey;
|
||||
__le64 prkey;
|
||||
};
|
||||
|
||||
struct nvmet_pr_release_data {
|
||||
__le64 crkey;
|
||||
};
|
||||
|
||||
enum nvme_pr_capabilities {
|
||||
NVME_PR_SUPPORT_PTPL = 1,
|
||||
NVME_PR_SUPPORT_WRITE_EXCLUSIVE = 1 << 1,
|
||||
NVME_PR_SUPPORT_EXCLUSIVE_ACCESS = 1 << 2,
|
||||
NVME_PR_SUPPORT_WRITE_EXCLUSIVE_REG_ONLY = 1 << 3,
|
||||
NVME_PR_SUPPORT_EXCLUSIVE_ACCESS_REG_ONLY = 1 << 4,
|
||||
NVME_PR_SUPPORT_WRITE_EXCLUSIVE_ALL_REGS = 1 << 5,
|
||||
NVME_PR_SUPPORT_EXCLUSIVE_ACCESS_ALL_REGS = 1 << 6,
|
||||
NVME_PR_SUPPORT_IEKEY_VER_1_3_DEF = 1 << 7,
|
||||
};
|
||||
|
||||
enum nvme_pr_register_action {
|
||||
NVME_PR_REGISTER_ACT_REG = 0,
|
||||
NVME_PR_REGISTER_ACT_UNREG = 1,
|
||||
NVME_PR_REGISTER_ACT_REPLACE = 1 << 1,
|
||||
};
|
||||
|
||||
enum nvme_pr_acquire_action {
|
||||
NVME_PR_ACQUIRE_ACT_ACQUIRE = 0,
|
||||
NVME_PR_ACQUIRE_ACT_PREEMPT = 1,
|
||||
NVME_PR_ACQUIRE_ACT_PREEMPT_AND_ABORT = 1 << 1,
|
||||
};
|
||||
|
||||
enum nvme_pr_release_action {
|
||||
NVME_PR_RELEASE_ACT_RELEASE = 0,
|
||||
NVME_PR_RELEASE_ACT_CLEAR = 1,
|
||||
};
|
||||
|
||||
#endif /* _LINUX_NVME_H */
|
||||
|
Loading…
Reference in New Issue
Block a user