1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (C) 2016 Intel Corporation.
3 * All rights reserved.
4 */
5
6 #include "spdk/stdinc.h"
7
8 #include "spdk/bdev.h"
9 #include "spdk/env.h"
10 #include "spdk/thread.h"
11
12 #include "spdk_internal/init.h"
13
14 static void
bdev_initialize_complete(void * cb_arg,int rc)15 bdev_initialize_complete(void *cb_arg, int rc)
16 {
17 spdk_subsystem_init_next(rc);
18 }
19
20 static void
bdev_subsystem_initialize(void)21 bdev_subsystem_initialize(void)
22 {
23 spdk_bdev_initialize(bdev_initialize_complete, NULL);
24 }
25
26 static void
bdev_subsystem_finish_done(void * cb_arg)27 bdev_subsystem_finish_done(void *cb_arg)
28 {
29 spdk_subsystem_fini_next();
30 }
31
32 static void
bdev_subsystem_finish(void)33 bdev_subsystem_finish(void)
34 {
35 spdk_bdev_finish(bdev_subsystem_finish_done, NULL);
36 }
37
38 static void
bdev_subsystem_config_json(struct spdk_json_write_ctx * w)39 bdev_subsystem_config_json(struct spdk_json_write_ctx *w)
40 {
41 spdk_bdev_subsystem_config_json(w);
42 }
43
44 static struct spdk_subsystem g_spdk_subsystem_bdev = {
45 .name = "bdev",
46 .init = bdev_subsystem_initialize,
47 .fini = bdev_subsystem_finish,
48 .write_config_json = bdev_subsystem_config_json,
49 };
50
51 SPDK_SUBSYSTEM_REGISTER(g_spdk_subsystem_bdev);
52 SPDK_SUBSYSTEM_DEPEND(bdev, accel)
53 SPDK_SUBSYSTEM_DEPEND(bdev, keyring)
54 SPDK_SUBSYSTEM_DEPEND(bdev, vmd)
55 SPDK_SUBSYSTEM_DEPEND(bdev, sock)
56 SPDK_SUBSYSTEM_DEPEND(bdev, iobuf)
57