crc.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2009
  4. * Marvell Semiconductor <www.marvell.com>
  5. * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
  6. */
  7. #ifndef _UBOOT_CRC_H
  8. #define _UBOOT_CRC_H
  9. /* lib/crc8.c */
  10. unsigned int crc8(unsigned int crc_start, const unsigned char *vptr, int len);
  11. /* lib/crc16.c - 16 bit CRC with polynomial x^16+x^12+x^5+1 (CRC-CCITT) */
  12. uint16_t crc16_ccitt(uint16_t crc_start, const unsigned char *s, int len);
  13. /**
  14. * crc16_ccitt_wd_buf - Perform CRC16-CCIT on an input buffer and return the
  15. * 16-bit result (network byte-order) in an output buffer
  16. *
  17. * @in: input buffer
  18. * @len: input buffer length
  19. * @out: output buffer (at least 2 bytes)
  20. * @chunk_sz: ignored
  21. */
  22. void crc16_ccitt_wd_buf(const uint8_t *in, uint len,
  23. uint8_t *out, uint chunk_sz);
  24. /* lib/crc32.c */
  25. uint32_t crc32 (uint32_t, const unsigned char *, uint);
  26. uint32_t crc32_wd (uint32_t, const unsigned char *, uint, uint);
  27. uint32_t crc32_no_comp (uint32_t, const unsigned char *, uint);
  28. /**
  29. * crc32_wd_buf - Perform CRC32 on a buffer and return result in buffer
  30. *
  31. * @input: Input buffer
  32. * @ilen: Input buffer length
  33. * @output: Place to put checksum result (4 bytes)
  34. * @chunk_sz: Trigger watchdog after processing this many bytes
  35. */
  36. void crc32_wd_buf(const unsigned char *input, uint ilen,
  37. unsigned char *output, uint chunk_sz);
  38. /* lib/crc32c.c */
  39. void crc32c_init(uint32_t *, uint32_t);
  40. uint32_t crc32c_cal(uint32_t, const char *, int, uint32_t *);
  41. #endif /* _UBOOT_CRC_H */