diff mbox series

[2/3] hw/block/nvme: add id ns flbas enum

Message ID 20210421125646.13058-1-anaidu.gollu@samsung.com
State New
Headers show
Series [1/3] hw/block/nvme: fix lbaf formats initialization | expand

Commit Message

Gollu Appalanaidu April 21, 2021, 12:56 p.m. UTC
Add the Identify Namespace FLBAS related enums and remove
NVME_ID_NS_FLBAS_EXTENDEND macro its being used in only
one place and converted into enum.

Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
---
 hw/block/nvme-ns.c   | 2 +-
 hw/block/nvme-ns.h   | 2 +-
 include/block/nvme.h | 5 ++++-
 3 files changed, 6 insertions(+), 3 deletions(-)

Comments

Klaus Jensen April 22, 2021, 6:49 a.m. UTC | #1
On Apr 21 18:26, Gollu Appalanaidu wrote:
>Add the Identify Namespace FLBAS related enums and remove
>NVME_ID_NS_FLBAS_EXTENDEND macro its being used in only
>one place and converted into enum.
>
>Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
>---
> hw/block/nvme-ns.c   | 2 +-
> hw/block/nvme-ns.h   | 2 +-
> include/block/nvme.h | 5 ++++-
> 3 files changed, 6 insertions(+), 3 deletions(-)
>
>diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
>index ae56142fcd..9065a7ae99 100644
>--- a/hw/block/nvme-ns.c
>+++ b/hw/block/nvme-ns.c
>@@ -88,7 +88,7 @@ static int nvme_ns_init(NvmeNamespace *ns, Error **errp)
>     id_ns->mc = 0x3;
>
>     if (ms && ns->params.mset) {
>-        id_ns->flbas |= 0x10;
>+        id_ns->flbas |= NVME_ID_NS_FLBAS_EXTENDEND;
>     }
>
>     id_ns->dpc = 0x1f;
>diff --git a/hw/block/nvme-ns.h b/hw/block/nvme-ns.h
>index fb0a41f912..5aa36cd1d2 100644
>--- a/hw/block/nvme-ns.h
>+++ b/hw/block/nvme-ns.h
>@@ -134,7 +134,7 @@ static inline size_t nvme_m2b(NvmeNamespace *ns, uint64_t lba)
>
> static inline bool nvme_ns_ext(NvmeNamespace *ns)
> {
>-    return !!NVME_ID_NS_FLBAS_EXTENDED(ns->id_ns.flbas);
>+    return ns->id_ns.flbas & NVME_ID_NS_FLBAS_EXTENDEND;
> }
>
> /* calculate the number of LBAs that the namespace can accomodate */
>diff --git a/include/block/nvme.h b/include/block/nvme.h
>index 4ac926fbc6..1d61030756 100644
>--- a/include/block/nvme.h
>+++ b/include/block/nvme.h
>@@ -1321,7 +1321,6 @@ typedef struct QEMU_PACKED NvmeIdNsZoned {
>
> #define NVME_ID_NS_NSFEAT_THIN(nsfeat)      ((nsfeat & 0x1))
> #define NVME_ID_NS_NSFEAT_DULBE(nsfeat)     ((nsfeat >> 2) & 0x1)
>-#define NVME_ID_NS_FLBAS_EXTENDED(flbas)    ((flbas >> 4) & 0x1)
> #define NVME_ID_NS_FLBAS_INDEX(flbas)       ((flbas & 0xf))
> #define NVME_ID_NS_MC_SEPARATE(mc)          ((mc >> 1) & 0x1)
> #define NVME_ID_NS_MC_EXTENDED(mc)          ((mc & 0x1))
>@@ -1341,6 +1340,10 @@ enum NvmeIdNsDps {
>     NVME_ID_NS_DPS_FIRST_EIGHT = 8,
> };
>
>+enum NvmeIdNsFlbas {
>+    NVME_ID_NS_FLBAS_EXTENDEND  = 1 << 4,
>+};
>+
> #define NVME_ID_NS_DPS_TYPE(dps) (dps & NVME_ID_NS_DPS_TYPE_MASK)
>
> typedef struct NvmeDifTuple {
>-- 
>2.17.1
>
>

Apart from the misspelling of EXTENDED (I'll fix it up when applied):

Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
diff mbox series

Patch

diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
index ae56142fcd..9065a7ae99 100644
--- a/hw/block/nvme-ns.c
+++ b/hw/block/nvme-ns.c
@@ -88,7 +88,7 @@  static int nvme_ns_init(NvmeNamespace *ns, Error **errp)
     id_ns->mc = 0x3;
 
     if (ms && ns->params.mset) {
-        id_ns->flbas |= 0x10;
+        id_ns->flbas |= NVME_ID_NS_FLBAS_EXTENDEND;
     }
 
     id_ns->dpc = 0x1f;
diff --git a/hw/block/nvme-ns.h b/hw/block/nvme-ns.h
index fb0a41f912..5aa36cd1d2 100644
--- a/hw/block/nvme-ns.h
+++ b/hw/block/nvme-ns.h
@@ -134,7 +134,7 @@  static inline size_t nvme_m2b(NvmeNamespace *ns, uint64_t lba)
 
 static inline bool nvme_ns_ext(NvmeNamespace *ns)
 {
-    return !!NVME_ID_NS_FLBAS_EXTENDED(ns->id_ns.flbas);
+    return ns->id_ns.flbas & NVME_ID_NS_FLBAS_EXTENDEND;
 }
 
 /* calculate the number of LBAs that the namespace can accomodate */
diff --git a/include/block/nvme.h b/include/block/nvme.h
index 4ac926fbc6..1d61030756 100644
--- a/include/block/nvme.h
+++ b/include/block/nvme.h
@@ -1321,7 +1321,6 @@  typedef struct QEMU_PACKED NvmeIdNsZoned {
 
 #define NVME_ID_NS_NSFEAT_THIN(nsfeat)      ((nsfeat & 0x1))
 #define NVME_ID_NS_NSFEAT_DULBE(nsfeat)     ((nsfeat >> 2) & 0x1)
-#define NVME_ID_NS_FLBAS_EXTENDED(flbas)    ((flbas >> 4) & 0x1)
 #define NVME_ID_NS_FLBAS_INDEX(flbas)       ((flbas & 0xf))
 #define NVME_ID_NS_MC_SEPARATE(mc)          ((mc >> 1) & 0x1)
 #define NVME_ID_NS_MC_EXTENDED(mc)          ((mc & 0x1))
@@ -1341,6 +1340,10 @@  enum NvmeIdNsDps {
     NVME_ID_NS_DPS_FIRST_EIGHT = 8,
 };
 
+enum NvmeIdNsFlbas {
+    NVME_ID_NS_FLBAS_EXTENDEND  = 1 << 4,
+};
+
 #define NVME_ID_NS_DPS_TYPE(dps) (dps & NVME_ID_NS_DPS_TYPE_MASK)
 
 typedef struct NvmeDifTuple {