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:
parent
fa9abaca26
commit
34be86b93c
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
enum {
|
enum gsm48_range {
|
||||||
ARFCN_RANGE_INVALID = -1,
|
ARFCN_RANGE_INVALID = -1,
|
||||||
ARFCN_RANGE_128 = 127,
|
ARFCN_RANGE_128 = 127,
|
||||||
ARFCN_RANGE_256 = 255,
|
ARFCN_RANGE_256 = 255,
|
||||||
|
@ -14,8 +14,8 @@ enum {
|
||||||
#define RANGE_ENC_MAX_ARFCNS 29
|
#define RANGE_ENC_MAX_ARFCNS 29
|
||||||
|
|
||||||
int range_enc_determine_range(const int *arfcns, int size, int *f0_out);
|
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_arfcns(enum gsm48_range 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_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_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);
|
int range_enc_range128(uint8_t *chan_list, int f0, int *w);
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
struct gsm_bts;
|
struct gsm_bts;
|
||||||
|
|
||||||
int gsm_generate_si(struct gsm_bts *bts, enum osmo_sysinfo_type type);
|
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 uarfcn_size(const uint16_t *u, const uint16_t *sc, size_t u_len);
|
||||||
unsigned earfcn_size(const struct osmo_earfcn_si2q *e);
|
unsigned earfcn_size(const struct osmo_earfcn_si2q *e);
|
||||||
unsigned range1024_p(unsigned n);
|
unsigned range1024_p(unsigned n);
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include <osmocom/core/utils.h>
|
#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;
|
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
|
* equally size partition for the given range. Return -1 if
|
||||||
* no such partition exists.
|
* 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;
|
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 size The size of the list of ARFCNs
|
||||||
* \param out Place to store the W(i) output.
|
* \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 *arfcns, int size, int *out,
|
||||||
const int index)
|
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
|
* Now recurse and we need to make this iterative... but as the
|
||||||
* tree is balanced the stack will not be too deep.
|
* 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));
|
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)));
|
out, index + (2 * greatest_power_of_2_lesser_or_equal_to(index + 1)));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -193,7 +193,7 @@ int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
err_out:
|
err_out:
|
||||||
LOGP(DRR, LOGL_ERROR, "Cannot generate SI%s for BTS %u: error <%s>,"
|
LOGP(DRR, LOGL_ERROR, "Cannot generate SI%s for BTS %u: error <%s>, "
|
||||||
"most likely a problem with neighbor cell list generation\n",
|
"most likely a problem with neighbor cell list generation\n",
|
||||||
get_value_string(osmo_sitype_strs, i), bts->nr, strerror(-rc));
|
get_value_string(osmo_sitype_strs, i), bts->nr, strerror(-rc));
|
||||||
return rc;
|
return rc;
|
||||||
|
|
|
@ -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 */
|
/* 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)
|
if (diversity)
|
||||||
return scramble | (1 << 9);
|
return scramble | (1 << 9);
|
||||||
|
|
Loading…
Reference in New Issue