bits.h File Reference
soft, unpacked and packed bits

Osmocom bit level support code. More...

`#include <stdint.h>`
`#include <stddef.h>`
`#include <osmocom/core/bit16gen.h>`
`#include <osmocom/core/bit32gen.h>`
`#include <osmocom/core/bit64gen.h>`

Go to the source code of this file.

## Macros

#define | OSMO_BIN_SPEC "%d%d%d%d%d%d%d%d"
#define | OSMO_BIN_PRINT(byte)
#define | OSMO_BIT_SPEC "%c%c%c%c%c%c%c%c"
#define | OSMO_BIT_PRINT_EX(byte, ch)
#define | OSMO_BIT_PRINT(byte) OSMO_BIT_PRINT_EX(byte, '1')

## Typedefs

typedef int8_t | sbit_t
| soft bit with value (-127...127), as commonly used in communications receivers such as [viterbi] decoders More...
typedef uint8_t | ubit_t
| unpacked bit (0 or 1): 1 bit per byte More...
typedef uint8_t | pbit_t
| packed bits (8 bits in a byte). More...

## Enumerations

enum | osmo_br_mode { OSMO_BR_BITS_IN_DWORD = 31 , OSMO_BR_BYTES_IN_DWORD = 24 , OSMO_BR_BITS_IN_BYTE = 7 , OSMO_BR_WORD_SWAP = 16 }
| bit-reversal mode for osmo_bit_reversal() More...

## Functions

static unsigned int | osmo_pbit_bytesize (unsigned int num_bits)
| determine how many bytes we would need for num_bits packed bits More...
int | osmo_ubit2pbit (pbit_t *out, const ubit_t *in, unsigned int num_bits)
| convert unpacked bits to packed bits, return length in bytes More...
int | osmo_pbit2ubit (ubit_t *out, const pbit_t *in, unsigned int num_bits)
| convert packed bits to unpacked bits, return length in bytes More...
void | osmo_nibble_shift_right (uint8_t *out, const uint8_t *in, unsigned int num_nibbles)
| Shift unaligned input to octet-aligned output. More...
void | osmo_nibble_shift_left_unal (uint8_t *out, const uint8_t *in, unsigned int num_nibbles)
| Shift unaligned input to octet-aligned output. More...
void | osmo_ubit2sbit (sbit_t *out, const ubit_t *in, unsigned int num_bits)
| convert unpacked bits to soft bits More...
void | osmo_sbit2ubit (ubit_t *out, const sbit_t *in, unsigned int num_bits)
| convert soft bits to unpacked bits More...
int | osmo_ubit2pbit_ext (pbit_t *out, unsigned int out_ofs, const ubit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)
| convert unpacked bits to packed bits (extended options) More...
int | osmo_pbit2ubit_ext (ubit_t *out, unsigned int out_ofs, const pbit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)
| convert packed bits to unpacked bits (extended options) More...
uint32_t | osmo_bit_reversal (uint32_t x, enum osmo_br_mode k)
| generalized bit reversal function More...
uint32_t | osmo_revbytebits_32 (uint32_t x)
| reverse the bit-order in each byte of a dword More...
uint32_t | osmo_revbytebits_8 (uint8_t x)
| reverse the bit order in a byte More...
void | osmo_revbytebits_buf (uint8_t *buf, int len)
| reverse bit-order of each byte in a buffer More...
static uint16_t | osmo_rol16 (uint16_t in, unsigned shift)
| left circular shift More...

## Detailed Description

Osmocom bit level support code.