7.2.4 Встроенные функции CRC
-
Встроенная функция:
uint8_t__builtin_rev_crc8_data8(uint8_t crc, uint8_t data, uint8_t poly) Возвращает вычисленное 8-битное CRC с обратным порядком битов, используя начальное значение CRC (8 бит), данные (8 бит) и полином (8 бит). crc — начальное значение CRC, data — данные, а poly — полином без старшей единицы. poly должен быть константой времени компиляции. Для вычисления может использоваться табличный алгоритм CRC или алгоритм на основе clmul — в зависимости от целевой архитектуры.
-
Встроенная функция:
uint16_t__builtin_rev_crc16_data16(uint16_t crc, uint16_t data, uint16_t poly) Аналогична
__builtin_rev_crc8_data8, но типы аргументов и возвращаемого значения имеют разрядность 16 бит.
-
Встроенная функция:
uint16_t__builtin_rev_crc16_data8(uint16_t crc, uint8_t data, uint16_t poly) Аналогична
__builtin_rev_crc16_data16, но тип аргумента data имеет разрядность 8 бит.
-
Встроенная функция:
uint32_t__builtin_rev_crc32_data32(uint32_t crc, uint32_t data, uint32_t poly) Аналогична
__builtin_rev_crc8_data8, но типы аргументов и возвращаемого значения имеют разрядность 32 бита; для вычисления CRC также может использоваться машинная инструкция crc* в зависимости от целевой архитектуры и полинома.
-
Встроенная функция:
uint32_t__builtin_rev_crc32_data8(uint32_t crc, uint8_t data, uint32_t poly) Аналогична
__builtin_rev_crc32_data32, но тип аргумента data имеет разрядность 8 бит.
-
Встроенная функция:
uint32_t__builtin_rev_crc32_data16(uint32_t crc, uint16_t data, uint32_t poly) Аналогична
__builtin_rev_crc32_data32, но тип аргумента data имеет разрядность 16 бит.
-
Встроенная функция:
uint64_t__builtin_rev_crc64_data64(uint64_t crc, uint64_t data, uint64_t poly) Аналогична
__builtin_rev_crc8_data8, но типы аргументов и возвращаемого значения имеют разрядность 64 бита.
-
Встроенная функция:
uint64_t__builtin_rev_crc64_data8(uint64_t crc, uint8_t data, uint64_t poly) Аналогична
__builtin_rev_crc64_data64, но тип аргумента data имеет разрядность 8 бит.
-
Встроенная функция:
uint64_t__builtin_rev_crc64_data16(uint64_t crc, uint16_t data, uint64_t poly) Аналогична
__builtin_rev_crc64_data64, но тип аргумента data имеет разрядность 16 бит.
-
Встроенная функция:
uint64_t__builtin_rev_crc64_data32(uint64_t crc, uint32_t data, uint64_t poly) Аналогична
__builtin_rev_crc64_data64, но тип аргумента data имеет разрядность 32 бита.
-
Встроенная функция:
uint8_t__builtin_crc8_data8(uint8_t crc, uint8_t data, uint8_t poly) Возвращает вычисленное 8-битное прямое CRC, используя начальное значение CRC (8 бит), данные (8 бит) и полином (8 бит). crc — начальное значение CRC, data — данные, а poly — полином без старшей единицы. poly должен быть константой времени компиляции. Для вычисления может использоваться табличный алгоритм CRC или алгоритм на основе clmul — в зависимости от целевой архитектуры.
-
Встроенная функция:
uint16_t__builtin_crc16_data16(uint16_t crc, uint16_t data, uint16_t poly) Аналогична
__builtin_crc8_data8, но типы аргументов и возвращаемого значения имеют разрядность 16 бит.
-
Встроенная функция:
uint16_t__builtin_crc16_data8(uint16_t crc, uint8_t data, uint16_t poly) Аналогична
__builtin_crc16_data16, но тип аргумента data имеет разрядность 8 бит.
-
Встроенная функция:
uint32_t__builtin_crc32_data32(uint32_t crc, uint32_t data, uint32_t poly) Аналогична
__builtin_crc8_data8, но типы аргументов и возвращаемого значения имеют разрядность 32 бита.
-
Встроенная функция:
uint32_t__builtin_crc32_data8(uint32_t crc, uint8_t data, uint32_t poly) Аналогична
__builtin_crc32_data32, но тип аргумента data имеет разрядность 8 бит.
-
Встроенная функция:
uint32_t__builtin_crc32_data16(uint32_t crc, uint16_t data, uint32_t poly) Аналогична
__builtin_crc32_data32, но тип аргумента data имеет разрядность 16 бит.
-
Встроенная функция:
uint64_t__builtin_crc64_data64(uint64_t crc, uint64_t data, uint64_t poly) Аналогична
__builtin_crc8_data8, но типы аргументов и возвращаемого значения имеют разрядность 64 бита.
-
Встроенная функция:
uint64_t__builtin_crc64_data8(uint64_t crc, uint8_t data, uint64_t poly) Аналогична
__builtin_crc64_data64, но тип аргумента data имеет разрядность 8 бит.
-
Встроенная функция:
uint64_t__builtin_crc64_data16(uint64_t crc, uint16_t data, uint64_t poly) Аналогична
__builtin_crc64_data64, но тип аргумента data имеет разрядность 16 бит.
-
Встроенная функция:
uint64_t__builtin_crc64_data32(uint64_t crc, uint32_t data, uint64_t poly) Аналогична
__builtin_crc64_data64, но тип аргумента data имеет разрядность 32 бита.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/CRC-Builtins.html