Commit a410fb44 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

nvme: introduce function to get nguid



Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Change-Id: Ida07eca2e3cbc390d8ee481f63b20f5715a53631
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8626


Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent b8b1f192
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -2639,6 +2639,15 @@ enum spdk_nvme_dealloc_logical_block_read_value spdk_nvme_ns_get_dealloc_logical
 */
uint32_t spdk_nvme_ns_get_optimal_io_boundary(struct spdk_nvme_ns *ns);

/**
 * Get the NGUID for the given namespace.
 *
 * \param ns Namespace to query.
 *
 * \return a pointer to namespace NGUID, or NULL if ns does not have a NGUID.
 */
const uint8_t *spdk_nvme_ns_get_nguid(const struct spdk_nvme_ns *ns);

/**
 * Get the UUID for the given namespace.
 *
+16 −0
Original line number Diff line number Diff line
@@ -406,6 +406,22 @@ nvme_ns_find_id_desc(const struct spdk_nvme_ns *ns, enum spdk_nvme_nidt type, si
	return NULL;
}

const uint8_t *
spdk_nvme_ns_get_nguid(const struct spdk_nvme_ns *ns)
{
	const uint8_t *nguid;
	size_t size;

	nguid = nvme_ns_find_id_desc(ns, SPDK_NVME_NIDT_NGUID, &size);
	if (nguid && size != sizeof(((struct spdk_nvme_ns_data *)0)->nguid)) {
		SPDK_WARNLOG("Invalid NIDT_NGUID descriptor length reported: %zu (expected: %zu)\n",
			     size, sizeof(((struct spdk_nvme_ns_data *)0)->nguid));
		return NULL;
	}

	return nguid;
}

const struct spdk_uuid *
spdk_nvme_ns_get_uuid(const struct spdk_nvme_ns *ns)
{
+1 −0
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@
	spdk_nvme_ns_supports_compare;
	spdk_nvme_ns_get_dealloc_logical_block_read_value;
	spdk_nvme_ns_get_optimal_io_boundary;
	spdk_nvme_ns_get_nguid;
	spdk_nvme_ns_get_uuid;
	spdk_nvme_ns_get_csi;
	spdk_nvme_ns_get_flags;