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