aboutsummaryrefslogtreecommitdiff
path: root/sbin/nvmecontrol/ns.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/nvmecontrol/ns.c')
-rw-r--r--sbin/nvmecontrol/ns.c77
1 files changed, 29 insertions, 48 deletions
diff --git a/sbin/nvmecontrol/ns.c b/sbin/nvmecontrol/ns.c
index dd678568d5ca..c538338eb6c3 100644
--- a/sbin/nvmecontrol/ns.c
+++ b/sbin/nvmecontrol/ns.c
@@ -26,7 +26,6 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/ioccom.h>
@@ -334,7 +333,7 @@ static struct identify_options {
static const struct opts identify_opts[] = {
OPT("hex", 'x', arg_none, identify_opt, hex,
- "Print identiy information in hex"),
+ "Print identity information in hex"),
OPT("verbose", 'v', arg_none, identify_opt, verbose,
"More verbosity: print entire identify table"),
OPT("nsid", 'n', arg_uint32, identify_opt, nsid,
@@ -417,8 +416,7 @@ nsactive(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
memset(&pt, 0, sizeof(pt));
@@ -463,8 +461,7 @@ nsallocated(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
memset(&pt, 0, sizeof(pt));
@@ -509,8 +506,7 @@ nscontrollers(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
memset(&pt, 0, sizeof(pt));
@@ -535,7 +531,7 @@ nscontrollers(const struct cmd *f, int argc, char *argv[])
/*
* NS MGMT Command specific status values:
* 0xa = Invalid Format
- * 0x15 = Namespace Insuffience capacity
+ * 0x15 = Namespace Insufficient capacity
* 0x16 = Namespace ID unavailable (number namespaces exceeded)
* 0xb = Thin Provisioning Not supported
*/
@@ -571,8 +567,7 @@ nscreate(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
memset(&nsdata, 0, sizeof(nsdata));
@@ -584,14 +579,12 @@ nscreate(const struct cmd *f, int argc, char *argv[])
/* Default to the first format, whatever it is. */
nsdata.flbas = 0;
if (create_opt.lbaf != NONE) {
- nsdata.flbas |= (create_opt.lbaf &
- NVME_NS_DATA_FLBAS_FORMAT_MASK)
- << NVME_NS_DATA_FLBAS_FORMAT_SHIFT;
+ nsdata.flbas |= NVMEF(NVME_NS_DATA_FLBAS_FORMAT,
+ create_opt.lbaf);
}
if (create_opt.mset != NONE) {
- nsdata.flbas |= (create_opt.mset &
- NVME_NS_DATA_FLBAS_EXTENDED_MASK)
- << NVME_NS_DATA_FLBAS_EXTENDED_SHIFT;
+ nsdata.flbas |= NVMEF(NVME_NS_DATA_FLBAS_EXTENDED,
+ create_opt.mset);
}
}
if (create_opt.dps != NONE) {
@@ -600,22 +593,19 @@ nscreate(const struct cmd *f, int argc, char *argv[])
/* Default to protection disabled. */
nsdata.dps = 0;
if (create_opt.pi != NONE) {
- nsdata.dps |= (create_opt.pi &
- NVME_NS_DATA_DPS_MD_START_MASK)
- << NVME_NS_DATA_DPS_MD_START_SHIFT;
+ nsdata.dps |= NVMEF(NVME_NS_DATA_DPS_MD_START,
+ create_opt.pi);
}
if (create_opt.pil != NONE) {
- nsdata.dps |= (create_opt.pil &
- NVME_NS_DATA_DPS_PIT_MASK)
- << NVME_NS_DATA_DPS_PIT_SHIFT;
+ nsdata.dps |= NVMEF(NVME_NS_DATA_DPS_PIT,
+ create_opt.pil);
}
}
if (create_opt.nmic != NONE) {
nsdata.nmic = create_opt.nmic;
} else {
/* Allow namespaces sharing if Multi-Path I/O is supported. */
- nsdata.nmic = cd.mic ? (NVME_NS_DATA_NMIC_MAY_BE_SHARED_MASK <<
- NVME_NS_DATA_NMIC_MAY_BE_SHARED_SHIFT) : 0;
+ nsdata.nmic = NVMEF(NVME_NS_DATA_NMIC_MAY_BE_SHARED, !!cd.mic);
}
nvme_namespace_data_swapbytes(&nsdata);
@@ -630,8 +620,7 @@ nscreate(const struct cmd *f, int argc, char *argv[])
if (nvme_completion_is_error(&pt.cpl)) {
errx(EX_IOERR, "namespace creation failed: %s",
- get_res_str((pt.cpl.status >> NVME_STATUS_SC_SHIFT) &
- NVME_STATUS_SC_MASK));
+ get_res_str(NVMEV(NVME_STATUS_SC, pt.cpl.status)));
}
printf("namespace %d created\n", pt.cpl.cdw0);
exit(0);
@@ -657,7 +646,7 @@ nsdelete(const struct cmd *f, int argc, char *argv[])
open_dev(path, &fd, 1, 1);
} else if (delete_opt.nsid == NONE - 1) {
close(fd);
- fprintf(stderr, "No NSID specified");
+ fprintf(stderr, "No NSID specified\n");
arg_help(argc, argv, f);
}
if (delete_opt.nsid != NONE - 1)
@@ -667,8 +656,7 @@ nsdelete(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
memset(&pt, 0, sizeof(pt));
@@ -684,8 +672,7 @@ nsdelete(const struct cmd *f, int argc, char *argv[])
if (nvme_completion_is_error(&pt.cpl)) {
errx(EX_IOERR, "namespace deletion failed: %s",
- get_res_str((pt.cpl.status >> NVME_STATUS_SC_SHIFT) &
- NVME_STATUS_SC_MASK));
+ get_res_str(NVMEV(NVME_STATUS_SC, pt.cpl.status)));
}
printf("namespace %d deleted\n", nsid);
exit(0);
@@ -725,7 +712,7 @@ nsattach(const struct cmd *f, int argc, char *argv[])
open_dev(path, &fd, 1, 1);
} else if (attach_opt.nsid == NONE) {
close(fd);
- fprintf(stderr, "No NSID specified");
+ fprintf(stderr, "No NSID specified\n");
arg_help(argc, argv, f);
}
if (attach_opt.nsid != NONE)
@@ -734,8 +721,7 @@ nsattach(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
if (attach_opt.ctrlrid == NONE) {
@@ -771,8 +757,7 @@ nsattach(const struct cmd *f, int argc, char *argv[])
if (nvme_completion_is_error(&pt.cpl)) {
errx(EX_IOERR, "namespace attach failed: %s",
- get_res_str((pt.cpl.status >> NVME_STATUS_SC_SHIFT) &
- NVME_STATUS_SC_MASK));
+ get_res_str(NVMEV(NVME_STATUS_SC, pt.cpl.status)));
}
printf("namespace %d attached\n", nsid);
exit(0);
@@ -797,7 +782,7 @@ nsdetach(const struct cmd *f, int argc, char *argv[])
open_dev(path, &fd, 1, 1);
} else if (detach_opt.nsid == NONE) {
close(fd);
- fprintf(stderr, "No NSID specified");
+ fprintf(stderr, "No NSID specified\n");
arg_help(argc, argv, f);
}
if (detach_opt.nsid != NONE)
@@ -806,8 +791,7 @@ nsdetach(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
if (detach_opt.ctrlrid == NONE) {
@@ -850,8 +834,7 @@ nsdetach(const struct cmd *f, int argc, char *argv[])
if (nvme_completion_is_error(&pt.cpl)) {
errx(EX_IOERR, "namespace detach failed: %s",
- get_res_str((pt.cpl.status >> NVME_STATUS_SC_SHIFT) &
- NVME_STATUS_SC_MASK));
+ get_res_str(NVMEV(NVME_STATUS_SC, pt.cpl.status)));
}
printf("namespace %d detached\n", nsid);
exit(0);
@@ -876,7 +859,7 @@ nsattached(const struct cmd *f, int argc, char *argv[])
open_dev(path, &fd, 1, 1);
} else if (attached_opt.nsid == NONE) {
close(fd);
- fprintf(stderr, "No NSID specified");
+ fprintf(stderr, "No NSID specified\n");
arg_help(argc, argv, f);
}
if (attached_opt.nsid != NONE)
@@ -885,8 +868,7 @@ nsattached(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
memset(&pt, 0, sizeof(pt));
@@ -930,7 +912,7 @@ nsidentify(const struct cmd *f, int argc, char *argv[])
open_dev(path, &fd, 1, 1);
} else if (identify_opt.nsid == NONE) {
close(fd);
- fprintf(stderr, "No NSID specified");
+ fprintf(stderr, "No NSID specified\n");
arg_help(argc, argv, f);
}
if (identify_opt.nsid != NONE)
@@ -939,8 +921,7 @@ nsidentify(const struct cmd *f, int argc, char *argv[])
errx(EX_IOERR, "Identify request failed");
/* Check that controller can execute this command. */
- if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) &
- NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0)
+ if (NVMEV(NVME_CTRLR_DATA_OACS_NSMGMT, cd.oacs) == 0)
errx(EX_UNAVAILABLE, "controller does not support namespace management");
memset(&pt, 0, sizeof(pt));