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
This commit is contained in:
Max 2016-12-16 18:45:51 +01:00
parent fa9abaca26
commit 34be86b93c
5 changed files with 12 additions and 11 deletions

View File

@ -3,7 +3,7 @@
#include <stdint.h>
enum {
enum gsm48_range {
ARFCN_RANGE_INVALID = -1,
ARFCN_RANGE_128 = 127,
ARFCN_RANGE_256 = 255,
@ -14,8 +14,8 @@ enum {
#define RANGE_ENC_MAX_ARFCNS 29
int range_enc_determine_range(const int *arfcns, int size, int *f0_out);
int range_enc_arfcns(const int rng, const int *arfcns, int sze, int *out, int idx);
int range_enc_find_index(const int rng, const int *arfcns, int size);
int range_enc_arfcns(enum gsm48_range rng, const int *arfcns, int sze, int *out, int idx);
int range_enc_find_index(enum gsm48_range rng, const int *arfcns, int size);
int range_enc_filter_arfcns(int *arfcns, const int sze, const int f0, int *f0_included);
int range_enc_range128(uint8_t *chan_list, int f0, int *w);

View File

@ -6,7 +6,6 @@
struct gsm_bts;
int gsm_generate_si(struct gsm_bts *bts, enum osmo_sysinfo_type type);
uint16_t encode_fdd(uint16_t scramble, bool diversity);
unsigned uarfcn_size(const uint16_t *u, const uint16_t *sc, size_t u_len);
unsigned earfcn_size(const struct osmo_earfcn_si2q *e);
unsigned range1024_p(unsigned n);

View File

@ -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,8 +127,10 @@ 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.
*/
if (l_size)
range_enc_arfcns(range / 2, arfcns_left, l_size,
out, index + greatest_power_of_2_lesser_or_equal_to(index + 1));
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;

View File

@ -149,7 +149,7 @@ bool si2q_size_check(const struct gsm_bts *bts)
}
/* 3GPP TS 44.018, Table 9.1.54.1 - prepend diversity bit to scrambling code */
uint16_t encode_fdd(uint16_t scramble, bool diversity)
static inline uint16_t encode_fdd(uint16_t scramble, bool diversity)
{
if (diversity)
return scramble | (1 << 9);