]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
types: Define FLBAS MASK and SHIFT to use NVME_GET
authorTokunori Ikegami <ikegami.t@gmail.com>
Sat, 17 Jun 2023 01:24:56 +0000 (10:24 +0900)
committerDaniel Wagner <wagi@monom.org>
Fri, 22 Sep 2023 08:18:14 +0000 (10:18 +0200)
Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
src/nvme/types.h
src/nvme/util.h

index 3b2ebe68c02d7271e624fc2f101e48c649374985..96c6a6dfed169274572e06b45635f69b3fc5acbe 100644 (file)
@@ -611,6 +611,19 @@ static const __u64 NVME_PMRMSC_CBA_MASK = 0xfffffffffffffull;
 #define NVME_PMRMSC_CMSE(pmrmsc)       NVME_GET(pmrmsc, PMRMSC_CMSE)
 #define NVME_PMRMSC_CBA(pmrmsc)                NVME_GET(pmrmsc, PMRMSC_CBA)
 
+enum nvme_flbas {
+       NVME_FLBAS_LOWER_SHIFT          = 0,
+       NVME_FLBAS_META_EXT_SHIFT       = 4,
+       NVME_FLBAS_HIGHER_SHIFT         = 5,
+       NVME_FLBAS_LOWER_MASK           = 0xf,
+       NVME_FLBAS_META_EXT_MASK        = 0x1,
+       NVME_FLBAS_HIGHER_MASK          = 0x3,
+};
+
+#define NVME_FLBAS_LOWER(flbas)                NVME_GET(flbas, FLBAS_LOWER)
+#define NVME_FLBAS_META_EXT(flbas)     NVME_GET(flbas, FLBAS_META_EXT)
+#define NVME_FLBAS_HIGHER(flbas)       NVME_GET(flbas, FLBAS_HIGHER)
+
 /**
  * enum nvme_psd_flags - Possible flag values in nvme power state descriptor
  * @NVME_PSD_FLAGS_MXPS: Indicates the scale for the Maximum Power
index 0739cf2fb9629a0ac883aee6556dedfab36eccdd..efdf9757b978c12a325aba56b249eeaac1db3391 100644 (file)
@@ -449,8 +449,8 @@ static inline void nvme_feature_decode_namespace_write_protect(__u32 value,
 
 static inline void nvme_id_ns_flbas_to_lbaf_inuse(__u8 flbas, __u8 *lbaf_inuse)
 {
-       *lbaf_inuse = (((flbas & NVME_NS_FLBAS_HIGHER_MASK) >> 1) |
-                       (flbas & NVME_NS_FLBAS_LOWER_MASK));
+       *lbaf_inuse = ((NVME_FLBAS_HIGHER(flbas) >> 1) |
+                       NVME_FLBAS_LOWER(flbas));
 }
 
 struct nvme_root;