uboot/include/crc.h
<<
>>
Prefs
   1/*
   2 *==========================================================================
   3 *
   4 *      crc.h
   5 *
   6 *      Interface for the CRC algorithms.
   7 *
   8 *==========================================================================
   9 * SPDX-License-Identifier:     eCos-2.0
  10 *==========================================================================
  11 *#####DESCRIPTIONBEGIN####
  12 *
  13 * Author(s):    Andrew Lunn
  14 * Contributors: Andrew Lunn
  15 * Date:         2002-08-06
  16 * Purpose:
  17 * Description:
  18 *
  19 * This code is part of eCos (tm).
  20 *
  21 *####DESCRIPTIONEND####
  22 *
  23 *==========================================================================
  24 */
  25
  26#ifndef _SERVICES_CRC_CRC_H_
  27#define _SERVICES_CRC_CRC_H_
  28
  29#include <linux/types.h>
  30
  31#ifndef __externC
  32# ifdef __cplusplus
  33#  define __externC extern "C"
  34# else
  35#  define __externC extern
  36# endif
  37#endif
  38
  39/* Compute a CRC, using the POSIX 1003 definition */
  40extern uint32_t
  41cyg_posix_crc32(unsigned char *s, int len);
  42
  43/* Gary S. Brown's 32 bit CRC */
  44
  45extern uint32_t
  46cyg_crc32(unsigned char *s, int len);
  47
  48/* Gary S. Brown's 32 bit CRC, but accumulate the result from a */
  49/* previous CRC calculation */
  50
  51extern uint32_t
  52cyg_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
  53
  54/* Ethernet FCS Algorithm */
  55
  56extern uint32_t
  57cyg_ether_crc32(unsigned char *s, int len);
  58
  59/* Ethernet FCS algorithm, but accumulate the result from a previous */
  60/* CRC calculation. */
  61
  62extern uint32_t
  63cyg_ether_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
  64
  65/* 16 bit CRC with polynomial x^16+x^12+x^5+1 */
  66
  67extern uint16_t cyg_crc16(unsigned char *s, int len);
  68
  69#endif /* _SERVICES_CRC_CRC_H_ */
  70