From: Klaus Jensen <k.jen...@samsung.com> Add some get/set helpers for zone attributes.
Signed-off-by: Klaus Jensen <k.jen...@samsung.com> --- hw/nvme/ctrl.c | 4 ++-- include/block/nvme.h | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 489d586ab9d7..7ac6ec50a0d1 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -295,7 +295,7 @@ static void nvme_assign_zone_state(NvmeNamespace *ns, NvmeZone *zone, case NVME_ZONE_STATE_READ_ONLY: break; default: - zone->d.za = 0; + NVME_ZA_CLEAR_ALL(zone->d.za); } } @@ -3356,7 +3356,7 @@ static uint16_t nvme_set_zd_ext(NvmeNamespace *ns, NvmeZone *zone) return status; } nvme_aor_inc_active(ns); - zone->d.za |= NVME_ZA_ZD_EXT_VALID; + NVME_ZA_SET(zone->d.za, NVME_ZA_ZD_EXT_VALID); nvme_assign_zone_state(ns, zone, NVME_ZONE_STATE_CLOSED); return NVME_SUCCESS; } diff --git a/include/block/nvme.h b/include/block/nvme.h index 2ee227760265..2b8b906466ab 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -1407,6 +1407,10 @@ enum NvmeZoneAttr { NVME_ZA_ZD_EXT_VALID = 1 << 7, }; +#define NVME_ZA_SET(za, attrs) ((za) |= (attrs)) +#define NVME_ZA_CLEAR(za, attrs) ((za) &= ~(attrs)) +#define NVME_ZA_CLEAR_ALL(za) ((za) = 0x0) + typedef struct QEMU_PACKED NvmeZoneReportHeader { uint64_t nr_zones; uint8_t rsvd[56]; -- 2.34.0