xref: /spdk/module/event/subsystems/nbd/nbd.c (revision a6dbe3721eb3b5990707fc3e378c95e505dd8ab5)
1488570ebSJim Harris /*   SPDX-License-Identifier: BSD-3-Clause
2*a6dbe372Spaul luse  *   Copyright (C) 2017 Intel Corporation.
3f34fa35aSSeth Howell  *   All rights reserved.
4f34fa35aSSeth Howell  */
5f34fa35aSSeth Howell 
6f34fa35aSSeth Howell #include "spdk/stdinc.h"
7f34fa35aSSeth Howell 
8f34fa35aSSeth Howell #include "spdk/nbd.h"
9f34fa35aSSeth Howell 
10af935f76SBen Walker #include "spdk_internal/init.h"
11f34fa35aSSeth Howell 
12f34fa35aSSeth Howell static void
nbd_subsystem_init(void)135c0b8f39SSeth Howell nbd_subsystem_init(void)
14f34fa35aSSeth Howell {
15f34fa35aSSeth Howell 	int rc;
16f34fa35aSSeth Howell 
17f34fa35aSSeth Howell 	rc = spdk_nbd_init();
18f34fa35aSSeth Howell 
19f34fa35aSSeth Howell 	spdk_subsystem_init_next(rc);
20f34fa35aSSeth Howell }
21f34fa35aSSeth Howell 
22f34fa35aSSeth Howell static void
nbd_subsystem_fini_done(void * arg)23590b6e75SZiye Yang nbd_subsystem_fini_done(void *arg)
24590b6e75SZiye Yang {
25590b6e75SZiye Yang 	spdk_subsystem_fini_next();
26590b6e75SZiye Yang }
27590b6e75SZiye Yang 
28590b6e75SZiye Yang static void
nbd_subsystem_fini(void)295c0b8f39SSeth Howell nbd_subsystem_fini(void)
30f34fa35aSSeth Howell {
31590b6e75SZiye Yang 	spdk_nbd_fini(nbd_subsystem_fini_done, NULL);
32f34fa35aSSeth Howell }
33f34fa35aSSeth Howell 
34f34fa35aSSeth Howell static void
nbd_subsystem_write_config_json(struct spdk_json_write_ctx * w)355c0b8f39SSeth Howell nbd_subsystem_write_config_json(struct spdk_json_write_ctx *w)
36f34fa35aSSeth Howell {
37f34fa35aSSeth Howell 	spdk_nbd_write_config_json(w);
38f34fa35aSSeth Howell }
39f34fa35aSSeth Howell 
40f34fa35aSSeth Howell static struct spdk_subsystem g_spdk_subsystem_nbd = {
41f34fa35aSSeth Howell 	.name = "nbd",
425c0b8f39SSeth Howell 	.init = nbd_subsystem_init,
435c0b8f39SSeth Howell 	.fini = nbd_subsystem_fini,
445c0b8f39SSeth Howell 	.write_config_json = nbd_subsystem_write_config_json,
45f34fa35aSSeth Howell };
46f34fa35aSSeth Howell 
47f34fa35aSSeth Howell SPDK_SUBSYSTEM_REGISTER(g_spdk_subsystem_nbd);
48f34fa35aSSeth Howell SPDK_SUBSYSTEM_DEPEND(nbd, bdev)
49