1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (C) 2019 Intel Corporation. 3 * All rights reserved. 4 */ 5 6 #ifndef SPDK_BDEV_INTERNAL_H 7 #define SPDK_BDEV_INTERNAL_H 8 9 #include "spdk/bdev.h" 10 11 #define ZERO_BUFFER_SIZE 0x100000 12 13 struct spdk_bdev; 14 struct spdk_bdev_io; 15 struct spdk_bdev_channel; 16 17 struct spdk_bdev_io *bdev_channel_get_io(struct spdk_bdev_channel *channel); 18 19 void bdev_io_init(struct spdk_bdev_io *bdev_io, struct spdk_bdev *bdev, void *cb_arg, 20 spdk_bdev_io_completion_cb cb); 21 22 void bdev_io_submit(struct spdk_bdev_io *bdev_io); 23 24 struct spdk_bdev_io_stat *bdev_io_stat_alloc(void); 25 void bdev_io_stat_free(struct spdk_bdev_io_stat *stat); 26 void bdev_io_stat_dump_json(struct spdk_bdev_io_stat *stat, struct spdk_json_write_ctx *w); 27 28 enum bdev_reset_stat_mode { 29 BDEV_RESET_STAT_ALL, 30 BDEV_RESET_STAT_MAXMIN, 31 }; 32 33 typedef void (*bdev_reset_device_stat_cb)(struct spdk_bdev *bdev, void *cb_arg, int rc); 34 35 void bdev_reset_device_stat(struct spdk_bdev *bdev, enum bdev_reset_stat_mode mode, 36 bdev_reset_device_stat_cb cb, void *cb_arg); 37 38 #endif /* SPDK_BDEV_INTERNAL_H */ 39