From 0b6fcb0349a608023d971d576fe2ee6af18dcb45 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Thu, 16 Aug 2018 19:05:19 +0200 Subject: [PATCH] signal: Introduce API osmo_signal_talloc_ctx_init Otherwise applications need to use "extern void* tall_sigh_ctx" and set it manually (that symbol is not exported in any header file) or end up allocating struct signal_handler into the NULL talloc ctx. API created in a similar way as already existing msgb_talloc_ctx_init(), but without the pool_size because it's not considered necessary in this case. Change-Id: Id58ca18eb826b8f4183a7cf0dbb2b38cba702a09 --- include/osmocom/core/signal.h | 1 + src/signal.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/include/osmocom/core/signal.h b/include/osmocom/core/signal.h index ae78f1524..449b9762f 100644 --- a/include/osmocom/core/signal.h +++ b/include/osmocom/core/signal.h @@ -34,6 +34,7 @@ typedef int osmo_signal_cbfn(unsigned int subsys, unsigned int signal, void *han /* Management */ +void *osmo_signal_talloc_ctx_init(void *root_ctx); int osmo_signal_register_handler(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data); void osmo_signal_unregister_handler(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data); diff --git a/src/signal.c b/src/signal.c index 745d7c38d..188876b8f 100644 --- a/src/signal.c +++ b/src/signal.c @@ -46,6 +46,15 @@ struct signal_handler { void *data; }; +/*! Initialize a signal_handler talloc context for \ref osmo_signal_register_handler. + * Create a talloc context called "osmo_signal". + * \param[in] root_ctx talloc context used as parent for the new "osmo_signal" ctx. + * \returns the new osmo_signal talloc context, e.g. for reporting + */ +void *osmo_signal_talloc_ctx_init(void *root_ctx) { + tall_sigh_ctx = talloc_named_const(tall_sigh_ctx, 0, "osmo_signal"); + return tall_sigh_ctx; +} /*! Register a new signal handler * \param[in] subsys Subsystem number