libosmoisdn 1.10.0.64-ff3d
Osmocom ISDN library
|
#include <osmocom/core/bits.h>
Go to the source code of this file.
Data Structures | |
struct | osmo_v110_decoded_frame |
a 'decoded' representation of a single V.110 frame. More... | |
Macros | |
#define | MAX_D_BITS 48 |
#define | MAX_E_BITS 7 |
#define | MAX_S_BITS 9 |
#define | MAX_X_BITS 2 |
#define | osmo_v110_e1e2e3_set(e_bits, rate) memcpy(e_bits, osmo_v110_e1e2e3[rate], 3) |
#define | osmo_v110_e1e2e3_cmp(e_bits, rate) memcmp(e_bits, osmo_v110_e1e2e3[rate], 3) |
Enumerations | |
enum | osmo_v100_sync_ra1_rate { OSMO_V110_SYNC_RA1_600 , OSMO_V110_SYNC_RA1_1200 , OSMO_V110_SYNC_RA1_2400 , OSMO_V110_SYNC_RA1_4800 , OSMO_V110_SYNC_RA1_7200 , OSMO_V110_SYNC_RA1_9600 , OSMO_V110_SYNC_RA1_12000 , OSMO_V110_SYNC_RA1_14400 , OSMO_V110_SYNC_RA1_19200 , OSMO_V110_SYNC_RA1_24000 , OSMO_V110_SYNC_RA1_28800 , OSMO_V110_SYNC_RA1_38400 , _NUM_OSMO_V110_SYNC_RA1 } |
enum for each supported V.110 synchronous RA1 function (one for each user bitrate) More... | |
Functions | |
int | osmo_v110_decode_frame (struct osmo_v110_decoded_frame *fr, const ubit_t *ra_bits, size_t n_bits) |
Decode a 80-bit V.110 frame present as 80 ubits into a struct osmo_v110_decoded_frame. More... | |
int | osmo_v110_encode_frame (ubit_t *ra_bits, size_t n_bits, const struct osmo_v110_decoded_frame *fr) |
Encode a struct osmo_v110_decoded_frame into an 80-bit V.110 frame as ubits. More... | |
void | osmo_v110_ubit_dump (FILE *outf, const ubit_t *fr, size_t in_len) |
Print a encoded V.110 frame in the same table-like structure as the spec. More... | |
int | osmo_v110_sync_ra1_get_user_data_chunk_bitlen (enum osmo_v100_sync_ra1_rate rate) |
obtain the size (in number of bits) of the user data bits in one V.110 frame for specified RA1 rate More... | |
int | osmo_v110_sync_ra1_get_user_data_rate (enum osmo_v100_sync_ra1_rate rate) |
obtain the user data rate (in bits/s) for specified RA1 rate More... | |
int | osmo_v110_sync_ra1_get_intermediate_rate (enum osmo_v100_sync_ra1_rate rate) |
obtain the intermediate rate (in bits/s) for specified RA1 rate More... | |
int | osmo_v110_sync_ra1_user_to_ir (enum osmo_v100_sync_ra1_rate rate, struct osmo_v110_decoded_frame *fr, const ubit_t *d_in, size_t in_len) |
perform V.110 RA1 function in user rate -> intermediate rate direction. More... | |
int | osmo_v110_sync_ra1_ir_to_user (enum osmo_v100_sync_ra1_rate rate, ubit_t *d_out, size_t out_len, const struct osmo_v110_decoded_frame *fr) |
perform V.110 RA1 function in intermediate rate -> user rate direction. More... | |
Variables | |
const ubit_t | osmo_v110_e1e2e3 [_NUM_OSMO_V110_SYNC_RA1][3] |
E1/E2/E3 bit values as per Table 5/V.110. More... | |
#define MAX_D_BITS 48 |
#define MAX_E_BITS 7 |
#define MAX_S_BITS 9 |
#define MAX_X_BITS 2 |
#define osmo_v110_e1e2e3_cmp | ( | e_bits, | |
rate | |||
) | memcmp(e_bits, osmo_v110_e1e2e3[rate], 3) |
#define osmo_v110_e1e2e3_set | ( | e_bits, | |
rate | |||
) | memcpy(e_bits, osmo_v110_e1e2e3[rate], 3) |
enum for each supported V.110 synchronous RA1 function (one for each user bitrate)
int osmo_v110_decode_frame | ( | struct osmo_v110_decoded_frame * | fr, |
const ubit_t * | ra_bits, | ||
size_t | n_bits | ||
) |
Decode a 80-bit V.110 frame present as 80 ubits into a struct osmo_v110_decoded_frame.
[out] | fr | caller-allocated output data structure, filled by this function |
[in] | ra_bits | One V.110 frame as 80 unpacked bits. |
[in] | n_bits | number of unpacked bits provided in ra_bits |
References osmo_v110_decoded_frame::d_bits, osmo_v110_decoded_frame::e_bits, osmo_v110_decoded_frame::s_bits, and osmo_v110_decoded_frame::x_bits.
int osmo_v110_encode_frame | ( | ubit_t * | ra_bits, |
size_t | n_bits, | ||
const struct osmo_v110_decoded_frame * | fr | ||
) |
Encode a struct osmo_v110_decoded_frame into an 80-bit V.110 frame as ubits.
[out] | ra_bits | caller-provided output buffer at leat 80 ubits large |
[in] | n_bits | length of ra_bits. Must be at least 80. |
[in] | input | data structure |
References osmo_v110_decoded_frame::d_bits, osmo_v110_decoded_frame::e_bits, osmo_v110_decoded_frame::s_bits, and osmo_v110_decoded_frame::x_bits.
int osmo_v110_sync_ra1_get_intermediate_rate | ( | enum osmo_v100_sync_ra1_rate | rate | ) |
obtain the intermediate rate (in bits/s) for specified RA1 rate
References _NUM_OSMO_V110_SYNC_RA1, osmo_v110_sync_ra1::intermediate_rate, and osmo_v110_sync_ra1_def.
int osmo_v110_sync_ra1_get_user_data_chunk_bitlen | ( | enum osmo_v100_sync_ra1_rate | rate | ) |
obtain the size (in number of bits) of the user data bits in one V.110 frame for specified RA1 rate
References _NUM_OSMO_V110_SYNC_RA1, osmo_v110_sync_ra1_def, and osmo_v110_sync_ra1::user_data_chunk_bits.
Referenced by v110_ta_build_frame(), and v110_ta_handle_frame().
int osmo_v110_sync_ra1_get_user_data_rate | ( | enum osmo_v100_sync_ra1_rate | rate | ) |
obtain the user data rate (in bits/s) for specified RA1 rate
References _NUM_OSMO_V110_SYNC_RA1, osmo_v110_sync_ra1::data_rate, and osmo_v110_sync_ra1_def.
int osmo_v110_sync_ra1_ir_to_user | ( | enum osmo_v100_sync_ra1_rate | rate, |
ubit_t * | d_out, | ||
size_t | out_len, | ||
const struct osmo_v110_decoded_frame * | fr | ||
) |
perform V.110 RA1 function in intermediate rate -> user rate direction.
[in] | rate | specification of the user bitrate |
[out] | d_out | caller-allocated output user data (unpacked bits) |
[out] | out_len | length of d_out output buffer |
[in] | fr | [decoded] V.110 frame used as input |
References _NUM_OSMO_V110_SYNC_RA1, osmo_v110_sync_ra1::adapt_ir_to_user, and osmo_v110_sync_ra1_def.
Referenced by v110_ta_handle_frame().
int osmo_v110_sync_ra1_user_to_ir | ( | enum osmo_v100_sync_ra1_rate | rate, |
struct osmo_v110_decoded_frame * | fr, | ||
const ubit_t * | d_in, | ||
size_t | in_len | ||
) |
perform V.110 RA1 function in user rate -> intermediate rate direction.
[in] | rate | specification of the user bitrate |
[out] | fr | caller-allocated output buffer for the [decoded] V.110 frame generated |
[in] | d_in | input user data (unpacked bits) |
[in] | in_len | length of user input data (in number of bits) |
References _NUM_OSMO_V110_SYNC_RA1, osmo_v110_sync_ra1::adapt_user_to_ir, and osmo_v110_sync_ra1_def.
Referenced by v110_ta_build_frame().
void osmo_v110_ubit_dump | ( | FILE * | outf, |
const ubit_t * | fr, | ||
size_t | in_len | ||
) |
Print a encoded V.110 frame in the same table-like structure as the spec.
outf | output FILE stream to which to dump | |
[in] | fr | unpacked bits to dump |
[in] | in_len | length of unpacked bits available at fr. |
|
extern |
E1/E2/E3 bit values as per Table 5/V.110.