xref: /spdk/lib/bdev/bdev_internal.h (revision 8ddc102a311a0d4eb4a0f8c527197b585a273215)
1488570ebSJim Harris /*   SPDX-License-Identifier: BSD-3-Clause
2a6dbe372Spaul luse  *   Copyright (C) 2019 Intel Corporation.
3ec63516aSWojciech Malikowski  *   All rights reserved.
4ec63516aSWojciech Malikowski  */
5ec63516aSWojciech Malikowski 
6ec63516aSWojciech Malikowski #ifndef SPDK_BDEV_INTERNAL_H
7ec63516aSWojciech Malikowski #define SPDK_BDEV_INTERNAL_H
8ec63516aSWojciech Malikowski 
9ec63516aSWojciech Malikowski #include "spdk/bdev.h"
10ec63516aSWojciech Malikowski 
1100647138SJim Harris #define ZERO_BUFFER_SIZE	0x100000
1200647138SJim Harris 
13ec63516aSWojciech Malikowski struct spdk_bdev;
14ec63516aSWojciech Malikowski struct spdk_bdev_io;
15ec63516aSWojciech Malikowski struct spdk_bdev_channel;
16ec63516aSWojciech Malikowski 
17fdfb4e12SJim Harris struct spdk_bdev_io *bdev_channel_get_io(struct spdk_bdev_channel *channel);
18ec63516aSWojciech Malikowski 
19a1d68e9cSJim Harris void bdev_io_init(struct spdk_bdev_io *bdev_io, struct spdk_bdev *bdev, void *cb_arg,
20ec63516aSWojciech Malikowski 		  spdk_bdev_io_completion_cb cb);
21ec63516aSWojciech Malikowski 
226c07e9d1SJim Harris void bdev_io_submit(struct spdk_bdev_io *bdev_io);
23ec63516aSWojciech Malikowski 
2453a9a8c4SShuhei Matsumoto struct spdk_bdev_io_stat *bdev_alloc_io_stat(bool io_error_stat);
25c134d11cSShuhei Matsumoto void bdev_free_io_stat(struct spdk_bdev_io_stat *stat);
2624eab325SShuhei Matsumoto 
27*8ddc102aSRichael Zhuang enum spdk_bdev_reset_stat_mode;
28d7ad7bcaSShuhei Matsumoto 
29cf4e8664SShuhei Matsumoto typedef void (*bdev_reset_device_stat_cb)(struct spdk_bdev *bdev, void *cb_arg, int rc);
30cf4e8664SShuhei Matsumoto 
31*8ddc102aSRichael Zhuang void bdev_reset_device_stat(struct spdk_bdev *bdev, enum spdk_bdev_reset_stat_mode mode,
32d7ad7bcaSShuhei Matsumoto 			    bdev_reset_device_stat_cb cb, void *cb_arg);
33cf4e8664SShuhei Matsumoto 
34ec63516aSWojciech Malikowski #endif /* SPDK_BDEV_INTERNAL_H */
35