crc32.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
  2. *
  3. * The information contained herein is property of Nordic Semiconductor ASA.
  4. * Terms and conditions of usage are described in detail in NORDIC
  5. * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
  6. *
  7. * Licensees are granted free, non-transferable use of the information. NO
  8. * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
  9. * the file.
  10. *
  11. */
  12. /** @file
  13. *
  14. * @defgroup crc_compute CRC compute
  15. * @{
  16. * @ingroup hci_transport
  17. *
  18. * @brief This module implements the CRC-32 calculation in the blocks.
  19. */
  20. #ifndef CRC32_H__
  21. #define CRC32_H__
  22. #include <stdint.h>
  23. /**@brief Function for calculating CRC-32 in blocks.
  24. *
  25. * Feed each consecutive data block into this function, along with the current value of p_crc as
  26. * returned by the previous call of this function. The first call of this function should pass NULL
  27. * as the initial value of the crc in p_crc.
  28. *
  29. * @param[in] p_data The input data block for computation.
  30. * @param[in] size The size of the input data block in bytes.
  31. * @param[in] p_crc The previous calculated CRC-32 value or NULL if first call.
  32. *
  33. * @return The updated CRC-32 value, based on the input supplied.
  34. */
  35. uint32_t crc32_compute(uint8_t const * p_data, uint32_t size, uint32_t const * p_crc);
  36. #endif // CRC32_H__
  37. /** @} */