diff options
author | Max <msuraev@sysmocom.de> | 2016-12-16 18:45:51 +0100 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2017-01-06 11:37:52 +0000 |
commit | 34be86b93c243d94619a36a6db6c50021b33d36e (patch) | |
tree | 86e7ba1045b846b1240fb342d1bedd81145819f2 /openbsc/src/libbsc/arfcn_range_encode.c | |
parent | fa9abaca261ffd11fa86fa4ff109df719b37c5ff (diff) |
Cosmetic fixes around SI generation
* add missing spaces after comma and minus
* prevent useless recursion calls
* mark static functions as such
* name and explicitly use enum for ARFCN range
Change-Id: If5b717445c8b24668bad0e78fd5bb51f66c4d18e
Diffstat (limited to 'openbsc/src/libbsc/arfcn_range_encode.c')
-rw-r--r-- | openbsc/src/libbsc/arfcn_range_encode.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/openbsc/src/libbsc/arfcn_range_encode.c b/openbsc/src/libbsc/arfcn_range_encode.c index e67bf0a70..99188384d 100644 --- a/openbsc/src/libbsc/arfcn_range_encode.c +++ b/openbsc/src/libbsc/arfcn_range_encode.c @@ -27,7 +27,7 @@ #include <osmocom/core/utils.h> -int greatest_power_of_2_lesser_or_equal_to(int index) +static inline int greatest_power_of_2_lesser_or_equal_to(int index) { int power_of_2 = 1; @@ -52,7 +52,7 @@ static inline int mod(int data, int range) * equally size partition for the given range. Return -1 if * no such partition exists. */ -int range_enc_find_index(const int range, const int *freqs, const int size) +int range_enc_find_index(enum gsm48_range range, const int *freqs, const int size) { int i, j, n; @@ -79,7 +79,7 @@ int range_enc_find_index(const int range, const int *freqs, const int size) * \param size The size of the list of ARFCNs * \param out Place to store the W(i) output. */ -int range_enc_arfcns(const int range, +int range_enc_arfcns(enum gsm48_range range, const int *arfcns, int size, int *out, const int index) { @@ -127,9 +127,11 @@ int range_enc_arfcns(const int range, * Now recurse and we need to make this iterative... but as the * tree is balanced the stack will not be too deep. */ - range_enc_arfcns(range / 2, arfcns_left, l_size, + if (l_size) + range_enc_arfcns(range / 2, arfcns_left, l_size, out, index + greatest_power_of_2_lesser_or_equal_to(index + 1)); - range_enc_arfcns((range -1 ) / 2, arfcns_right, r_size, + if (r_size) + range_enc_arfcns((range - 1) / 2, arfcns_right, r_size, out, index + (2 * greatest_power_of_2_lesser_or_equal_to(index + 1))); return 0; } |