fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/27868 )
Change subject: firmware/layer1: fix -Wtype-limits in chan_nr2mf_task_mask()
......................................................................
firmware/layer1: fix -Wtype-limits in chan_nr2mf_task_mask()
arm-none-eabi-gcc versions 11.2.0 shows the following warning:
layer1/l23_api.c: In function 'chan_nr2mf_task_mask':
layer1/l23_api.c:123:25: warning: comparison is always true due to
limited range of data type [-Wtype-limits]
123 | if (second_task >= 0) /* optional */
Let's get rid of {master,second}_task by using a macro.
Change-Id: I00bd3e11a14f10b78fd91f0e6915ca4fc0817d6a
---
M src/target/firmware/layer1/l23_api.c
1 file changed, 20 insertions(+), 20 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c
index 735d92a..afcf9f5 100644
--- a/src/target/firmware/layer1/l23_api.c
+++ b/src/target/firmware/layer1/l23_api.c
@@ -73,72 +73,72 @@
uint8_t cbits = chan_nr >> 3;
uint8_t tn = chan_nr & 0x7;
uint8_t lch_idx;
- enum mframe_task master_task = MF_TASK_BCCH_NORM;
- enum mframe_task second_task = -1; /* optional */
enum mf_type multiframe = 0;
uint32_t task_mask = 0x00;
+#define TASK_SET(task) \
+ task_mask |= (1 << (task))
+
if (cbits == 0x01) {
lch_idx = 0;
- master_task = (tn & 1) ? MF_TASK_TCH_F_ODD : MF_TASK_TCH_F_EVEN;
+ TASK_SET((tn & 1) ? MF_TASK_TCH_F_ODD : MF_TASK_TCH_F_EVEN);
multiframe = (tn & 1) ? MF26ODD : MF26EVEN;
} else if ((cbits & 0x1e) == 0x02) {
lch_idx = cbits & 0x1;
- master_task = MF_TASK_TCH_H_0 + lch_idx;
+ TASK_SET(MF_TASK_TCH_H_0 + lch_idx);
multiframe = (lch_idx & 1) ? MF26ODD : MF26EVEN;
} else if ((cbits & 0x1c) == 0x04) {
lch_idx = cbits & 0x3;
- master_task = MF_TASK_SDCCH4_0 + lch_idx;
+ TASK_SET(MF_TASK_SDCCH4_0 + lch_idx);
multiframe = MF51;
} else if ((cbits & 0x18) == 0x08) {
lch_idx = cbits & 0x7;
- master_task = MF_TASK_SDCCH8_0 + lch_idx;
+ TASK_SET(MF_TASK_SDCCH8_0 + lch_idx);
multiframe = MF51;
} else if ((cbits & 0x1f) == 0x18) {
/* Osmocom specific extension for PDTCH and PTCCH */
- master_task = MF_TASK_GPRS_PDTCH;
- second_task = MF_TASK_GPRS_PTCCH;
+ TASK_SET(MF_TASK_GPRS_PDTCH);
+ TASK_SET(MF_TASK_GPRS_PTCCH);
/* FIXME: PDCH has different multiframe structure */
multiframe = MFNONE;
} else if ((cbits & 0x1f) == 0x19) {
/* Osmocom specific extension for CBCH on SDCCH/4 */
- master_task = MF_TASK_SDCCH4_CBCH;
+ TASK_SET(MF_TASK_SDCCH4_CBCH);
multiframe = MF51;
} else if ((cbits & 0x1f) == 0x1a) {
/* Osmocom specific extension for CBCH on SDCCH/8 */
- master_task = MF_TASK_SDCCH8_CBCH;
+ TASK_SET(MF_TASK_SDCCH8_CBCH);
multiframe = MF51;
#if 0
} else if (cbits == 0x10) {
/* FIXME: when to do extended BCCH? */
- master_task = MF_TASK_BCCH_NORM;
+ TASK_SET(MF_TASK_BCCH_NORM);
} else if (cbits == 0x11 || cbits == 0x12) {
/* FIXME: how to decide CCCH norm/extd? */
- master_task = MF_TASK_BCCH_CCCH;
+ TASK_SET(MF_TASK_BCCH_CCCH);
#endif
+ } else {
+ TASK_SET(MF_TASK_BCCH_NORM);
}
- /* Primary and secondary tasks */
- task_mask |= (1 << master_task);
- if (second_task >= 0) /* optional */
- task_mask |= (1 << second_task);
-
switch (neigh_mode) {
case NEIGH_MODE_PM:
switch (multiframe) {
case MF51:
- task_mask |= (1 << MF_TASK_NEIGH_PM51);
+ TASK_SET(MF_TASK_NEIGH_PM51);
break;
case MF26EVEN:
- task_mask |= (1 << MF_TASK_NEIGH_PM26E);
+ TASK_SET(MF_TASK_NEIGH_PM26E);
break;
case MF26ODD:
- task_mask |= (1 << MF_TASK_NEIGH_PM26O);
+ TASK_SET(MF_TASK_NEIGH_PM26O);
break;
}
break;
}
+#undef TASK_SET
+
return task_mask;
}
--
To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/27868
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I00bd3e11a14f10b78fd91f0e6915ca4fc0817d6a
Gerrit-Change-Number: 27868
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged