mscsplit: talloc_ctx_init(): decouple from global tall_bsc_ctx

Decouple the talloc context allocations from global tall_bsc_ctx pointer.

It appears that talloc_ctx_init() was intended for general use, since it is
located in libcommon. It is currently used only by osmo-nitb; but the upcoming
osmo-cscn will use it as well.

Instead of defining in osmo-nitb main file, add definition in gsm_data.h.

Change-Id: I168106599b788f586be0ff0af4699b9746c1b103
diff --git a/openbsc/src/libcommon/talloc_ctx.c b/openbsc/src/libcommon/talloc_ctx.c
index 528d3a2..a917a8c 100644
--- a/openbsc/src/libcommon/talloc_ctx.c
+++ b/openbsc/src/libcommon/talloc_ctx.c
@@ -36,22 +36,21 @@
 extern void *tall_upq_ctx;
 extern void *tall_ctr_ctx;
 
-void talloc_ctx_init(void)
+void talloc_ctx_init(void *ctx_root)
 {
-	tall_msgb_ctx = talloc_named_const(tall_bsc_ctx, 0, "msgb");
-	tall_fle_ctx = talloc_named_const(tall_bsc_ctx, 0,
-					  "bs11_file_list_entry");
-	tall_locop_ctx = talloc_named_const(tall_bsc_ctx, 0, "loc_updating_oper");
-	tall_authciphop_ctx = talloc_named_const(tall_bsc_ctx, 0, "auth_ciph_oper");
-	tall_gsms_ctx = talloc_named_const(tall_bsc_ctx, 0, "sms");
-	tall_subscr_ctx = talloc_named_const(tall_bsc_ctx, 0, "subscriber");
-	tall_sub_req_ctx = talloc_named_const(tall_bsc_ctx, 0, "subscr_request");
-	tall_call_ctx = talloc_named_const(tall_bsc_ctx, 0, "gsm_call");
-	tall_paging_ctx = talloc_named_const(tall_bsc_ctx, 0, "paging_request");
-	tall_sigh_ctx = talloc_named_const(tall_bsc_ctx, 0, "signal_handler");
-	tall_tqe_ctx = talloc_named_const(tall_bsc_ctx, 0, "subch_txq_entry");
-	tall_trans_ctx = talloc_named_const(tall_bsc_ctx, 0, "transaction");
-	tall_map_ctx = talloc_named_const(tall_bsc_ctx, 0, "trau_map_entry");
-	tall_upq_ctx = talloc_named_const(tall_bsc_ctx, 0, "trau_upq_entry");
-	tall_ctr_ctx = talloc_named_const(tall_bsc_ctx, 0, "counter");
+	tall_msgb_ctx = talloc_named_const(ctx_root, 0, "msgb");
+	tall_fle_ctx = talloc_named_const(ctx_root, 0, "bs11_file_list_entry");
+	tall_locop_ctx = talloc_named_const(ctx_root, 0, "loc_updating_oper");
+	tall_authciphop_ctx = talloc_named_const(ctx_root, 0, "auth_ciph_oper");
+	tall_gsms_ctx = talloc_named_const(ctx_root, 0, "sms");
+	tall_subscr_ctx = talloc_named_const(ctx_root, 0, "subscriber");
+	tall_sub_req_ctx = talloc_named_const(ctx_root, 0, "subscr_request");
+	tall_call_ctx = talloc_named_const(ctx_root, 0, "gsm_call");
+	tall_paging_ctx = talloc_named_const(ctx_root, 0, "paging_request");
+	tall_sigh_ctx = talloc_named_const(ctx_root, 0, "signal_handler");
+	tall_tqe_ctx = talloc_named_const(ctx_root, 0, "subch_txq_entry");
+	tall_trans_ctx = talloc_named_const(ctx_root, 0, "transaction");
+	tall_map_ctx = talloc_named_const(ctx_root, 0, "trau_map_entry");
+	tall_upq_ctx = talloc_named_const(ctx_root, 0, "trau_upq_entry");
+	tall_ctr_ctx = talloc_named_const(ctx_root, 0, "counter");
 }