dissolve libcommon: move talloc ctx into msc_main.c, drop talloc_ctx.c
Drop tall_bsc_ctx; in mncc_sock_init(), talloc the mncc_sock_state from gsm_network. In tests or utils, move from using an extern tall_bsc_ctx to a local root context pointer. Change-Id: I92c252be1d1e7634f1653de47d37c99d77d9501c
This commit is contained in:
parent
6a8b9c70fc
commit
c01e90933f
|
@ -359,8 +359,6 @@ struct gsm_sms {
|
|||
char text[SMS_TEXT_SIZE];
|
||||
};
|
||||
|
||||
extern void talloc_ctx_init(void *ctx_root);
|
||||
|
||||
extern void *tall_bsc_ctx;
|
||||
extern int ipacc_rtp_direct;
|
||||
|
||||
|
|
|
@ -54,7 +54,8 @@ struct gsup_client {
|
|||
int got_ipa_pong;
|
||||
};
|
||||
|
||||
struct gsup_client *gsup_client_create(const char *unit_name,
|
||||
struct gsup_client *gsup_client_create(void *talloc_ctx,
|
||||
const char *unit_name,
|
||||
const char *ip_addr,
|
||||
unsigned int tcp_port,
|
||||
gsup_client_read_cb_t read_cb,
|
||||
|
|
|
@ -23,7 +23,6 @@ libcommon_a_SOURCES = \
|
|||
gsm_data.c \
|
||||
gsup_client.c \
|
||||
oap_client.c \
|
||||
talloc_ctx.c \
|
||||
gsm_subscriber_base.c \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -265,7 +265,8 @@ static void start_test_procedure(struct gsup_client *gsupc)
|
|||
gsup_client_send_ping(gsupc);
|
||||
}
|
||||
|
||||
struct gsup_client *gsup_client_create(const char *unit_name,
|
||||
struct gsup_client *gsup_client_create(void *talloc_ctx,
|
||||
const char *unit_name,
|
||||
const char *ip_addr,
|
||||
unsigned int tcp_port,
|
||||
gsup_client_read_cb_t read_cb,
|
||||
|
@ -274,7 +275,7 @@ struct gsup_client *gsup_client_create(const char *unit_name,
|
|||
struct gsup_client *gsupc;
|
||||
int rc;
|
||||
|
||||
gsupc = talloc_zero(tall_bsc_ctx, struct gsup_client);
|
||||
gsupc = talloc_zero(talloc_ctx, struct gsup_client);
|
||||
OSMO_ASSERT(gsupc);
|
||||
|
||||
/* struct ipaccess_unit has a non-const unit_name, so let's copy to be
|
||||
|
|
|
@ -275,8 +275,6 @@ static void sig_cb(int sig)
|
|||
}
|
||||
}
|
||||
|
||||
void *tall_bsc_ctx = NULL;
|
||||
|
||||
/* default categories */
|
||||
static struct log_info_cat default_categories[] = {
|
||||
};
|
||||
|
@ -294,7 +292,7 @@ int main(int argc, char **argv)
|
|||
|
||||
osmo_init_logging(&gsup_test_client_log_info);
|
||||
|
||||
g_gc = gsup_client_create("GSUPTEST", server_host, server_port,
|
||||
g_gc = gsup_client_create(NULL, "GSUPTEST", server_host, server_port,
|
||||
gsupc_read_cb, NULL);
|
||||
|
||||
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
/* OpenBSC allocation contexts initialization code */
|
||||
/* (C) 2011-2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>
|
||||
* All Rights Reserved
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <osmocom/core/talloc.h>
|
||||
#include <osmocom/core/msgb.h>
|
||||
|
||||
extern void *tall_bsc_ctx;
|
||||
extern void *tall_gsms_ctx;
|
||||
extern void *tall_subscr_ctx;
|
||||
extern void *tall_call_ctx;
|
||||
extern void *tall_sigh_ctx;
|
||||
extern void *tall_trans_ctx;
|
||||
|
||||
void talloc_ctx_init(void *ctx_root)
|
||||
{
|
||||
msgb_talloc_ctx_init(ctx_root, 0);
|
||||
tall_gsms_ctx = talloc_named_const(ctx_root, 0, "sms");
|
||||
tall_subscr_ctx = talloc_named_const(ctx_root, 0, "subscriber");
|
||||
tall_call_ctx = talloc_named_const(ctx_root, 0, "gsm_call");
|
||||
tall_sigh_ctx = talloc_named_const(ctx_root, 0, "signal_handler");
|
||||
tall_trans_ctx = talloc_named_const(ctx_root, 0, "transaction");
|
||||
}
|
|
@ -284,7 +284,7 @@ int mncc_sock_init(struct gsm_network *net, const char *sock_path)
|
|||
struct osmo_fd *bfd;
|
||||
int rc;
|
||||
|
||||
state = talloc_zero(tall_bsc_ctx, struct mncc_sock_state);
|
||||
state = talloc_zero(net, struct mncc_sock_state);
|
||||
if (!state)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
@ -1040,7 +1040,7 @@ int vlr_start(const char *gsup_unit_name, struct vlr_instance *vlr,
|
|||
{
|
||||
OSMO_ASSERT(vlr);
|
||||
|
||||
vlr->gsup_client = gsup_client_create(gsup_unit_name,
|
||||
vlr->gsup_client = gsup_client_create(vlr, gsup_unit_name,
|
||||
gsup_server_addr_str,
|
||||
gsup_server_port,
|
||||
&vlr_gsupc_read_cb, NULL);
|
||||
|
|
|
@ -513,6 +513,10 @@ const struct log_info log_info = {
|
|||
.num_cat = ARRAY_SIZE(msc_default_categories),
|
||||
};
|
||||
|
||||
extern void *tall_gsms_ctx;
|
||||
extern void *tall_call_ctx;
|
||||
extern void *tall_trans_ctx;
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int rc;
|
||||
|
@ -520,9 +524,13 @@ int main(int argc, char **argv)
|
|||
msc_vty_info.copyright = osmomsc_copyright;
|
||||
|
||||
tall_msc_ctx = talloc_named_const(NULL, 1, "osmo_msc");
|
||||
talloc_ctx_init(tall_msc_ctx);
|
||||
msc_vty_info.tall_ctx = tall_msc_ctx;
|
||||
|
||||
msgb_talloc_ctx_init(tall_msc_ctx, 0);
|
||||
tall_gsms_ctx = talloc_named_const(tall_msc_ctx, 0, "sms");
|
||||
tall_call_ctx = talloc_named_const(tall_msc_ctx, 0, "gsm_call");
|
||||
tall_trans_ctx = talloc_named_const(tall_msc_ctx, 0, "transaction");
|
||||
|
||||
osmo_init_logging(&log_info);
|
||||
osmo_stats_init(tall_msc_ctx);
|
||||
|
||||
|
|
|
@ -45,6 +45,8 @@
|
|||
|
||||
#include "msc_vlr_tests.h"
|
||||
|
||||
void *msc_vlr_tests_ctx = NULL;
|
||||
|
||||
bool _log_lines = false;
|
||||
|
||||
struct gsm_network *net = NULL;
|
||||
|
@ -472,8 +474,6 @@ static struct log_info info = {
|
|||
.num_cat = ARRAY_SIZE(test_categories),
|
||||
};
|
||||
|
||||
extern void *tall_bsc_ctx;
|
||||
|
||||
int mncc_recv(struct gsm_network *net, struct msgb *msg)
|
||||
{
|
||||
struct gsm_mncc *mncc = (void*)msg->data;
|
||||
|
@ -513,7 +513,7 @@ __wrap_gsup_client_create(const char *ip_addr, unsigned int tcp_port,
|
|||
struct oap_client_config *oap_config)
|
||||
{
|
||||
struct gsup_client *gsupc;
|
||||
gsupc = talloc_zero(tall_bsc_ctx, struct gsup_client);
|
||||
gsupc = talloc_zero(msc_vlr_tests_ctx, struct gsup_client);
|
||||
OSMO_ASSERT(gsupc);
|
||||
return gsupc;
|
||||
}
|
||||
|
@ -805,12 +805,12 @@ void fake_time_start()
|
|||
fake_time_passes(0, 0);
|
||||
}
|
||||
|
||||
static void check_talloc(void *msgb_ctx, void *tall_bsc_ctx, int expected_blocks)
|
||||
static void check_talloc(void *msgb_ctx, void *msc_vlr_tests_ctx, int expected_blocks)
|
||||
{
|
||||
talloc_report_full(msgb_ctx, stderr);
|
||||
/* Expecting these to stick around in tall_bsc_ctx:
|
||||
/* Expecting these to stick around in msc_vlr_tests_ctx:
|
||||
full talloc report on 'msgb' (total 0 bytes in 1 blocks)
|
||||
talloc_total_blocks(tall_bsc_ctx) == 7
|
||||
talloc_total_blocks(msc_vlr_tests_ctx) == 7
|
||||
full talloc report on 'subscr_conn_test_ctx' (total 2642 bytes in 8 blocks)
|
||||
struct gsup_client contains 248 bytes in 1 blocks (ref 0) 0x61300000dee0
|
||||
struct gsm_network contains 2023 bytes in 6 blocks (ref 0) 0x61700000fce0
|
||||
|
@ -820,9 +820,9 @@ full talloc report on 'subscr_conn_test_ctx' (total 2642 bytes in 8 blocks)
|
|||
msgb contains 0 bytes in 1 blocks (ref 0) 0x60800000bf80
|
||||
*/
|
||||
fprintf(stderr, "talloc_total_blocks(tall_bsc_ctx) == %zu\n",
|
||||
talloc_total_blocks(tall_bsc_ctx));
|
||||
if (talloc_total_blocks(tall_bsc_ctx) != expected_blocks)
|
||||
talloc_report_full(tall_bsc_ctx, stderr);
|
||||
talloc_total_blocks(msc_vlr_tests_ctx));
|
||||
if (talloc_total_blocks(msc_vlr_tests_ctx) != expected_blocks)
|
||||
talloc_report_full(msc_vlr_tests_ctx, stderr);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
||||
|
@ -895,7 +895,7 @@ static void run_tests(int nr)
|
|||
if (cmdline_opts.verbose)
|
||||
fprintf(stderr, "(test nr %d)\n", test_nr + 1);
|
||||
|
||||
check_talloc(msgb_ctx, tall_bsc_ctx, 7);
|
||||
check_talloc(msgb_ctx, msc_vlr_tests_ctx, 7);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -926,8 +926,8 @@ int main(int argc, char **argv)
|
|||
{
|
||||
handle_options(argc, argv);
|
||||
|
||||
tall_bsc_ctx = talloc_named_const(NULL, 0, "subscr_conn_test_ctx");
|
||||
msgb_ctx = msgb_talloc_ctx_init(tall_bsc_ctx, 0);
|
||||
msc_vlr_tests_ctx = talloc_named_const(NULL, 0, "msc_vlr_tests_ctx");
|
||||
msgb_ctx = msgb_talloc_ctx_init(msc_vlr_tests_ctx, 0);
|
||||
osmo_init_logging(&info);
|
||||
|
||||
_log_lines = cmdline_opts.verbose;
|
||||
|
@ -941,7 +941,7 @@ int main(int argc, char **argv)
|
|||
if (cmdline_opts.verbose)
|
||||
log_set_category_filter(osmo_stderr_target, DLSMS, 1, LOGL_DEBUG);
|
||||
|
||||
net = test_net(tall_bsc_ctx);
|
||||
net = test_net(msc_vlr_tests_ctx);
|
||||
|
||||
osmo_fsm_log_addr(false);
|
||||
|
||||
|
@ -969,6 +969,6 @@ int main(int argc, char **argv)
|
|||
|
||||
printf("Done\n");
|
||||
|
||||
check_talloc(msgb_ctx, tall_bsc_ctx, 7);
|
||||
check_talloc(msgb_ctx, msc_vlr_tests_ctx, 7);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue