aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <daniel@totalueberwachung.de>2011-08-05 13:51:27 +0200
committerDaniel Willmann <daniel@totalueberwachung.de>2011-08-22 19:27:49 +0200
commitb09d1a8fa6c7aa41b06e1f788a595b5b82ff3717 (patch)
treeed10b62cc57a9bf85d61dd1595cadedd8b3b9621
parent40f917f3a6dc7d801192b9c8d8cb849fe54923ef (diff)
gsm_data: Include a structure for the geographical location in gsm_bts
-rw-r--r--openbsc/include/openbsc/gsm_data_shared.h18
-rw-r--r--openbsc/src/libcommon/gsm_data.c2
2 files changed, 20 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h
index 011e0aa96..d76862877 100644
--- a/openbsc/include/openbsc/gsm_data_shared.h
+++ b/openbsc/include/openbsc/gsm_data_shared.h
@@ -400,11 +400,29 @@ enum neigh_list_manual_mode {
NL_MODE_MANUAL_SI5SEP = 2, /* SI2 and SI5 have separate neighbor lists */
};
+enum bts_loc_fix {
+ BTS_LOC_FIX_INVALID = 0,
+ BTS_LOC_FIX_2D = 1,
+ BTS_LOC_FIX_3D = 2,
+};
+
+struct bts_location {
+ struct llist_head list;
+ time_t tstamp;
+ enum bts_loc_fix valid;
+ double lat;
+ double lon;
+ double height;
+};
+
/* One BTS */
struct gsm_bts {
/* list header in net->bts_list */
struct llist_head list;
+ /* Geographical location of the BTS */
+ struct llist_head loc_list;
+
/* number of ths BTS in network */
uint8_t nr;
/* human readable name / description */
diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c
index 6b15bd06c..3df69d69c 100644
--- a/openbsc/src/libcommon/gsm_data.c
+++ b/openbsc/src/libcommon/gsm_data.c
@@ -399,6 +399,8 @@ struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, enum gsm_bts_typ
INIT_LLIST_HEAD(&bts->abis_queue);
+ INIT_LLIST_HEAD(&bts->loc_list);
+
return bts;
}