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 Howellnbd_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 Yangnbd_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 Howellnbd_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 Howellnbd_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