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