nvme: add spdk_nvme_zns_ns_get_zone_size_sectors()
Sometimes it is more optimal to get the zone size in number of sectors, instead of in number of bytes. Therefore, add a new spdk_nvme_zns_ns_get_zone_size_sectors() function to get zone size in number of sectors. Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com> Change-Id: I0fe67e00a3d74dd27acfc895ae97448d995b89a3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6416 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
8f5b48f8fd
commit
9a800c38f5
@ -60,6 +60,18 @@ extern "C" {
|
||||
*/
|
||||
const struct spdk_nvme_zns_ns_data *spdk_nvme_zns_ns_get_data(struct spdk_nvme_ns *ns);
|
||||
|
||||
/**
|
||||
* Get the zone size, in number of sectors, of the given namespace.
|
||||
*
|
||||
* This function is thread safe and can be called at any point while the controller
|
||||
* is attached to the SPDK NVMe driver.
|
||||
*
|
||||
* \param ns Namespace to query.
|
||||
*
|
||||
* \return the zone size of the given namespace in number of sectors.
|
||||
*/
|
||||
uint64_t spdk_nvme_zns_ns_get_zone_size_sectors(struct spdk_nvme_ns *ns);
|
||||
|
||||
/**
|
||||
* Get the zone size, in bytes, of the given namespace.
|
||||
*
|
||||
|
@ -40,12 +40,18 @@ spdk_nvme_zns_ns_get_data(struct spdk_nvme_ns *ns)
|
||||
}
|
||||
|
||||
uint64_t
|
||||
spdk_nvme_zns_ns_get_zone_size(struct spdk_nvme_ns *ns)
|
||||
spdk_nvme_zns_ns_get_zone_size_sectors(struct spdk_nvme_ns *ns)
|
||||
{
|
||||
const struct spdk_nvme_zns_ns_data *nsdata_zns = spdk_nvme_zns_ns_get_data(ns);
|
||||
const struct spdk_nvme_ns_data *nsdata = spdk_nvme_ns_get_data(ns);
|
||||
|
||||
return nsdata_zns->lbafe[nsdata->flbas.format].zsze * spdk_nvme_ns_get_sector_size(ns);
|
||||
return nsdata_zns->lbafe[nsdata->flbas.format].zsze;
|
||||
}
|
||||
|
||||
uint64_t
|
||||
spdk_nvme_zns_ns_get_zone_size(struct spdk_nvme_ns *ns)
|
||||
{
|
||||
return spdk_nvme_zns_ns_get_zone_size_sectors(ns) * spdk_nvme_ns_get_sector_size(ns);
|
||||
}
|
||||
|
||||
uint64_t
|
||||
|
@ -168,6 +168,7 @@
|
||||
|
||||
# public functions from nvme_zns.h
|
||||
spdk_nvme_zns_ns_get_data;
|
||||
spdk_nvme_zns_ns_get_zone_size_sectors;
|
||||
spdk_nvme_zns_ns_get_zone_size;
|
||||
spdk_nvme_zns_ns_get_num_zones;
|
||||
spdk_nvme_zns_ctrlr_get_data;
|
||||
|
Loading…
Reference in New Issue
Block a user