Change in osmo-bts[master]: sysmobts_mgr: Prepare code for gpsd < 2.96 support

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Tue Dec 18 20:54:24 UTC 2018


Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12339 )

Change subject: sysmobts_mgr: Prepare code for gpsd < 2.96 support
......................................................................

sysmobts_mgr: Prepare code for gpsd < 2.96 support

API prior to that version allocates the pointer internally. Let's change
current code to always use a pointer and in current supported code (gpsd
>= 2.96) point it to a user-allocated struct.

Follow-up patch will introduce necessary ifdefs to support older gpsd.

Change-Id: Iaeb5ac527cc3e58168027021d0f60afa93d1fb6f
---
M src/osmo-bts-sysmo/misc/sysmobts_mgr.h
M src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
2 files changed, 10 insertions(+), 8 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Stefan Sperling: Looks good to me, but someone else must approve
  Neels Hofmeyr: Looks good to me, but someone else must approve
  Pau Espin Pedrol: Looks good to me, approved



diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr.h b/src/osmo-bts-sysmo/misc/sysmobts_mgr.h
index 88f4e24..b62707c 100644
--- a/src/osmo-bts-sysmo/misc/sysmobts_mgr.h
+++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr.h
@@ -96,7 +96,8 @@
 		/* gps structure to see if there is a fix */
 		int gps_open;
 		struct osmo_fd gpsfd;
-		struct gps_data_t gpsdata;
+		struct gps_data_t *gpsdata;
+		struct gps_data_t gpsdata_buf;
 		struct osmo_timer_list fix_timeout;
 
 		/* Loop/Re-try control */
diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c b/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
index b0b5edd..c3e821e 100644
--- a/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
+++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
@@ -86,14 +86,14 @@
 	osmo_timer_del(&mgr->calib.fix_timeout);
 
 	osmo_fd_unregister(&mgr->calib.gpsfd);
-	gps_close(&mgr->calib.gpsdata);
-	memset(&mgr->calib.gpsdata, 0, sizeof(mgr->calib.gpsdata));
+	gps_close(mgr->calib.gpsdata);
+	memset(mgr->calib.gpsdata, 0, sizeof(*(mgr->calib.gpsdata)));
 	mgr->calib.gps_open = 0;
 }
 
 static void mgr_gps_checkfix(struct sysmobts_mgr_instance *mgr)
 {
-	struct gps_data_t *data = &mgr->calib.gpsdata;
+	struct gps_data_t *data = mgr->calib.gpsdata;
 
 	/* No 2D fix yet */
 	if (data->fix.mode < MODE_2D) {
@@ -119,7 +119,7 @@
 {
 	int rc;
 	struct sysmobts_mgr_instance *mgr = fd->data;
-	rc = compat_gps_read(&mgr->calib.gpsdata);
+	rc = compat_gps_read(mgr->calib.gpsdata);
 	if (rc == -1) {
 		LOGP(DCALIB, LOGL_ERROR, "gpsd vanished during read.\n");
 		calib_state_reset(mgr, CALIB_FAIL_GPS);
@@ -143,7 +143,8 @@
 {
 	int rc;
 
-	rc = gps_open("localhost", DEFAULT_GPSD_PORT, &mgr->calib.gpsdata);
+	mgr->calib.gpsdata = &mgr->calib.gpsdata_buf;
+	rc = gps_open("localhost", DEFAULT_GPSD_PORT, mgr->calib.gpsdata);
 	if (rc != 0) {
 		LOGP(DCALIB, LOGL_ERROR, "Failed to connect to GPS %d\n", rc);
 		calib_state_reset(mgr, CALIB_FAIL_GPS);
@@ -151,12 +152,12 @@
 	}
 
 	mgr->calib.gps_open = 1;
-	gps_stream(&mgr->calib.gpsdata, WATCH_ENABLE, NULL);
+	gps_stream(mgr->calib.gpsdata, WATCH_ENABLE, NULL);
 
 	mgr->calib.gpsfd.data = mgr;
 	mgr->calib.gpsfd.cb = mgr_gps_read;
 	mgr->calib.gpsfd.when = BSC_FD_READ | BSC_FD_EXCEPT;
-	mgr->calib.gpsfd.fd = mgr->calib.gpsdata.gps_fd;
+	mgr->calib.gpsfd.fd = mgr->calib.gpsdata->gps_fd;
 	if (osmo_fd_register(&mgr->calib.gpsfd) < 0) {
 		LOGP(DCALIB, LOGL_ERROR, "Failed to register GPSD fd\n");
 		calib_state_reset(mgr, CALIB_FAIL_GPS);

-- 
To view, visit https://gerrit.osmocom.org/12339
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Iaeb5ac527cc3e58168027021d0f60afa93d1fb6f
Gerrit-Change-Number: 12339
Gerrit-PatchSet: 3
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Stefan Sperling <stsp at stsp.name>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181218/beff7a58/attachment.htm>


More information about the gerrit-log mailing list