libzbc: cleanup init code
[fio.git] / oslib / blkzoned.h
CommitLineData
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
12extern int blkzoned_get_zoned_model(struct thread_data *td,
13 struct fio_file *f, enum zbd_zoned_model *model);
14extern 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);
17extern 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 */
23static 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}
36static 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}
42static 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 */