.\" Title: nvme-verify
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 07/07/2021
+.\" Date: 07/08/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-VERIFY" "1" "07/07/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-VERIFY" "1" "07/08/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
[\-\-ref\-tag=<reftag> | \-r <reftag>]
[\-\-app\-tag\-mask=<appmask> | \-m <appmask>]
[\-\-app\-tag=<apptag> | \-a <apptag>]
+ [\-\-storage\-tag<storage\-tag> | \-S <storage\-tag>]
.fi
.SH "DESCRIPTION"
.sp
.RS 4
Optional application tag when used with protection information\&.
.RE
+.PP
+\-\-storage\-tag=<storage\-tag>, \-S <storage\-tag>
+.RS 4
+Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits\&.
+.RE
.SH "EXAMPLES"
.sp
No examples yet\&.
[--prinfo=<prinfo> | -p <prinfo>]\r
[--ref-tag=<reftag> | -r <reftag>]\r
[--app-tag-mask=<appmask> | -m <appmask>]\r
- [--app-tag=<apptag> | -a <apptag>]</pre>\r
+ [--app-tag=<apptag> | -a <apptag>]\r
+ [--storage-tag<storage-tag> | -S <storage-tag>]</pre>\r
<div class="attribution">\r
</div></div>\r
</div>\r
Optional application tag when used with protection information.\r
</p>\r
</dd>\r
+<dt class="hdlist1">\r
+--storage-tag=<storage-tag>\r
+</dt>\r
+<dt class="hdlist1">\r
+-S <storage-tag>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical\r
+ Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.\r
+</p>\r
+</dd>\r
</dl></div>\r
</div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
Last updated\r
- 2021-07-07 01:41:43 IST\r
+ 2021-07-07 23:04:31 IST\r
</div>\r
</div>\r
</body>\r
[--ref-tag=<reftag> | -r <reftag>]
[--app-tag-mask=<appmask> | -m <appmask>]
[--app-tag=<apptag> | -a <apptag>]
+ [--storage-tag<storage-tag> | -S <storage-tag>]
DESCRIPTION
-----------
-a <apptag>::
Optional application tag when used with protection information.
+--storage-tag=<storage-tag>::
+-S <storage-tag>::
+ Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical
+ Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.
+
EXAMPLES
--------
No examples yet.
'\" t
.\" Title: nvme-zeroes
-.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
-.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 10/20/2020
+.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 07/08/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-ZEROES" "1" "10/20/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-ZEROES" "1" "07/08/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
[\-\-limited\-retry | \-l]
[\-\-force\-unit\-access | \-f]
[\-\-namespace\-id=<nsid> | \-n <nsid>]
+ [\-\-storage\-tag<storage\-tag> | \-S <storage\-tag>]
.fi
.SH "DESCRIPTION"
.sp
.RS 4
Namespace ID use in the command\&.
.RE
-.sp
-EXAMPLES EXAMPLES
-.sp
-.if n \{\
+.PP
+\-\-storage\-tag=<storage\-tag>, \-n <storage\-tag>
.RS 4
-.\}
-.nf
-No examples yet\&.
-
-NVME
-.fi
-.if n \{\
+Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits\&.
.RE
-.\}
+.SH "EXAMPLES"
+.sp
+No examples yet\&.
+.SH "NVME"
.sp
Part of the nvme\-user suite
[--deac | -d]\r
[--limited-retry | -l]\r
[--force-unit-access | -f]\r
- [--namespace-id=<nsid> | -n <nsid>]</pre>\r
+ [--namespace-id=<nsid> | -n <nsid>]\r
+ [--storage-tag<storage-tag> | -S <storage-tag>]</pre>\r
<div class="attribution">\r
</div></div>\r
</div>\r
Namespace ID use in the command.\r
</p>\r
</dd>\r
+<dt class="hdlist1">\r
+--storage-tag=<storage-tag>\r
+</dt>\r
+<dt class="hdlist1">\r
+-n <storage-tag>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical\r
+ Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.\r
+</p>\r
+</dd>\r
</dl></div>\r
-<div class="paragraph"><p>EXAMPLES\r
-EXAMPLES</p></div>\r
-<div class="listingblock">\r
-<div class="content">\r
-<pre><code>No examples yet.\r
-\r
-NVME</code></pre>\r
-</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_examples">EXAMPLES</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>No examples yet.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_nvme">NVME</h2>\r
+<div class="sectionbody">\r
<div class="paragraph"><p>Part of the nvme-user suite</p></div>\r
</div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
Last updated\r
- 2019-09-18 00:00:58 JST\r
+ 2021-07-07 01:54:21 IST\r
</div>\r
</div>\r
</body>\r
[--limited-retry | -l]
[--force-unit-access | -f]
[--namespace-id=<nsid> | -n <nsid>]
+ [--storage-tag<storage-tag> | -S <storage-tag>]
DESCRIPTION
-----------
-n <nsid>::
Namespace ID use in the command.
-EXAMPLES
+--storage-tag=<storage-tag>::
+-n <storage-tag>::
+ Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical
+ Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.
+
EXAMPLES
--------
No examples yet.
const char *ref_tag = "reference tag (for end to end PI)";
const char *app_tag_mask = "app tag mask (for end to end PI)";
const char *app_tag = "app tag (for end to end PI)";
+ const char *storage_tag = "storage tag, CDW2 and CDW3 (00:47) bits "\
+ "(for end to end PI)";
const char *deac = "Set DEAC bit, requesting controller to deallocate specified logical blocks";
struct config {
__u16 app_tag_mask;
__u16 block_count;
__u8 prinfo;
+ __u64 storage_tag;
int deac;
int limited_retry;
int force_unit_access;
.ref_tag = 0,
.app_tag_mask = 0,
.app_tag = 0,
+ .storage_tag = 0,
};
OPT_ARGS(opts) = {
OPT_UINT("ref-tag", 'r', &cfg.ref_tag, ref_tag),
OPT_SHRT("app-tag-mask", 'm', &cfg.app_tag_mask, app_tag_mask),
OPT_SHRT("app-tag", 'a', &cfg.app_tag, app_tag),
+ OPT_SUFFIX("storage-tag", 'S', &cfg.storage_tag, storage_tag),
OPT_END()
};
}
err = nvme_write_zeros(fd, cfg.namespace_id, cfg.start_block, cfg.block_count,
- control, cfg.ref_tag, cfg.app_tag, cfg.app_tag_mask);
+ control, cfg.ref_tag, cfg.app_tag, cfg.app_tag_mask, cfg.storage_tag);
if (err < 0)
perror("write-zeroes");
else if (err != 0)
const char *ref_tag = "reference tag (for end to end PI)";
const char *app_tag_mask = "app tag mask (for end to end PI)";
const char *app_tag = "app tag (for end to end PI)";
+ const char *storage_tag = "storage tag, CDW2 and CDW3 (00:47) bits "\
+ "(for end to end PI)";
struct config {
__u64 start_block;
__u16 app_tag_mask;
__u16 block_count;
__u8 prinfo;
+ __u64 storage_tag;
int limited_retry;
int force_unit_access;
};
.app_tag_mask = 0,
.limited_retry = 0,
.force_unit_access = 0,
+ .storage_tag = 0,
};
OPT_ARGS(opts) = {
OPT_UINT("ref-tag", 'r', &cfg.ref_tag, ref_tag),
OPT_SHRT("app-tag", 'a', &cfg.app_tag, app_tag),
OPT_SHRT("app-tag-mask", 'm', &cfg.app_tag_mask, app_tag_mask),
+ OPT_SUFFIX("storage-tag", 'S', &cfg.storage_tag, storage_tag),
OPT_END()
};
}
err = nvme_verify(fd, cfg.namespace_id, cfg.start_block, cfg.block_count,
- control, cfg.ref_tag, cfg.app_tag, cfg.app_tag_mask);
+ control, cfg.ref_tag, cfg.app_tag, cfg.app_tag_mask, cfg.storage_tag);
if (err < 0)
perror("verify");
else if (err != 0)