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 <[email protected]>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Neels Hofmeyr <[email protected]>
Gerrit-Reviewer: Pau Espin Pedrol <[email protected]>
Gerrit-Reviewer: Stefan Sperling <[email protected]>

Reply via email to