OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 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(unsigned char *s, int len); |
||
78 | |||
79 | // Gary S. Brown's 32 bit CRC |
||
80 | |||
81 | __externC cyg_uint32 |
||
82 | cyg_crc32(unsigned char *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, unsigned char *s, int len); |
||
89 | |||
90 | // Ethernet FCS Algorithm |
||
91 | |||
92 | __externC cyg_uint32 |
||
93 | cyg_ether_crc32(unsigned char *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, unsigned char *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(unsigned char *s, int len); |
||
105 | |||
106 | #endif // _SERVICES_CRC_CRC_H_ |
||
107 | |||
108 | |||
109 |