]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
Add 1.2 features to identify and show results
authorKeith Busch <keith.busch@intel.com>
Thu, 5 Feb 2015 22:16:07 +0000 (15:16 -0700)
committerKeith Busch <keith.busch@intel.com>
Thu, 5 Feb 2015 22:16:07 +0000 (15:16 -0700)
Signed-off-by: Keith Busch <keith.busch@intel.com>
linux/nvme.h
nvme.c

index 97364836504b507e1e591b484a41d4b320a13fbc..9071f6bca663214c03433f699dfab879ff872ddc 100644 (file)
@@ -67,11 +67,14 @@ struct nvme_id_ctrl {
        char                    fr[8];
        __u8                    rab;
        __u8                    ieee[3];
-       __u8                    mic;
+       __u8                    cmic;
        __u8                    mdts;
        __u16                   cntlid;
-       __u32                   ver;
-       __u8                    rsvd84[172];
+       __le32                  ver;
+       __le32                  rtd3r;
+       __le32                  rtd3e;
+       __le32                  oaes;
+       __u8                    rsvd96[160];
        __le16                  oacs;
        __u8                    acl;
        __u8                    aerl;
@@ -83,7 +86,13 @@ struct nvme_id_ctrl {
        __u8                    apsta;
        __le16                  wctemp;
        __le16                  cctemp;
-       __u8                    rsvd270[242];
+       __le16                  mtfa;
+       __le32                  hmpre;
+       __le32                  hmmin;
+       __u8                    tnvmcap[16];
+       __u8                    unvmcap[16];
+       __le32                  rpmbs;
+       __u8                    rsvd316[196];
        __u8                    sqes;
        __u8                    cqes;
        __u8                    rsvd514[2];
@@ -134,7 +143,13 @@ struct nvme_id_ns {
        __le16                  nawun;
        __le16                  nawupf;
        __le16                  nacwu;
-       __u8                    rsvd40[80];
+       __le16                  nabsn;
+       __le16                  nabo;
+       __le16                  nabspf;
+       __u16                   rsvd46;
+       __u8                    nvmcap[16];
+       __u8                    rsvd64[40];
+       __u8                    nguid[16];
        __u8                    eui64[8];
        struct nvme_lbaf        lbaf[16];
        __u8                    rsvd192[192];
@@ -586,6 +601,8 @@ struct nvme_bar {
 
 #define nvme_admin_cmd nvme_passthru_cmd
 
+#define NVME_VS(major, minor) (((major) << 16) | ((minor) << 8))
+
 #define NVME_IOCTL_ID          _IO('N', 0x40)
 #define NVME_IOCTL_ADMIN_CMD   _IOWR('N', 0x41, struct nvme_admin_cmd)
 #define NVME_IOCTL_SUBMIT_IO   _IOW('N', 0x42, struct nvme_user_io)
diff --git a/nvme.c b/nvme.c
index ddfc9b0b0350695939c6fe08326a40bdebecb9e2..d39aae4b856883538ec436d34935041c74cd4baa 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -436,8 +436,12 @@ static void show_nvme_id_ctrl(struct nvme_id_ctrl *ctrl, int vs)
        printf("rab     : %d\n", ctrl->rab);
        printf("ieee    : %02x%02x%02x\n",
                ctrl->ieee[0], ctrl->ieee[1], ctrl->ieee[2]);
-       printf("mic     : %#x\n", ctrl->mic);
+       printf("cmic    : %#x\n", ctrl->cmic);
        printf("mdts    : %d\n", ctrl->mdts);
+       printf("cntlid  : %x\n", ctrl->cntlid);
+       printf("ver     : %x\n", ctrl->ver);
+       printf("rtd3r   : %x\n", ctrl->rtd3r);
+       printf("rtd3e   : %x\n", ctrl->rtd3e);
        printf("oacs    : %#x\n", ctrl->oacs);
        printf("acl     : %d\n", ctrl->acl);
        printf("aerl    : %d\n", ctrl->aerl);
@@ -445,10 +449,15 @@ static void show_nvme_id_ctrl(struct nvme_id_ctrl *ctrl, int vs)
        printf("lpa     : %#x\n", ctrl->lpa);
        printf("elpe    : %d\n", ctrl->elpe);
        printf("npss    : %d\n", ctrl->npss);
-       printf("avscc   : %d\n", ctrl->avscc);
-       printf("apsta   : %d\n", ctrl->apsta);
+       printf("avscc   : %#x\n", ctrl->avscc);
+       printf("apsta   : %#x\n", ctrl->apsta);
        printf("wctemp  : %d\n", ctrl->wctemp);
        printf("cctemp  : %d\n", ctrl->cctemp);
+       printf("mtfa    : %d\n", ctrl->mtfa);
+       printf("hmmin   : %d\n", ctrl->hmmin);
+       printf("tnvmcap : %.0Lf\n", int128_to_double(ctrl->tnvmcap));
+       printf("unvmcap : %.0Lf\n", int128_to_double(ctrl->unvmcap));
+       printf("rpmbs   : %#x\n", ctrl->rpmbs);
        printf("sqes    : %#x\n", ctrl->sqes);
        printf("cqes    : %#x\n", ctrl->cqes);
        printf("nn      : %d\n", ctrl->nn);
@@ -511,8 +520,19 @@ static void show_nvme_id_ns(struct nvme_id_ns *ns, int id, int vs)
        printf("nmic    : %#x\n", ns->nmic);
        printf("rescap  : %#x\n", ns->rescap);
        printf("fpi     : %#x\n", ns->fpi);
-       printf("nawun   : %#x\n", ns->nawun);
-       printf("nawupf  : %#x\n", ns->nawupf);
+       printf("nawun   : %d\n", ns->nawun);
+       printf("nawupf  : %d\n", ns->nawupf);
+       printf("nacwu   : %d\n", ns->nacwu);
+       printf("nabsn   : %d\n", ns->nabsn);
+       printf("nabo    : %d\n", ns->nabo);
+       printf("nabspf  : %d\n", ns->nabspf);
+       printf("nvmcap  : %.0Lf\n", int128_to_double(ns->nvmcap));
+
+       printf("nguid   : ");
+       for (i = 0; i < 16; i++)
+               printf("%02x", ns->nguid[i]);
+       printf("\n");
+
        printf("eui64   : ");
        for (i = 0; i < 8; i++)
                printf("%02x", ns->eui64[i]);