|
@@ -46,23 +46,23 @@ static u_int32_t CRCTable[CRC_TABLE_ENTRIES];
|
|
|
static void
|
|
|
genCrcTable (u_int32_t *CRCTable)
|
|
|
{
|
|
|
- int ii, jj;
|
|
|
- u_int32_t crc;
|
|
|
-
|
|
|
- for (ii = 0; ii < CRC_TABLE_ENTRIES; ii++)
|
|
|
- {
|
|
|
- crc = ii;
|
|
|
- for (jj = 8; jj > 0; jj--)
|
|
|
- {
|
|
|
- if (crc & 1)
|
|
|
- crc = (crc >> 1) ^ CRC32_POLYNOMIAL;
|
|
|
- else
|
|
|
- crc >>= 1;
|
|
|
- }
|
|
|
- CRCTable[ii] = crc;
|
|
|
- }
|
|
|
-
|
|
|
- crcTableInit++;
|
|
|
+ int ii, jj;
|
|
|
+ u_int32_t crc;
|
|
|
+
|
|
|
+ for (ii = 0; ii < CRC_TABLE_ENTRIES; ii++)
|
|
|
+ {
|
|
|
+ crc = ii;
|
|
|
+ for (jj = 8; jj > 0; jj--)
|
|
|
+ {
|
|
|
+ if (crc & 1)
|
|
|
+ crc = (crc >> 1) ^ CRC32_POLYNOMIAL;
|
|
|
+ else
|
|
|
+ crc >>= 1;
|
|
|
+ }
|
|
|
+ CRCTable[ii] = crc;
|
|
|
+ }
|
|
|
+
|
|
|
+ crcTableInit++;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -86,51 +86,51 @@ genCrcTable (u_int32_t *CRCTable)
|
|
|
|
|
|
void
|
|
|
sbeCrc (u_int8_t *buffer, /* data buffer to crc */
|
|
|
- u_int32_t count, /* length of block in bytes */
|
|
|
- u_int32_t initialCrc, /* starting CRC */
|
|
|
- u_int32_t *result)
|
|
|
+ u_int32_t count, /* length of block in bytes */
|
|
|
+ u_int32_t initialCrc, /* starting CRC */
|
|
|
+ u_int32_t *result)
|
|
|
{
|
|
|
- u_int32_t *tbl = 0;
|
|
|
- u_int32_t temp1, temp2, crc;
|
|
|
-
|
|
|
- /*
|
|
|
- * if table not yet created, do so. Don't care about "extra" time
|
|
|
- * checking this every time sbeCrc() is called, since CRC calculations are
|
|
|
- * already time consuming
|
|
|
- */
|
|
|
- if (!crcTableInit)
|
|
|
- {
|
|
|
+ u_int32_t *tbl = 0;
|
|
|
+ u_int32_t temp1, temp2, crc;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * if table not yet created, do so. Don't care about "extra" time
|
|
|
+ * checking this every time sbeCrc() is called, since CRC calculations
|
|
|
+ * are already time consuming
|
|
|
+ */
|
|
|
+ if (!crcTableInit)
|
|
|
+ {
|
|
|
#ifdef STATIC_CRC_TABLE
|
|
|
- tbl = &CRCTable;
|
|
|
- genCrcTable (tbl);
|
|
|
+ tbl = &CRCTable;
|
|
|
+ genCrcTable (tbl);
|
|
|
#else
|
|
|
- tbl = (u_int32_t *) OS_kmalloc (CRC_TABLE_ENTRIES * sizeof (u_int32_t));
|
|
|
- if (tbl == 0)
|
|
|
- {
|
|
|
- *result = 0; /* dummy up return value due to malloc
|
|
|
- * failure */
|
|
|
- return;
|
|
|
- }
|
|
|
- genCrcTable (tbl);
|
|
|
+ tbl = (u_int32_t *) OS_kmalloc (CRC_TABLE_ENTRIES * sizeof (u_int32_t));
|
|
|
+ if (tbl == 0)
|
|
|
+ {
|
|
|
+ *result = 0; /* dummy up return value due to malloc
|
|
|
+ * failure */
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ genCrcTable (tbl);
|
|
|
#endif
|
|
|
- }
|
|
|
- /* inverting bits makes ZMODEM & PKZIP compatible */
|
|
|
- crc = initialCrc ^ 0xFFFFFFFFL;
|
|
|
+ }
|
|
|
+ /* inverting bits makes ZMODEM & PKZIP compatible */
|
|
|
+ crc = initialCrc ^ 0xFFFFFFFFL;
|
|
|
|
|
|
- while (count-- != 0)
|
|
|
- {
|
|
|
- temp1 = (crc >> 8) & 0x00FFFFFFL;
|
|
|
- temp2 = tbl[((int) crc ^ *buffer++) & 0xff];
|
|
|
- crc = temp1 ^ temp2;
|
|
|
- }
|
|
|
+ while (count-- != 0)
|
|
|
+ {
|
|
|
+ temp1 = (crc >> 8) & 0x00FFFFFFL;
|
|
|
+ temp2 = tbl[((int) crc ^ *buffer++) & 0xff];
|
|
|
+ crc = temp1 ^ temp2;
|
|
|
+ }
|
|
|
|
|
|
- crc ^= 0xFFFFFFFFL;
|
|
|
+ crc ^= 0xFFFFFFFFL;
|
|
|
|
|
|
- *result = crc;
|
|
|
+ *result = crc;
|
|
|
|
|
|
#ifndef STATIC_CRC_TABLE
|
|
|
- crcTableInit = 0;
|
|
|
- OS_kfree (tbl);
|
|
|
+ crcTableInit = 0;
|
|
|
+ OS_kfree (tbl);
|
|
|
#endif
|
|
|
}
|
|
|
|