Commit 4294719e authored by Pawel Wodkowski's avatar Pawel Wodkowski Committed by Jim Harris
Browse files

subsystem: make subsystem declaration macro just register subsystem



Don't do anything under the scene as adding/removing fields in struct
spdk_subsystem will require both macro change and C file changes.

Change-Id: I11bc0d5758edd7e0e0bd3f93e251d868cd9b1d2b
Signed-off-by: default avatarPawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-on: https://review.gerrithub.io/401850


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent 5333a632
Loading
Loading
Loading
Loading
+2 −11
Original line number Diff line number Diff line
@@ -66,7 +66,6 @@ extern struct spdk_subsystem_list g_subsystems;
struct spdk_subsystem_depend {
	const char *name;
	const char *depends_on;
	struct spdk_subsystem *depends_on_subsystem;
	TAILQ_ENTRY(spdk_subsystem_depend) tailq;
};

@@ -88,27 +87,19 @@ void spdk_rpc_finish(void);
/**
 * \brief Register a new subsystem
 */
#define SPDK_SUBSYSTEM_REGISTER(_name, _init, _fini, _config)			\
	struct spdk_subsystem __spdk_subsystem_ ## _name = {			\
	.name = #_name,								\
	.init = _init,								\
	.fini = _fini,								\
	.config = _config,							\
	};									\
#define SPDK_SUBSYSTEM_REGISTER(_name) \
	__attribute__((constructor)) static void _name ## _register(void)	\
	{									\
		spdk_add_subsystem(&__spdk_subsystem_ ## _name);		\
		spdk_add_subsystem(&_name);					\
	}

/**
 * \brief Declare that a subsystem depends on another subsystem.
 */
#define SPDK_SUBSYSTEM_DEPEND(_name, _depends_on)						\
	extern struct spdk_subsystem __spdk_subsystem_ ## _depends_on;				\
	static struct spdk_subsystem_depend __subsystem_ ## _name ## _depend_on ## _depends_on = { \
	.name = #_name,										\
	.depends_on = #_depends_on,								\
	.depends_on_subsystem = &__spdk_subsystem_ ## _depends_on,				\
	};											\
	__attribute__((constructor)) static void _name ## _depend_on ## _depends_on(void)	\
	{											\
+8 −2
Original line number Diff line number Diff line
@@ -64,6 +64,12 @@ spdk_bdev_subsystem_finish(void)
	spdk_bdev_finish(spdk_bdev_subsystem_finish_done, NULL);
}

SPDK_SUBSYSTEM_REGISTER(bdev, spdk_bdev_subsystem_initialize,
			spdk_bdev_subsystem_finish, spdk_bdev_config_text)
static struct spdk_subsystem g_spdk_subsystem_bdev = {
	.name = "bdev",
	.init = spdk_bdev_subsystem_initialize,
	.fini = spdk_bdev_subsystem_finish,
	.config = spdk_bdev_config_text,
};

SPDK_SUBSYSTEM_REGISTER(g_spdk_subsystem_bdev);
SPDK_SUBSYSTEM_DEPEND(bdev, copy)
+8 −2
Original line number Diff line number Diff line
@@ -60,5 +60,11 @@ spdk_copy_engine_subsystem_finish(void)
	spdk_copy_engine_finish(spdk_copy_engine_subsystem_finish_done, NULL);
}

SPDK_SUBSYSTEM_REGISTER(copy, spdk_copy_engine_subsystem_initialize,
			spdk_copy_engine_subsystem_finish, NULL)
static struct spdk_subsystem g_spdk_subsystem_copy = {
	.name = "copy",
	.init = spdk_copy_engine_subsystem_initialize,
	.fini = spdk_copy_engine_subsystem_finish,
	.config = NULL,
};

SPDK_SUBSYSTEM_REGISTER(g_spdk_subsystem_copy);
+8 −2
Original line number Diff line number Diff line
@@ -61,6 +61,12 @@ spdk_iscsi_subsystem_fini(void)
	spdk_iscsi_fini(spdk_iscsi_subsystem_fini_done, NULL);
}

SPDK_SUBSYSTEM_REGISTER(iscsi, spdk_iscsi_subsystem_init, spdk_iscsi_subsystem_fini,
			spdk_iscsi_config_text)
static struct spdk_subsystem g_spdk_subsystem_iscsi = {
	.name = "iscsi",
	.init = spdk_iscsi_subsystem_init,
	.fini = spdk_iscsi_subsystem_fini,
	.config = spdk_iscsi_config_text,
};

SPDK_SUBSYSTEM_REGISTER(g_spdk_subsystem_iscsi);
SPDK_SUBSYSTEM_DEPEND(iscsi, scsi)
+8 −1
Original line number Diff line number Diff line
@@ -54,5 +54,12 @@ spdk_nbd_subsystem_fini(void)
	spdk_subsystem_fini_next();
}

SPDK_SUBSYSTEM_REGISTER(nbd, spdk_nbd_subsystem_init, spdk_nbd_subsystem_fini, NULL)
static struct spdk_subsystem g_spdk_subsystem_nbd = {
	.name = "nbd",
	.init = spdk_nbd_subsystem_init,
	.fini = spdk_nbd_subsystem_fini,
	.config = NULL,
};

SPDK_SUBSYSTEM_REGISTER(g_spdk_subsystem_nbd);
SPDK_SUBSYSTEM_DEPEND(nbd, bdev)
Loading