mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-29 13:23:54 -06:00
block/block-common: add zoned device structs
Signed-off-by: Sam Li <faithilikerun@gmail.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com> Acked-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 20230508045533.175575-2-faithilikerun@gmail.com Message-id: 20230324090605.28361-2-faithilikerun@gmail.com [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé <philmd@linaro.org>. --Stefan] Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
8844bb8d89
commit
72ca800ec5
1 changed files with 43 additions and 0 deletions
|
@ -75,6 +75,49 @@ typedef struct BlockDriver BlockDriver;
|
||||||
typedef struct BdrvChild BdrvChild;
|
typedef struct BdrvChild BdrvChild;
|
||||||
typedef struct BdrvChildClass BdrvChildClass;
|
typedef struct BdrvChildClass BdrvChildClass;
|
||||||
|
|
||||||
|
typedef enum BlockZoneOp {
|
||||||
|
BLK_ZO_OPEN,
|
||||||
|
BLK_ZO_CLOSE,
|
||||||
|
BLK_ZO_FINISH,
|
||||||
|
BLK_ZO_RESET,
|
||||||
|
} BlockZoneOp;
|
||||||
|
|
||||||
|
typedef enum BlockZoneModel {
|
||||||
|
BLK_Z_NONE = 0x0, /* Regular block device */
|
||||||
|
BLK_Z_HM = 0x1, /* Host-managed zoned block device */
|
||||||
|
BLK_Z_HA = 0x2, /* Host-aware zoned block device */
|
||||||
|
} BlockZoneModel;
|
||||||
|
|
||||||
|
typedef enum BlockZoneState {
|
||||||
|
BLK_ZS_NOT_WP = 0x0,
|
||||||
|
BLK_ZS_EMPTY = 0x1,
|
||||||
|
BLK_ZS_IOPEN = 0x2,
|
||||||
|
BLK_ZS_EOPEN = 0x3,
|
||||||
|
BLK_ZS_CLOSED = 0x4,
|
||||||
|
BLK_ZS_RDONLY = 0xD,
|
||||||
|
BLK_ZS_FULL = 0xE,
|
||||||
|
BLK_ZS_OFFLINE = 0xF,
|
||||||
|
} BlockZoneState;
|
||||||
|
|
||||||
|
typedef enum BlockZoneType {
|
||||||
|
BLK_ZT_CONV = 0x1, /* Conventional random writes supported */
|
||||||
|
BLK_ZT_SWR = 0x2, /* Sequential writes required */
|
||||||
|
BLK_ZT_SWP = 0x3, /* Sequential writes preferred */
|
||||||
|
} BlockZoneType;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Zone descriptor data structure.
|
||||||
|
* Provides information on a zone with all position and size values in bytes.
|
||||||
|
*/
|
||||||
|
typedef struct BlockZoneDescriptor {
|
||||||
|
uint64_t start;
|
||||||
|
uint64_t length;
|
||||||
|
uint64_t cap;
|
||||||
|
uint64_t wp;
|
||||||
|
BlockZoneType type;
|
||||||
|
BlockZoneState state;
|
||||||
|
} BlockZoneDescriptor;
|
||||||
|
|
||||||
typedef struct BlockDriverInfo {
|
typedef struct BlockDriverInfo {
|
||||||
/* in bytes, 0 if irrelevant */
|
/* in bytes, 0 if irrelevant */
|
||||||
int cluster_size;
|
int cluster_size;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue