From b2f62cea7d44ab2affadfe3e8c5346742b373c2f Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 15 Aug 2012 22:33:08 +0200 Subject: add ipa_unit This adds the generic ipa_unit object that is allocated and set by the BTS while initializing the channels. --- src/ipa_unit.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 src/ipa_unit.c (limited to 'src/ipa_unit.c') diff --git a/src/ipa_unit.c b/src/ipa_unit.c new file mode 100644 index 0000000..ccf8841 --- /dev/null +++ b/src/ipa_unit.c @@ -0,0 +1,118 @@ +#include + +#include +#include + +struct ipaccess_unit { + uint16_t site_id; + uint16_t bts_id; + uint16_t trx_id; + char *name; + char *hwvers; + char *swvers; + uint8_t mac_addr[6]; + char *location1; + char *location2; + char *serno; +}; + +struct ipaccess_unit *osmo_ipa_unit_alloc() +{ + struct ipaccess_unit *unit; + + unit = talloc_zero(NULL, struct ipaccess_unit); + if (unit == NULL) + return NULL; + + unit->name = strdup(""); + unit->hwvers = strdup(""); + unit->swvers = strdup(""); + unit->location1 = strdup(""); + unit->location2 = strdup(""); + unit->serno = strdup(""); + + return unit; +} + +void osmo_ipa_unit_free(struct ipaccess_unit *unit) +{ + if (unit->name) + free(unit->name); + if (unit->hwvers) + free(unit->hwvers); + if (unit->swvers) + free(unit->swvers); + if (unit->location1) + free(unit->location1); + if (unit->location2) + free(unit->location2); + if (unit->serno) + free(unit->serno); + + talloc_free(unit); +} + +void osmo_ipa_unit_set_site_id(struct ipaccess_unit *unit, uint16_t site_id) +{ + unit->site_id = site_id; +} + +void osmo_ipa_unit_set_bts_id(struct ipaccess_unit *unit, uint16_t bts_id) +{ + unit->bts_id = bts_id; +} + +void osmo_ipa_unit_set_trx_id(struct ipaccess_unit *unit, uint16_t trx_id) +{ + unit->trx_id = trx_id; +} + +void osmo_ipa_unit_set_unit_name(struct ipaccess_unit *unit, const char *name) +{ + if (unit->name) + free(unit->name); + + unit->name = strdup(name); +} + +void osmo_ipa_unit_set_unit_hwvers(struct ipaccess_unit *unit, const char *vers) +{ + if (unit->hwvers) + free(unit->hwvers); + + unit->hwvers = strdup(vers); +} + +void osmo_ipa_unit_set_unit_swvers(struct ipaccess_unit *unit, const char *vers) +{ + if (unit->swvers) + free(unit->swvers); + + unit->swvers = strdup(vers); +} + +void osmo_ipa_unit_set_unit_mac_addr(struct ipaccess_unit *unit, uint8_t *addr) +{ + memcpy(unit->mac_addr, addr, sizeof(unit->mac_addr)); +} + +void osmo_ipa_unit_set_unit_loc1(struct ipaccess_unit *unit, const char *loc) +{ + if (unit->location1) + free(unit->location1); + + unit->location1 = strdup(loc); +} + +void osmo_ipa_unit_set_unit_loc2(struct ipaccess_unit *unit, const char *loc) +{ + if (unit->location2) + free(unit->location2); + + unit->location2 = strdup(loc); +} + +void osmo_ipa_unit_set_unit_serno(struct ipaccess_unit *unit, const char *serno) +{ + unit->serno = strdup(serno); +} -- cgit v1.2.3