Commit | Line | Data |
---|---|---|
b7694961 DLM |
1 | /* |
2 | * Copyright (C) 2020 Western Digital Corporation or its affiliates. | |
3 | * | |
4 | * This file is released under the GPL. | |
5 | */ | |
6 | #ifndef FIO_BLKZONED_H | |
7 | #define FIO_BLKZONED_H | |
8 | ||
9 | #include "zbd_types.h" | |
10 | ||
11 | #ifdef CONFIG_HAS_BLKZONED | |
12 | extern int blkzoned_get_zoned_model(struct thread_data *td, | |
13 | struct fio_file *f, enum zbd_zoned_model *model); | |
14 | extern int blkzoned_report_zones(struct thread_data *td, | |
15 | struct fio_file *f, uint64_t offset, | |
16 | struct zbd_zone *zones, unsigned int nr_zones); | |
17 | extern int blkzoned_reset_wp(struct thread_data *td, struct fio_file *f, | |
18 | uint64_t offset, uint64_t length); | |
19 | #else | |
20 | /* | |
21 | * Define stubs for systems that do not have zoned block device support. | |
22 | */ | |
23 | static inline int blkzoned_get_zoned_model(struct thread_data *td, | |
24 | struct fio_file *f, enum zbd_zoned_model *model) | |
25 | { | |
26 | /* | |
27 | * If this is a block device file, allow zbd emulation. | |
28 | */ | |
29 | if (f->filetype == FIO_TYPE_BLOCK) { | |
30 | *model = ZBD_NONE; | |
31 | return 0; | |
32 | } | |
33 | ||
34 | return -ENODEV; | |
35 | } | |
36 | static inline int blkzoned_report_zones(struct thread_data *td, | |
37 | struct fio_file *f, uint64_t offset, | |
38 | struct zbd_zone *zones, unsigned int nr_zones) | |
39 | { | |
40 | return -EIO; | |
41 | } | |
42 | static inline int blkzoned_reset_wp(struct thread_data *td, struct fio_file *f, | |
43 | uint64_t offset, uint64_t length) | |
44 | { | |
45 | return -EIO; | |
46 | } | |
47 | #endif | |
48 | ||
49 | #endif /* FIO_BLKZONED_H */ |