msgb ctx: use new msgb_talloc_ctx_init(), don't access talloc_msgb_ctx

Drop extern definitions of talloc_msgb_ctx and use msgb_talloc_ctx_init()
instead.

In sgsn_test.c, use a local variable msgb_ctx to do the talloc report
from the return value of msgb_talloc_ctx_init().

Change-Id: I2f9ace855f0ecbdc9adf5d75bcb1a3d666570de4
This commit is contained in:
Neels Hofmeyr 2016-09-16 01:49:08 +02:00
parent 4c2d4ab5db
commit 39ae17fb69
5 changed files with 7 additions and 13 deletions

View File

@ -189,8 +189,6 @@ static void handle_options(int argc, char **argv)
}
}
extern void *tall_msgb_ctx;
extern int bsc_vty_go_parent(struct vty *vty);
static struct vty_app_info vty_info = {
@ -231,7 +229,7 @@ int main(int argc, char **argv)
int rc;
tall_bsc_ctx = talloc_named_const(NULL, 0, "nsip_proxy");
tall_msgb_ctx = talloc_named_const(tall_bsc_ctx, 0, "msgb");
msgb_talloc_ctx_init(tall_bsc_ctx, 0);
signal(SIGINT, &signal_handler);
signal(SIGABRT, &signal_handler);

View File

@ -163,7 +163,6 @@ static void signal_handler(int signal)
/* NSI that BSSGP uses when transmitting on NS */
extern struct gprs_ns_inst *bssgp_nsi;
extern void *tall_msgb_ctx;
extern int bsc_vty_go_parent(struct vty *vty);
@ -328,7 +327,7 @@ int main(int argc, char **argv)
srand(time(NULL));
tall_bsc_ctx = talloc_named_const(NULL, 0, "osmo_sgsn");
tall_msgb_ctx = talloc_named_const(tall_bsc_ctx, 0, "msgb");
msgb_talloc_ctx_init(tall_bsc_ctx, 0);
signal(SIGINT, &signal_handler);
signal(SIGABRT, &signal_handler);

View File

@ -20,7 +20,6 @@
#include <osmocom/core/talloc.h>
extern void *tall_bsc_ctx;
extern void *tall_msgb_ctx;
extern void *tall_fle_ctx;
extern void *tall_locop_ctx;
extern void *tall_authciphop_ctx;
@ -38,7 +37,7 @@ extern void *tall_ctr_ctx;
void talloc_ctx_init(void *ctx_root)
{
tall_msgb_ctx = talloc_named_const(ctx_root, 0, "msgb");
msgb_talloc_ctx_init(ctx_root, 0);
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");

View File

@ -1573,12 +1573,11 @@ out:
osmo_timer_schedule(&sccp_close, SCCP_CLOSE_TIME, 0);
}
extern void *tall_msgb_ctx;
extern void *tall_ctr_ctx;
static void talloc_init_ctx()
{
tall_bsc_ctx = talloc_named_const(NULL, 0, "nat");
tall_msgb_ctx = talloc_named_const(tall_bsc_ctx, 0, "msgb");
msgb_talloc_ctx_init(tall_bsc_ctx, 0);
tall_ctr_ctx = talloc_named_const(tall_bsc_ctx, 0, "counter");
}

View File

@ -39,8 +39,6 @@
#include <stdio.h>
extern void *tall_msgb_ctx;
void *tall_bsc_ctx;
static struct sgsn_instance sgsn_inst = {
.config_file = "osmo_sgsn.cfg",
@ -2423,11 +2421,12 @@ static struct log_info info = {
int main(int argc, char **argv)
{
void *osmo_sgsn_ctx;
void *msgb_ctx;
osmo_init_logging(&info);
osmo_sgsn_ctx = talloc_named_const(NULL, 0, "osmo_sgsn");
tall_bsc_ctx = talloc_named_const(osmo_sgsn_ctx, 0, "bsc");
tall_msgb_ctx = talloc_named_const(osmo_sgsn_ctx, 0, "msgb");
msgb_ctx = msgb_talloc_ctx_init(osmo_sgsn_ctx, 0);
sgsn_rate_ctr_init();
sgsn_auth_init();
@ -2458,7 +2457,7 @@ int main(int argc, char **argv)
printf("Done\n");
talloc_report_full(osmo_sgsn_ctx, stderr);
OSMO_ASSERT(talloc_total_blocks(tall_msgb_ctx) == 1);
OSMO_ASSERT(talloc_total_blocks(msgb_ctx) == 1);
OSMO_ASSERT(talloc_total_blocks(tall_bsc_ctx) == 2);
return 0;
}