1
1
/*-
2
2
* Copyright (c) 1991, 1993
3
- * The Regents of the University of California. All rights reserved.
3
+ * The Regents of the University of California. All rights reserved.
4
4
*
5
5
* This code is derived from software contributed to Berkeley by
6
6
* James W. Williams of NASA Goddard Space Flight Center.
15
15
* documentation and/or other materials provided with the distribution.
16
16
* 3. All advertising materials mentioning features or use of this software
17
17
* must display the following acknowledgement:
18
- * This product includes software developed by the University of
19
- * California, Berkeley and its contributors.
18
+ * This product includes software developed by the University of
19
+ * California, Berkeley and its contributors.
20
20
* 4. Neither the name of the University nor the names of its contributors
21
21
* may be used to endorse or promote products derived from this software
22
22
* without specific prior written permission.
36
36
37
37
#ifndef lint
38
38
#if 0
39
- static char sccsid [] = "@(#)crc.c 8.1 (Berkeley) 6/17/93" ;
39
+ static char sccsid [] = "@(#)crc.c 8.1 (Berkeley) 6/17/93" ;
40
40
#endif
41
41
#endif /* not lint */
42
42
@@ -53,58 +53,58 @@ static char sccsid[] = "@(#)crc.c 8.1 (Berkeley) 6/17/93";
53
53
#include "extern.h"
54
54
55
55
static const uint32_t crctab [] = {
56
- 0x0 ,
57
- 0x04c11db7 , 0x09823b6e , 0x0d4326d9 , 0x130476dc , 0x17c56b6b ,
58
- 0x1a864db2 , 0x1e475005 , 0x2608edb8 , 0x22c9f00f , 0x2f8ad6d6 ,
59
- 0x2b4bcb61 , 0x350c9b64 , 0x31cd86d3 , 0x3c8ea00a , 0x384fbdbd ,
60
- 0x4c11db70 , 0x48d0c6c7 , 0x4593e01e , 0x4152fda9 , 0x5f15adac ,
61
- 0x5bd4b01b , 0x569796c2 , 0x52568b75 , 0x6a1936c8 , 0x6ed82b7f ,
62
- 0x639b0da6 , 0x675a1011 , 0x791d4014 , 0x7ddc5da3 , 0x709f7b7a ,
63
- 0x745e66cd , 0x9823b6e0 , 0x9ce2ab57 , 0x91a18d8e , 0x95609039 ,
64
- 0x8b27c03c , 0x8fe6dd8b , 0x82a5fb52 , 0x8664e6e5 , 0xbe2b5b58 ,
65
- 0xbaea46ef , 0xb7a96036 , 0xb3687d81 , 0xad2f2d84 , 0xa9ee3033 ,
66
- 0xa4ad16ea , 0xa06c0b5d , 0xd4326d90 , 0xd0f37027 , 0xddb056fe ,
67
- 0xd9714b49 , 0xc7361b4c , 0xc3f706fb , 0xceb42022 , 0xca753d95 ,
68
- 0xf23a8028 , 0xf6fb9d9f , 0xfbb8bb46 , 0xff79a6f1 , 0xe13ef6f4 ,
69
- 0xe5ffeb43 , 0xe8bccd9a , 0xec7dd02d , 0x34867077 , 0x30476dc0 ,
70
- 0x3d044b19 , 0x39c556ae , 0x278206ab , 0x23431b1c , 0x2e003dc5 ,
71
- 0x2ac12072 , 0x128e9dcf , 0x164f8078 , 0x1b0ca6a1 , 0x1fcdbb16 ,
72
- 0x018aeb13 , 0x054bf6a4 , 0x0808d07d , 0x0cc9cdca , 0x7897ab07 ,
73
- 0x7c56b6b0 , 0x71159069 , 0x75d48dde , 0x6b93dddb , 0x6f52c06c ,
74
- 0x6211e6b5 , 0x66d0fb02 , 0x5e9f46bf , 0x5a5e5b08 , 0x571d7dd1 ,
75
- 0x53dc6066 , 0x4d9b3063 , 0x495a2dd4 , 0x44190b0d , 0x40d816ba ,
76
- 0xaca5c697 , 0xa864db20 , 0xa527fdf9 , 0xa1e6e04e , 0xbfa1b04b ,
77
- 0xbb60adfc , 0xb6238b25 , 0xb2e29692 , 0x8aad2b2f , 0x8e6c3698 ,
78
- 0x832f1041 , 0x87ee0df6 , 0x99a95df3 , 0x9d684044 , 0x902b669d ,
79
- 0x94ea7b2a , 0xe0b41de7 , 0xe4750050 , 0xe9362689 , 0xedf73b3e ,
80
- 0xf3b06b3b , 0xf771768c , 0xfa325055 , 0xfef34de2 , 0xc6bcf05f ,
81
- 0xc27dede8 , 0xcf3ecb31 , 0xcbffd686 , 0xd5b88683 , 0xd1799b34 ,
82
- 0xdc3abded , 0xd8fba05a , 0x690ce0ee , 0x6dcdfd59 , 0x608edb80 ,
83
- 0x644fc637 , 0x7a089632 , 0x7ec98b85 , 0x738aad5c , 0x774bb0eb ,
84
- 0x4f040d56 , 0x4bc510e1 , 0x46863638 , 0x42472b8f , 0x5c007b8a ,
85
- 0x58c1663d , 0x558240e4 , 0x51435d53 , 0x251d3b9e , 0x21dc2629 ,
86
- 0x2c9f00f0 , 0x285e1d47 , 0x36194d42 , 0x32d850f5 , 0x3f9b762c ,
87
- 0x3b5a6b9b , 0x0315d626 , 0x07d4cb91 , 0x0a97ed48 , 0x0e56f0ff ,
88
- 0x1011a0fa , 0x14d0bd4d , 0x19939b94 , 0x1d528623 , 0xf12f560e ,
89
- 0xf5ee4bb9 , 0xf8ad6d60 , 0xfc6c70d7 , 0xe22b20d2 , 0xe6ea3d65 ,
90
- 0xeba91bbc , 0xef68060b , 0xd727bbb6 , 0xd3e6a601 , 0xdea580d8 ,
91
- 0xda649d6f , 0xc423cd6a , 0xc0e2d0dd , 0xcda1f604 , 0xc960ebb3 ,
92
- 0xbd3e8d7e , 0xb9ff90c9 , 0xb4bcb610 , 0xb07daba7 , 0xae3afba2 ,
93
- 0xaafbe615 , 0xa7b8c0cc , 0xa379dd7b , 0x9b3660c6 , 0x9ff77d71 ,
94
- 0x92b45ba8 , 0x9675461f , 0x8832161a , 0x8cf30bad , 0x81b02d74 ,
95
- 0x857130c3 , 0x5d8a9099 , 0x594b8d2e , 0x5408abf7 , 0x50c9b640 ,
96
- 0x4e8ee645 , 0x4a4ffbf2 , 0x470cdd2b , 0x43cdc09c , 0x7b827d21 ,
97
- 0x7f436096 , 0x7200464f , 0x76c15bf8 , 0x68860bfd , 0x6c47164a ,
98
- 0x61043093 , 0x65c52d24 , 0x119b4be9 , 0x155a565e , 0x18197087 ,
99
- 0x1cd86d30 , 0x029f3d35 , 0x065e2082 , 0x0b1d065b , 0x0fdc1bec ,
100
- 0x3793a651 , 0x3352bbe6 , 0x3e119d3f , 0x3ad08088 , 0x2497d08d ,
101
- 0x2056cd3a , 0x2d15ebe3 , 0x29d4f654 , 0xc5a92679 , 0xc1683bce ,
102
- 0xcc2b1d17 , 0xc8ea00a0 , 0xd6ad50a5 , 0xd26c4d12 , 0xdf2f6bcb ,
103
- 0xdbee767c , 0xe3a1cbc1 , 0xe760d676 , 0xea23f0af , 0xeee2ed18 ,
104
- 0xf0a5bd1d , 0xf464a0aa , 0xf9278673 , 0xfde69bc4 , 0x89b8fd09 ,
105
- 0x8d79e0be , 0x803ac667 , 0x84fbdbd0 , 0x9abc8bd5 , 0x9e7d9662 ,
106
- 0x933eb0bb , 0x97ffad0c , 0xafb010b1 , 0xab710d06 , 0xa6322bdf ,
107
- 0xa2f33668 , 0xbcb4666d , 0xb8757bda , 0xb5365d03 , 0xb1f740b4
56
+ 0x0 ,
57
+ 0x04c11db7 , 0x09823b6e , 0x0d4326d9 , 0x130476dc , 0x17c56b6b ,
58
+ 0x1a864db2 , 0x1e475005 , 0x2608edb8 , 0x22c9f00f , 0x2f8ad6d6 ,
59
+ 0x2b4bcb61 , 0x350c9b64 , 0x31cd86d3 , 0x3c8ea00a , 0x384fbdbd ,
60
+ 0x4c11db70 , 0x48d0c6c7 , 0x4593e01e , 0x4152fda9 , 0x5f15adac ,
61
+ 0x5bd4b01b , 0x569796c2 , 0x52568b75 , 0x6a1936c8 , 0x6ed82b7f ,
62
+ 0x639b0da6 , 0x675a1011 , 0x791d4014 , 0x7ddc5da3 , 0x709f7b7a ,
63
+ 0x745e66cd , 0x9823b6e0 , 0x9ce2ab57 , 0x91a18d8e , 0x95609039 ,
64
+ 0x8b27c03c , 0x8fe6dd8b , 0x82a5fb52 , 0x8664e6e5 , 0xbe2b5b58 ,
65
+ 0xbaea46ef , 0xb7a96036 , 0xb3687d81 , 0xad2f2d84 , 0xa9ee3033 ,
66
+ 0xa4ad16ea , 0xa06c0b5d , 0xd4326d90 , 0xd0f37027 , 0xddb056fe ,
67
+ 0xd9714b49 , 0xc7361b4c , 0xc3f706fb , 0xceb42022 , 0xca753d95 ,
68
+ 0xf23a8028 , 0xf6fb9d9f , 0xfbb8bb46 , 0xff79a6f1 , 0xe13ef6f4 ,
69
+ 0xe5ffeb43 , 0xe8bccd9a , 0xec7dd02d , 0x34867077 , 0x30476dc0 ,
70
+ 0x3d044b19 , 0x39c556ae , 0x278206ab , 0x23431b1c , 0x2e003dc5 ,
71
+ 0x2ac12072 , 0x128e9dcf , 0x164f8078 , 0x1b0ca6a1 , 0x1fcdbb16 ,
72
+ 0x018aeb13 , 0x054bf6a4 , 0x0808d07d , 0x0cc9cdca , 0x7897ab07 ,
73
+ 0x7c56b6b0 , 0x71159069 , 0x75d48dde , 0x6b93dddb , 0x6f52c06c ,
74
+ 0x6211e6b5 , 0x66d0fb02 , 0x5e9f46bf , 0x5a5e5b08 , 0x571d7dd1 ,
75
+ 0x53dc6066 , 0x4d9b3063 , 0x495a2dd4 , 0x44190b0d , 0x40d816ba ,
76
+ 0xaca5c697 , 0xa864db20 , 0xa527fdf9 , 0xa1e6e04e , 0xbfa1b04b ,
77
+ 0xbb60adfc , 0xb6238b25 , 0xb2e29692 , 0x8aad2b2f , 0x8e6c3698 ,
78
+ 0x832f1041 , 0x87ee0df6 , 0x99a95df3 , 0x9d684044 , 0x902b669d ,
79
+ 0x94ea7b2a , 0xe0b41de7 , 0xe4750050 , 0xe9362689 , 0xedf73b3e ,
80
+ 0xf3b06b3b , 0xf771768c , 0xfa325055 , 0xfef34de2 , 0xc6bcf05f ,
81
+ 0xc27dede8 , 0xcf3ecb31 , 0xcbffd686 , 0xd5b88683 , 0xd1799b34 ,
82
+ 0xdc3abded , 0xd8fba05a , 0x690ce0ee , 0x6dcdfd59 , 0x608edb80 ,
83
+ 0x644fc637 , 0x7a089632 , 0x7ec98b85 , 0x738aad5c , 0x774bb0eb ,
84
+ 0x4f040d56 , 0x4bc510e1 , 0x46863638 , 0x42472b8f , 0x5c007b8a ,
85
+ 0x58c1663d , 0x558240e4 , 0x51435d53 , 0x251d3b9e , 0x21dc2629 ,
86
+ 0x2c9f00f0 , 0x285e1d47 , 0x36194d42 , 0x32d850f5 , 0x3f9b762c ,
87
+ 0x3b5a6b9b , 0x0315d626 , 0x07d4cb91 , 0x0a97ed48 , 0x0e56f0ff ,
88
+ 0x1011a0fa , 0x14d0bd4d , 0x19939b94 , 0x1d528623 , 0xf12f560e ,
89
+ 0xf5ee4bb9 , 0xf8ad6d60 , 0xfc6c70d7 , 0xe22b20d2 , 0xe6ea3d65 ,
90
+ 0xeba91bbc , 0xef68060b , 0xd727bbb6 , 0xd3e6a601 , 0xdea580d8 ,
91
+ 0xda649d6f , 0xc423cd6a , 0xc0e2d0dd , 0xcda1f604 , 0xc960ebb3 ,
92
+ 0xbd3e8d7e , 0xb9ff90c9 , 0xb4bcb610 , 0xb07daba7 , 0xae3afba2 ,
93
+ 0xaafbe615 , 0xa7b8c0cc , 0xa379dd7b , 0x9b3660c6 , 0x9ff77d71 ,
94
+ 0x92b45ba8 , 0x9675461f , 0x8832161a , 0x8cf30bad , 0x81b02d74 ,
95
+ 0x857130c3 , 0x5d8a9099 , 0x594b8d2e , 0x5408abf7 , 0x50c9b640 ,
96
+ 0x4e8ee645 , 0x4a4ffbf2 , 0x470cdd2b , 0x43cdc09c , 0x7b827d21 ,
97
+ 0x7f436096 , 0x7200464f , 0x76c15bf8 , 0x68860bfd , 0x6c47164a ,
98
+ 0x61043093 , 0x65c52d24 , 0x119b4be9 , 0x155a565e , 0x18197087 ,
99
+ 0x1cd86d30 , 0x029f3d35 , 0x065e2082 , 0x0b1d065b , 0x0fdc1bec ,
100
+ 0x3793a651 , 0x3352bbe6 , 0x3e119d3f , 0x3ad08088 , 0x2497d08d ,
101
+ 0x2056cd3a , 0x2d15ebe3 , 0x29d4f654 , 0xc5a92679 , 0xc1683bce ,
102
+ 0xcc2b1d17 , 0xc8ea00a0 , 0xd6ad50a5 , 0xd26c4d12 , 0xdf2f6bcb ,
103
+ 0xdbee767c , 0xe3a1cbc1 , 0xe760d676 , 0xea23f0af , 0xeee2ed18 ,
104
+ 0xf0a5bd1d , 0xf464a0aa , 0xf9278673 , 0xfde69bc4 , 0x89b8fd09 ,
105
+ 0x8d79e0be , 0x803ac667 , 0x84fbdbd0 , 0x9abc8bd5 , 0x9e7d9662 ,
106
+ 0x933eb0bb , 0x97ffad0c , 0xafb010b1 , 0xab710d06 , 0xa6322bdf ,
107
+ 0xa2f33668 , 0xbcb4666d , 0xb8757bda , 0xb5365d03 , 0xb1f740b4
108
108
};
109
109
110
110
/*
@@ -113,38 +113,38 @@ static const uint32_t crctab[] = {
113
113
* locations to store the crc and the number of bytes read. It returns 0 on
114
114
* success and 1 on failure. Errno is set on failure.
115
115
*/
116
- uint32_t crc_total = ~0 ; /* The crc over a number of files. */
116
+ uint32_t crc_total = ~0 ; /* The crc over a number of files. */
117
117
118
118
int
119
119
crc (int fd , uint32_t * cval , off_t * clen )
120
120
{
121
- uint32_t lcrc ;
122
- int nr ;
123
- off_t len ;
124
- u_char * p ;
125
- u_char buf [16 * 1024 ];
121
+ uint32_t lcrc ;
122
+ int nr ;
123
+ off_t len ;
124
+ u_char * p ;
125
+ u_char buf [16 * 1024 ];
126
126
127
- #define COMPUTE (var , ch ) (var) = (var) << 8 ^ crctab[(var) >> 24 ^ (ch)]
127
+ #define COMPUTE (var , ch ) (var) = (var) << 8 ^ crctab[(var) >> 24 ^ (ch)]
128
128
129
- lcrc = len = 0 ;
130
- crc_total = ~crc_total ;
131
- while ((nr = read (fd , buf , sizeof (buf ))) > 0 )
132
- for (len += nr , p = buf ; nr -- ; ++ p ) {
133
- COMPUTE (lcrc , * p );
134
- COMPUTE (crc_total , * p );
135
- }
136
- if (nr < 0 )
137
- return (1 );
129
+ lcrc = len = 0 ;
130
+ crc_total = ~crc_total ;
131
+ while ((nr = read (fd , buf , sizeof (buf ))) > 0 )
132
+ for (len += nr , p = buf ; nr -- ; ++ p ) {
133
+ COMPUTE (lcrc , * p );
134
+ COMPUTE (crc_total , * p );
135
+ }
136
+ if (nr < 0 )
137
+ return (1 );
138
138
139
- * clen = len ;
139
+ * clen = len ;
140
140
141
- /* Include the length of the file. */
142
- for (; len != 0 ; len >>= 8 ) {
143
- COMPUTE (lcrc , len & 0xff );
144
- COMPUTE (crc_total , len & 0xff );
145
- }
141
+ /* Include the length of the file. */
142
+ for (; len != 0 ; len >>= 8 ) {
143
+ COMPUTE (lcrc , len & 0xff );
144
+ COMPUTE (crc_total , len & 0xff );
145
+ }
146
146
147
- * cval = ~lcrc ;
148
- crc_total = ~crc_total ;
149
- return (0 );
147
+ * cval = ~lcrc ;
148
+ crc_total = ~crc_total ;
149
+ return (0 );
150
150
}
0 commit comments