|
libosmogsm 1.11.0.52-28973f
Osmocom GSM library
|
#include <stdint.h>Go to the source code of this file.
Macros | |
| #define | OSMO_GSM48_RANGE_ENC_MAX_ARFCNS 29 |
Enumerations | |
| enum | osmo_gsm48_range { OSMO_GSM48_ARFCN_RANGE_INVALID = -1 , OSMO_GSM48_ARFCN_RANGE_128 = 127 , OSMO_GSM48_ARFCN_RANGE_256 = 255 , OSMO_GSM48_ARFCN_RANGE_512 = 511 , OSMO_GSM48_ARFCN_RANGE_1024 = 1023 } |
Functions | |
| int | osmo_gsm48_range_enc_determine_range (const int *arfcns, int size, int *f0_out) |
| This implements the range determination as described in GSM 04.08 J4. More... | |
| int | osmo_gsm48_range_enc_arfcns (enum osmo_gsm48_range rng, const int *arfcns, int sze, int *out, int idx) |
| Range encode the ARFCN list. More... | |
| int | osmo_gsm48_range_enc_find_index (enum osmo_gsm48_range rng, const int *arfcns, int size) |
| Determine at which index to split the ARFCNs to create an equally size partition for the given range. More... | |
| int | osmo_gsm48_range_enc_filter_arfcns (int *arfcns, const int sze, const int f0, int *f0_included) |
| int | osmo_gsm48_range_enc_128 (uint8_t *chan_list, int f0, int *w) |
| int | osmo_gsm48_range_enc_256 (uint8_t *chan_list, int f0, int *w) |
| int | osmo_gsm48_range_enc_512 (uint8_t *chan_list, int f0, int *w) |
| int | osmo_gsm48_range_enc_1024 (uint8_t *chan_list, int f0, int f0_incl, int *w) |
| #define OSMO_GSM48_RANGE_ENC_MAX_ARFCNS 29 |
| enum osmo_gsm48_range |
| int osmo_gsm48_range_enc_1024 | ( | uint8_t * | chan_list, |
| int | f0, | ||
| int | f0_incl, | ||
| int * | w | ||
| ) |
References write_all_wn().
Referenced by range_encode().
| int osmo_gsm48_range_enc_128 | ( | uint8_t * | chan_list, |
| int | f0, | ||
| int * | w | ||
| ) |
References write_all_wn(), and write_orig_arfcn().
Referenced by range_encode().
| int osmo_gsm48_range_enc_256 | ( | uint8_t * | chan_list, |
| int | f0, | ||
| int * | w | ||
| ) |
References write_all_wn(), and write_orig_arfcn().
Referenced by range_encode().
| int osmo_gsm48_range_enc_512 | ( | uint8_t * | chan_list, |
| int | f0, | ||
| int * | w | ||
| ) |
References write_all_wn(), and write_orig_arfcn().
Referenced by range_encode().
| int osmo_gsm48_range_enc_arfcns | ( | enum osmo_gsm48_range | range, |
| const int * | arfcns, | ||
| int | size, | ||
| int * | out, | ||
| const int | index | ||
| ) |
Range encode the ARFCN list.
| range | The range to use. |
| arfcns | The list of ARFCNs |
| size | The size of the list of ARFCNs |
| out | Place to store the W(i) output. |
References _range_enc_arfcns().
Referenced by _range_enc_arfcns(), and range_encode().
| int osmo_gsm48_range_enc_determine_range | ( | const int * | arfcns, |
| const int | size, | ||
| int * | f0 | ||
| ) |
This implements the range determination as described in GSM 04.08 J4.
The result will be a base frequency f0 and the range to use. Note that for range 1024 encoding f0 always refers to ARFCN 0 even if it is not an element of the arfcns list.
| [in] | arfcns | The input frequencies, they must be sorted, lowest number first |
| [in] | size | The length of the array |
| [out] | f0 | The selected F0 base frequency. It might not be inside the list |
References OSMO_GSM48_ARFCN_RANGE_1024, OSMO_GSM48_ARFCN_RANGE_128, OSMO_GSM48_ARFCN_RANGE_256, OSMO_GSM48_ARFCN_RANGE_512, and OSMO_GSM48_ARFCN_RANGE_INVALID.
| int osmo_gsm48_range_enc_filter_arfcns | ( | int * | arfcns, |
| const int | sze, | ||
| const int | f0, | ||
| int * | f0_included | ||
| ) |
References mod().
Referenced by range_encode().
| int osmo_gsm48_range_enc_find_index | ( | enum osmo_gsm48_range | range, |
| const int * | freqs, | ||
| const int | size | ||
| ) |
Determine at which index to split the ARFCNs to create an equally size partition for the given range.
Return -1 if no such partition exists.
Referenced by _range_enc_arfcns().