FreeCalypso > hg > sipout-test-utils
view libutil/osmo_bits.h @ 6:ba66d297fe57
test-fsk: first attempt at modem Rx
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 04 Mar 2024 23:21:07 -0800 |
parents | 35c0d9f03c0a |
children |
line wrap: on
line source
/* * This include file has been put together from Osmocom (specifically * libosmocore) header files, containing definitions for bit vector * manipulation and CRC functions. */ /* from bits.h */ /*! unpacked bit (0 or 1): 1 bit per byte */ typedef uint8_t ubit_t; /* from crc8gen.h */ /*! structure describing a given CRC code of max 8 bits */ struct osmo_crc8gen_code { int bits; /*!< Actual number of bits of the CRC */ uint8_t poly; /*!< Polynom (normal representation, MSB omitted */ uint8_t init; /*!< Initialization value of the CRC state */ uint8_t remainder; /*!< Remainder of the CRC (final XOR) */ }; uint8_t osmo_crc8gen_compute_bits(const struct osmo_crc8gen_code *code, const ubit_t *in, int len); int osmo_crc8gen_check_bits(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits); void osmo_crc8gen_set_bits(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits); /* * Themyscira-added (not Osmocom-originating) functions * that use the ubit_t defined type that (to our knowledge) * was invented by Osmocom. */ void uint16_to_bits(uint16_t word, ubit_t *out, unsigned nbits);