blob: 5ed41aa06c8ac371e264b9fd62af3a33a848bf9f [file] [log] [blame]
/*
* Copyright (C) 2020 Western Digital Corporation or its affiliates.
*
* This file is released under the GPL.
*/
#ifndef FIO_ZBD_TYPES_H
#define FIO_ZBD_TYPES_H
#include <inttypes.h>
#define ZBD_MAX_OPEN_ZONES 4096
/*
* Zoned block device models.
*/
enum zbd_zoned_model {
ZBD_IGNORE, /* Ignore file */
ZBD_NONE, /* Regular block device */
ZBD_HOST_AWARE, /* Host-aware zoned block device */
ZBD_HOST_MANAGED, /* Host-managed zoned block device */
};
/*
* Zone types.
*/
enum zbd_zone_type {
ZBD_ZONE_TYPE_CNV = 0x1, /* Conventional */
ZBD_ZONE_TYPE_SWR = 0x2, /* Sequential write required */
ZBD_ZONE_TYPE_SWP = 0x3, /* Sequential write preferred */
};
/*
* Zone conditions.
*/
enum zbd_zone_cond {
ZBD_ZONE_COND_NOT_WP = 0x0,
ZBD_ZONE_COND_EMPTY = 0x1,
ZBD_ZONE_COND_IMP_OPEN = 0x2,
ZBD_ZONE_COND_EXP_OPEN = 0x3,
ZBD_ZONE_COND_CLOSED = 0x4,
ZBD_ZONE_COND_READONLY = 0xD,
ZBD_ZONE_COND_FULL = 0xE,
ZBD_ZONE_COND_OFFLINE = 0xF,
};
/*
* Zone descriptor.
*/
struct zbd_zone {
uint64_t start;
uint64_t wp;
uint64_t len;
uint64_t capacity;
enum zbd_zone_type type;
enum zbd_zone_cond cond;
};
#endif /* FIO_ZBD_TYPES_H */