uboot/include/crc.h
<<
>>
Prefs
   1/*
   2 *==========================================================================
   3 *
   4 *      crc.h
   5 *
   6 *      Interface for the CRC algorithms.
   7 *
   8 *==========================================================================
   9 *####ECOSGPLCOPYRIGHTBEGIN####
  10 * -------------------------------------------
  11 * This file is part of eCos, the Embedded Configurable Operating System.
  12 * Copyright (C) 2002 Andrew Lunn
  13 *
  14 * eCos is free software; you can redistribute it and/or modify it under
  15 * the terms of the GNU General Public License as published by the Free
  16 * Software Foundation; either version 2 or (at your option) any later version.
  17 *
  18 * eCos is distributed in the hope that it will be useful, but WITHOUT ANY
  19 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
  20 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  21 * for more details.
  22 *
  23 * You should have received a copy of the GNU General Public License along
  24 * with eCos; if not, write to the Free Software Foundation, Inc.,
  25 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  26 *
  27 * As a special exception, if other files instantiate templates or use macros
  28 * or inline functions from this file, or you compile this file and link it
  29 * with other works to produce a work based on this file, this file does not
  30 * by itself cause the resulting work to be covered by the GNU General Public
  31 * License. However the source code for this file must still be made available
  32 * in accordance with section (3) of the GNU General Public License.
  33 *
  34 * This exception does not invalidate any other reasons why a work based on
  35 * this file might be covered by the GNU General Public License.
  36 *
  37 * Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
  38 * at http: *sources.redhat.com/ecos/ecos-license/
  39 * -------------------------------------------
  40 *####ECOSGPLCOPYRIGHTEND####
  41 *==========================================================================
  42 *#####DESCRIPTIONBEGIN####
  43 *
  44 * Author(s):    Andrew Lunn
  45 * Contributors: Andrew Lunn
  46 * Date:         2002-08-06
  47 * Purpose:
  48 * Description:
  49 *
  50 * This code is part of eCos (tm).
  51 *
  52 *####DESCRIPTIONEND####
  53 *
  54 *==========================================================================
  55 */
  56
  57#ifndef _SERVICES_CRC_CRC_H_
  58#define _SERVICES_CRC_CRC_H_
  59
  60#include <linux/types.h>
  61
  62#ifndef __externC
  63# ifdef __cplusplus
  64#  define __externC extern "C"
  65# else
  66#  define __externC extern
  67# endif
  68#endif
  69
  70/* Compute a CRC, using the POSIX 1003 definition */
  71extern uint32_t
  72cyg_posix_crc32(unsigned char *s, int len);
  73
  74/* Gary S. Brown's 32 bit CRC */
  75
  76extern uint32_t
  77cyg_crc32(unsigned char *s, int len);
  78
  79/* Gary S. Brown's 32 bit CRC, but accumulate the result from a */
  80/* previous CRC calculation */
  81
  82extern uint32_t
  83cyg_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
  84
  85/* Ethernet FCS Algorithm */
  86
  87extern uint32_t
  88cyg_ether_crc32(unsigned char *s, int len);
  89
  90/* Ethernet FCS algorithm, but accumulate the result from a previous */
  91/* CRC calculation. */
  92
  93extern uint32_t
  94cyg_ether_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
  95
  96/* 16 bit CRC with polynomial x^16+x^12+x^5+1 */
  97
  98extern uint16_t cyg_crc16(unsigned char *s, int len);
  99
 100#endif /* _SERVICES_CRC_CRC_H_ */
 101