This patch series serve as a supplement to previous zoned emulation support. It introduces a new format driver - zoned driver to enable full emulation of a block device file for a zoned block device on the host.
Each zone of a zoned device makes state transitions following the zone state machine. The zone state machine mainly describes five states, IMPLICIT OPEN, EXPLICIT OPEN, FULL, EMPTY and CLOSED. READ ONLY and OFFLINE states will generally be affected by device internal events. Different operations on zones cause corresponding state changing, which can be found more on the chart of following link. https://zonedstorage.io/docs/introduction/zoned-storage#zone-states-and-state-transitions Zoned devices have a limit on zone resources, which puts constraints on write operations into zones. Sam Li (2): block: add configs for the zoned format driver block: introduce the zoned format driver block/meson.build | 1 + block/zoned.c | 935 +++++++++++++++++++++++++++++++ include/block/block_int-common.h | 7 + qapi/block-core.json | 44 +- 4 files changed, 984 insertions(+), 3 deletions(-) create mode 100644 block/zoned.c -- 2.38.1