]>
Commit | Line | Data |
---|---|---|
f2841d37 MK |
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 | #include <linux/types.h> | |
59 | ||
60 | #ifndef __externC | |
61 | # ifdef __cplusplus | |
62 | # define __externC extern "C" | |
63 | # else | |
64 | # define __externC extern | |
65 | # endif | |
66 | #endif | |
67 | ||
68 | // Compute a CRC, using the POSIX 1003 definition | |
69 | extern uint32_t | |
70 | cyg_posix_crc32(unsigned char *s, int len); | |
71 | ||
72 | // Gary S. Brown's 32 bit CRC | |
73 | ||
74 | extern uint32_t | |
75 | cyg_crc32(unsigned char *s, int len); | |
76 | ||
77 | // Gary S. Brown's 32 bit CRC, but accumulate the result from a | |
78 | // previous CRC calculation | |
79 | ||
80 | extern uint32_t | |
81 | cyg_crc32_accumulate(uint32_t crc, unsigned char *s, int len); | |
82 | ||
83 | // Ethernet FCS Algorithm | |
84 | ||
85 | extern uint32_t | |
86 | cyg_ether_crc32(unsigned char *s, int len); | |
87 | ||
88 | // Ethernet FCS algorithm, but accumulate the result from a previous | |
89 | // CRC calculation. | |
90 | ||
91 | extern uint32_t | |
92 | cyg_ether_crc32_accumulate(uint32_t crc, unsigned char *s, int len); | |
93 | ||
94 | // 16 bit CRC with polynomial x^16+x^12+x^5+1 | |
95 | ||
96 | extern uint16_t cyg_crc16(unsigned char *s, int len); | |
97 | ||
98 | #endif // _SERVICES_CRC_CRC_H_ | |
99 | ||
100 | ||
101 |