uboot/include/u-boot/crc.h
<<
>>
Prefs
   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
   8#ifndef _UBOOT_CRC_H
   9#define _UBOOT_CRC_H
  10
  11/* lib/crc8.c */
  12unsigned int crc8(unsigned int crc_start, const unsigned char *vptr, int len);
  13
  14/* lib/crc16.c - 16 bit CRC with polynomial x^16+x^12+x^5+1 (CRC-CCITT) */
  15uint16_t crc16_ccitt(uint16_t crc_start, const unsigned char *s, int len);
  16/**
  17 * crc16_ccitt_wd_buf - Perform CRC16-CCIT on an input buffer and return the
  18 *                      16-bit result (network byte-order) in an output buffer
  19 *
  20 * @in: input buffer
  21 * @len: input buffer length
  22 * @out: output buffer (at least 2 bytes)
  23 * @chunk_sz: ignored
  24 */
  25void crc16_ccitt_wd_buf(const uint8_t *in, uint len,
  26                        uint8_t *out, uint chunk_sz);
  27
  28/* lib/crc32.c */
  29uint32_t crc32 (uint32_t, const unsigned char *, uint);
  30uint32_t crc32_wd (uint32_t, const unsigned char *, uint, uint);
  31uint32_t crc32_no_comp (uint32_t, const unsigned char *, uint);
  32
  33/**
  34 * crc32_wd_buf - Perform CRC32 on a buffer and return result in buffer
  35 *
  36 * @input:      Input buffer
  37 * @ilen:       Input buffer length
  38 * @output:     Place to put checksum result (4 bytes)
  39 * @chunk_sz:   Trigger watchdog after processing this many bytes
  40 */
  41void crc32_wd_buf(const unsigned char *input, uint ilen,
  42                    unsigned char *output, uint chunk_sz);
  43
  44/* lib/crc32c.c */
  45void crc32c_init(uint32_t *, uint32_t);
  46uint32_t crc32c_cal(uint32_t, const char *, int, uint32_t *);
  47
  48#endif /* _UBOOT_CRC_H */
  49