xref: /spdk/module/event/subsystems/iscsi/iscsi.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 "iscsi/iscsi.h"
9f34fa35aSSeth Howell 
10af935f76SBen Walker #include "spdk_internal/init.h"
11f34fa35aSSeth Howell 
12f34fa35aSSeth Howell static void
iscsi_subsystem_init_complete(void * cb_arg,int rc)13e503deb1SSeth Howell iscsi_subsystem_init_complete(void *cb_arg, int rc)
14f34fa35aSSeth Howell {
15f34fa35aSSeth Howell 	spdk_subsystem_init_next(rc);
16f34fa35aSSeth Howell }
17f34fa35aSSeth Howell 
18f34fa35aSSeth Howell static void
iscsi_subsystem_init(void)19e503deb1SSeth Howell iscsi_subsystem_init(void)
20f34fa35aSSeth Howell {
21e503deb1SSeth Howell 	spdk_iscsi_init(iscsi_subsystem_init_complete, NULL);
22f34fa35aSSeth Howell }
23f34fa35aSSeth Howell 
24f34fa35aSSeth Howell static void
iscsi_subsystem_fini_done(void * arg)25e503deb1SSeth Howell iscsi_subsystem_fini_done(void *arg)
26f34fa35aSSeth Howell {
27f34fa35aSSeth Howell 	spdk_subsystem_fini_next();
28f34fa35aSSeth Howell }
29f34fa35aSSeth Howell 
30f34fa35aSSeth Howell static void
iscsi_subsystem_fini(void)31e503deb1SSeth Howell iscsi_subsystem_fini(void)
32f34fa35aSSeth Howell {
33e503deb1SSeth Howell 	spdk_iscsi_fini(iscsi_subsystem_fini_done, NULL);
34f34fa35aSSeth Howell }
35f34fa35aSSeth Howell 
36f34fa35aSSeth Howell static void
iscsi_subsystem_config_json(struct spdk_json_write_ctx * w)37e503deb1SSeth Howell iscsi_subsystem_config_json(struct spdk_json_write_ctx *w)
38f34fa35aSSeth Howell {
39f34fa35aSSeth Howell 	spdk_iscsi_config_json(w);
40f34fa35aSSeth Howell }
41f34fa35aSSeth Howell 
42f34fa35aSSeth Howell static struct spdk_subsystem g_spdk_subsystem_iscsi = {
43f34fa35aSSeth Howell 	.name = "iscsi",
44e503deb1SSeth Howell 	.init = iscsi_subsystem_init,
45e503deb1SSeth Howell 	.fini = iscsi_subsystem_fini,
46e503deb1SSeth Howell 	.write_config_json = iscsi_subsystem_config_json,
47f34fa35aSSeth Howell };
48f34fa35aSSeth Howell 
49f34fa35aSSeth Howell SPDK_SUBSYSTEM_REGISTER(g_spdk_subsystem_iscsi);
50f34fa35aSSeth Howell SPDK_SUBSYSTEM_DEPEND(iscsi, scsi)
5137bf49b1SEvgeniy Kochetov SPDK_SUBSYSTEM_DEPEND(iscsi, sock)
52