1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (C) 2022 Intel Corporation. 3 * All rights reserved. 4 */ 5 /** \file 6 * Userspace block device layer 7 */ 8 #ifndef SPDK_UBLK_INTERNAL_H 9 #define SPDK_UBLK_INTERNAL_H 10 11 #include "spdk/ublk.h" 12 13 #define UBLK_DEV_QUEUE_DEPTH 128 14 #define UBLK_DEV_NUM_QUEUE 1 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 typedef void (*ublk_start_cb)(void *cb_arg, int result); 21 typedef void (*ublk_del_cb)(void *cb_arg); 22 23 int ublk_create_target(const char *cpumask_str); 24 int ublk_destroy_target(spdk_ublk_fini_cb cb_fn, void *cb_arg); 25 int ublk_start_disk(const char *bdev_name, uint32_t ublk_id, 26 uint32_t num_queues, uint32_t queue_depth, 27 ublk_start_cb start_cb, void *cb_arg); 28 int ublk_stop_disk(uint32_t ublk_id, ublk_del_cb del_cb, void *cb_arg); 29 struct spdk_ublk_dev *ublk_dev_find_by_id(uint32_t ublk_id); 30 uint32_t ublk_dev_get_id(struct spdk_ublk_dev *ublk); 31 const char *ublk_dev_get_bdev_name(struct spdk_ublk_dev *ublk); 32 struct spdk_ublk_dev *ublk_dev_first(void); 33 struct spdk_ublk_dev *ublk_dev_next(struct spdk_ublk_dev *prev); 34 uint32_t ublk_dev_get_queue_depth(struct spdk_ublk_dev *ublk); 35 uint32_t ublk_dev_get_num_queues(struct spdk_ublk_dev *ublk); 36 37 #ifdef __cplusplus 38 } 39 #endif 40 41 #endif /* SPDK_UBLK_INTERNAL_H */ 42