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
This commit is contained in:
Pau Espin 2018-08-16 19:05:19 +02:00
parent acc0a070c7
commit 0b6fcb0349
2 changed files with 10 additions and 0 deletions

View File

@ -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);

View File

@ -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