Hi everyone, I'm Sam Li, working on the Outreachy project which is to add zoned device support to QEMU's virtio-blk emulation.
For the first goal, adding QEMU block layer APIs resembling Linux ZBD ioctls, I think the naive approach would be to introduce a new stable struct zbd_zone descriptor for the library function interface. More specifically, what I'd like to add to the BlockDriver struct are: 1. zbd_info as zone block device information: includes numbers of zones, size of logical blocks, and physical blocks. 2. zbd_zone_type and zbd_zone_state 3. zbd_dev_model: host-managed zbd, host-aware zbd With those basic structs, we can start to implement new functions as bdrv*() APIs for BLOCK*ZONE ioctls. I'll start to finish this task based on the above description. If there is any problem or something I may miss in the design, please let me know. Best regards, Sam