#ifdef HAVE_LINUX_BLKZONED_H
+/* Let's just use v2, since v1 should be compatible with v2 */
+#define BLK_ZONE_REP_CAPACITY (1 << 0)
+struct blk_zone_v2 {
+ __u64 start; /* Zone start sector */
+ __u64 len; /* Zone length in number of sectors */
+ __u64 wp; /* Zone write pointer position */
+ __u8 type; /* Zone type */
+ __u8 cond; /* Zone condition */
+ __u8 non_seq; /* Non-sequential write resources active */
+ __u8 reset; /* Reset write pointer recommended */
+ __u8 resv[4];
+ __u64 capacity; /* Zone capacity in number of sectors */
+ __u8 reserved[24];
+};
+#define blk_zone blk_zone_v2
+
+struct blk_zone_report_v2 {
+ __u64 sector;
+ __u32 nr_zones;
+ __u32 flags;
+ struct blk_zone zones[0];
+};
+#define blk_zone_report blk_zone_report_v2
+
#define blk_zone_type(z) (z)->type
#define blk_zone_conv(z) ((z)->type == BLK_ZONE_TYPE_CONVENTIONAL)
#define blk_zone_seq_req(z) ((z)->type == BLK_ZONE_TYPE_SEQWRITE_REQ)
/*
* Handle kernel zone capacity support
*/
-#ifdef HAVE_BLK_ZONE_REP_V2
-#define BLK_ZONE_REP_CAPACITY (1 << 0)
-struct blk_zone_v2 {
- __u64 start; /* Zone start sector */
- __u64 len; /* Zone length in number of sectors */
- __u64 wp; /* Zone write pointer position */
- __u8 type; /* Zone type */
- __u8 cond; /* Zone condition */
- __u8 non_seq; /* Non-sequential write resources active */
- __u8 reset; /* Reset write pointer recommended */
- __u8 resv[4];
- __u64 capacity; /* Zone capacity in number of sectors */
- __u8 reserved[24];
-};
-#define blk_zone blk_zone_v2
-
-struct blk_zone_report_v2 {
- __u64 sector;
- __u32 nr_zones;
- __u32 flags;
-struct blk_zone zones[0];
-};
-#define blk_zone_report blk_zone_report_v2
-#endif /* HAVE_BLK_ZONE_REP_V2 */
-
#define blk_zone_empty(z) (blk_zone_cond(z) == BLK_ZONE_COND_EMPTY)
#define blk_zone_sector(z) (z)->start
#define blk_zone_length(z) (z)->len