5

Remote Start Via the PCI Bus

Reference Function: srom_crc.c

/*

*srom_crc - generate CRC data for the passed buffer

*description:

*This function’s purpose is to generate the CRC for thepassed buffer.

* call:

*argument #1 = buffer pointer *argument #2 = number of elements

*return: *CRC data */

unsigned int

srom_crc(elements_p, elements_n)

register unsigned char *elements_p;/* buffer pointer */ register unsigned int elements_n;/* number of elements */

{

register unsigned int crc; register unsigned int crc_flipped; register unsigned char cbyte; register unsigned int index, dbit, msb;

crc = 0xffffffff;

for (index = 0; index < elements_n; index++) { cbyte = *elements_p++;

for (dbit = 0; dbit < 8; dbit++) { msb = (crc >> 31) & 1;

crc <<= 1;

if (msb ^ (cbyte & 1)) {

crc ^= 0x04c11db6; crc = 1;

}

cbyte >>= 1;

}

}

crc_flipped = 0;

for (index = 0; index < 32; index++) {

5-12

Computer Group Literature Center Web Site

Page 102
Image 102
Motorola MCPN750A, IH5 manual Reference Function sromcrc.c, Return *CRC data Unsigned int Sromcrcelementsp, elementsn