diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-06-21 16:17:15 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-06-21 16:17:15 +0200 |
commit | e441d9c36174037f50245a0dc47c4ec41b3b5421 (patch) | |
tree | f9b959c66f18c33fc472ed08a129d3471c216755 /openbsc/src/bs11_config.c | |
parent | 2cf161be08795be4a074ba2b50fdd81ad1f4c35e (diff) |
switch to dynamically allocated BTS and TRX data structures
This makes it much easier to do run-time configuration using the vty
interface.
Diffstat (limited to 'openbsc/src/bs11_config.c')
-rw-r--r-- | openbsc/src/bs11_config.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/openbsc/src/bs11_config.c b/openbsc/src/bs11_config.c index 386b865ca..0fb7cd7a6 100644 --- a/openbsc/src/bs11_config.c +++ b/openbsc/src/bs11_config.c @@ -94,7 +94,7 @@ static int create_objects(struct gsm_bts *bts) abis_nm_bs11_conn_oml_tei(bts, 0, 1, 0xff, TEI_OML); - abis_nm_bs11_set_trx_power(&bts->trx[0], BS11_TRX_POWER_GSM_30mW); + abis_nm_bs11_set_trx_power(bts->c0, BS11_TRX_POWER_GSM_30mW); sleep(1); @@ -109,6 +109,10 @@ static int create_trx1(struct gsm_bts *bts) { u_int8_t bbsig1_attr[sizeof(obj_bbsig0_attr)+12]; u_int8_t *cur = bbsig1_attr; + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, 1); + + if (!trx) + trx = gsm_bts_trx_alloc(bts); fprintf(stdout, "Crating Objects for TRX1\n"); @@ -123,7 +127,7 @@ static int create_trx1(struct gsm_bts *bts) sizeof(bbsig1_attr), bbsig1_attr); abis_nm_bs11_create_object(bts, BS11_OBJ_PA, 1, sizeof(obj_pa0_attr), obj_pa0_attr); - abis_nm_bs11_set_trx_power(&bts->trx[1], BS11_TRX_POWER_GSM_30mW); + abis_nm_bs11_set_trx_power(trx, BS11_TRX_POWER_GSM_30mW); return 0; } @@ -437,13 +441,17 @@ static int print_attr(struct tlv_parsed *tp) static void cmd_query(void) { + struct gsm_bts_trx *trx = g_bts->c0; + bs11cfg_state = STATE_QUERY; abis_nm_bs11_get_serno(g_bts); abis_nm_bs11_get_oml_tei_ts(g_bts); abis_nm_bs11_get_pll_mode(g_bts); abis_nm_bs11_get_cclk(g_bts); - abis_nm_bs11_get_trx_power(&g_bts->trx[0]); - abis_nm_bs11_get_trx_power(&g_bts->trx[1]); + abis_nm_bs11_get_trx_power(trx); + trx = gsm_bts_trx_num(g_bts, 1); + if (trx) + abis_nm_bs11_get_trx_power(trx); sleep(1); abis_nm_bs11_factory_logon(g_bts, 0); command = NULL; @@ -775,12 +783,13 @@ int main(int argc, char **argv) handle_options(argc, argv); - gsmnet = gsm_network_init(1, 1, 1, GSM_BTS_TYPE_BS11, NULL); + gsmnet = gsm_network_init(1, 1, NULL); if (!gsmnet) { fprintf(stderr, "Unable to allocate gsm network\n"); exit(1); } - g_bts = &gsmnet->bts[0]; + g_bts = gsm_bts_alloc(gsmnet, GSM_BTS_TYPE_BS11, HARDCODED_TSC, + HARDCODED_BSIC); rc = rs232_setup(serial_port, delay_ms, g_bts); if (rc < 0) { |