#include <openbsc/talloc.h>
#include <openbsc/gsm_data.h>

extern void *tall_fle_ctx;
extern void *tall_locop_ctx;
extern void *tall_gsms_ctx;
extern void *tall_subscr_ctx;
extern void *tall_sub_req_ctx;
extern void *tall_call_ctx;
extern void *tall_paging_ctx;
extern void *tall_sigh_ctx;
extern void *tall_tqe_ctx;
extern void *tall_trans_ctx;
extern void *tall_map_ctx;
extern void *tall_upq_ctx;

void talloc_ctx_init(void)
{
	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_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");
}
