aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-07-22 22:42:36 +0200
committerHarald Welte <laforge@gnumonks.org>2012-07-22 22:42:36 +0200
commit678321d013c320c31a1820135f32cee63d0c0ae7 (patch)
treee782cd0500da4a06e36583fdadc619a27bc8b44b /contrib
parente729a3d595baf4f3fb9bf572840c698fe71ec072 (diff)
determine (and use) the API version as indicated in the header files
From our header files v2.4 onwards, we include some macros that allow us to do compile-time checks for the API header version. As older headers don't have those macros, we have to fall back to assume it will be v2.2
Diffstat (limited to 'contrib')
-rw-r--r--contrib/sysmobts-calib/sysmobts-layer1.c7
-rw-r--r--contrib/sysmobts-calib/sysmobts-layer1.h12
2 files changed, 17 insertions, 2 deletions
diff --git a/contrib/sysmobts-calib/sysmobts-layer1.c b/contrib/sysmobts-calib/sysmobts-layer1.c
index c475354a..8c04c77a 100644
--- a/contrib/sysmobts-calib/sysmobts-layer1.c
+++ b/contrib/sysmobts-calib/sysmobts-layer1.c
@@ -338,9 +338,10 @@ int activate_rf_frontend(int clock_source, int initial_cor)
prim.u.activateRfReq.rfTrx.iClkCor = initial_cor;
prim.u.activateRfReq.rfTrx.clkSrc = clock_source;
-
+#if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(2,4,0)
prim.u.activateRfReq.rfRx.iClkCor = initial_cor;
- prim.u.activateRfReq.rfRx.clkSrc = clock_source;
+ prim.u.activateRfReq.rfRx.clkSrc = clock_source;
+#endif
rc = send_recv_primitive(SuperFemto_PrimId_ActivateRfReq, &prim);
return rc;
@@ -583,8 +584,10 @@ int set_clock_cor(int clock_cor, int calib, int source)
prim.u.rfClockSetupReq.rfTrx.iClkCor = clock_cor;
prim.u.rfClockSetupReq.rfTrx.clkSrc = calib;
+#if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(2,4,0)
prim.u.rfClockSetupReq.rfRx.iClkCor = clock_cor;
prim.u.rfClockSetupReq.rfRx.clkSrc = calib;
+#endif
prim.u.rfClockSetupReq.rfTrxClkCal.clkSrc = source;
rc = send_recv_primitive(SuperFemto_PrimId_RfClockSetupReq, &prim);
diff --git a/contrib/sysmobts-calib/sysmobts-layer1.h b/contrib/sysmobts-calib/sysmobts-layer1.h
index 5b2b285d..ec961eba 100644
--- a/contrib/sysmobts-calib/sysmobts-layer1.h
+++ b/contrib/sysmobts-calib/sysmobts-layer1.h
@@ -1,6 +1,18 @@
#ifndef SYSMOBTS_LAYER_H
#define SYSMOBTS_LAYER_H
+#include <sysmocom/femtobts/superfemto.h>
+
+/* older header files don't have this */
+#ifndef SUPERFEMTO_API
+#define SUPERFEMTO_API(x,y,z) ((x << 16) + (y << 8) + z)
+#endif
+
+#ifndef SUPERFEMTO_API_VERSION
+#define SUPERFEMTO_API_VERSION SUPERFEMTO_API(2,2,0)
+#endif
+
+
extern int initialize_layer1(uint32_t dsp_flags);
extern int print_system_info();
extern int activate_rf_frontend(int clock_source, int clock_cor);