xref: /spdk/lib/ublk/ublk_internal.h (revision f6866117acb32c78d5ea7bd76ba330284655af35)
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