summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2010-09-14 20:40:32 +0200
committerSylvain Munaut <tnt@246tNt.com>2010-09-14 21:21:43 +0200
commitd7ba30c2a08b0b72ab35a03bd64ece0d86bb9886 (patch)
treed4c26950b43d58d94ca04f789a846a273faf6cc7 /src/target/firmware/layer1
parenta268e3ce059d28d61a81915d3dfca6675ae3a219 (diff)
layer1: Make rfch_get_params tolerate NULL ptr for unwanted params
If the caller doesn't need some params, just don't give them ! Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Diffstat (limited to 'src/target/firmware/layer1')
-rw-r--r--src/target/firmware/layer1/rfch.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/target/firmware/layer1/rfch.c b/src/target/firmware/layer1/rfch.c
index 50331bf5..5627b7e4 100644
--- a/src/target/firmware/layer1/rfch.c
+++ b/src/target/firmware/layer1/rfch.c
@@ -120,23 +120,33 @@ void rfch_get_params(struct gsm_time *t,
{
if (l1s.dedicated.type == GSM_DCHAN_NONE) {
/* Serving cell only */
- *arfcn_p = l1s.serving_cell.arfcn;
- *tsc_p = l1s.serving_cell.bsic & 0x7;
- *tn_p = 0;
+ if (arfcn_p)
+ *arfcn_p = l1s.serving_cell.arfcn;
+
+ if (tsc_p)
+ *tsc_p = l1s.serving_cell.bsic & 0x7;
+
+ if (tn_p)
+ *tn_p = 0;
} else {
/* Dedicated channel */
- if (l1s.dedicated.h) {
- *arfcn_p = rfch_hop_seq_gen(t,
- l1s.dedicated.h1.hsn,
- l1s.dedicated.h1.maio,
- l1s.dedicated.h1.n,
- l1s.dedicated.h1.ma);
- } else {
- *arfcn_p = l1s.dedicated.h0.arfcn;
+ if (arfcn_p) {
+ if (l1s.dedicated.h) {
+ *arfcn_p = rfch_hop_seq_gen(t,
+ l1s.dedicated.h1.hsn,
+ l1s.dedicated.h1.maio,
+ l1s.dedicated.h1.n,
+ l1s.dedicated.h1.ma);
+ } else {
+ *arfcn_p = l1s.dedicated.h0.arfcn;
+ }
}
- *tsc_p = l1s.dedicated.tsc;
- *tn_p = l1s.dedicated.tn;
+ if (tsc_p)
+ *tsc_p = l1s.dedicated.tsc;
+
+ if (tn_p)
+ *tn_p = l1s.dedicated.tn;
}
}