• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/firmware-utils/src/cyg_crc.h

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

This page was automatically generated by LXR 0.3.1.  •  OpenWrt