FreeCalypso > hg > freecalypso-sw
view stashaway/mkcrc32tab.c @ 867:c4da570dca83
int_osx_receive_prim() in gsm-fw/gpf/osx/osx.c: there was an error in the
reconstruction of this function from disassembly in the logic that implements
special handling for MPHC_RXLEV_REQ messages.
The code is now fixed to properly match what the binary object version does;
with this fix the firmware now performs the power measurement phase correctly
and the initial network registration succeeds.
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sat, 16 May 2015 06:34:09 +0000 |
parents | 8fbd52a639a5 |
children |
line wrap: on
line source
/* * This program generates the CRC-32 table for the LSB-first direction. * Derived from the MSB-first version written years earlier by the * same author (Michael Spacefalcon) for SDSL/ATM AAL5. */ #include <sys/types.h> #include <stdio.h> u_long table[256]; main(argc, argv) char **argv; { build_table(); emit_table(); exit(0); } u_long crc_byte(crc, inb) u_long crc; int inb; { register int bit; crc ^= inb & 0xFF; for (bit = 0; bit < 8; bit++) { if (crc & 1) crc = (crc >> 1) ^ 0xEDB88320; else crc >>= 1; } return(crc); } build_table() { int i; for (i = 0; i < 256; i++) table[i] = crc_byte(0, i); } emit_table() { int i, j, idx; printf("unsigned long crc32_table[256] = {\n"); for (i = 0, idx = 0; i < 64; i++) { putchar('\t'); for (j = 0; j < 4; j++, idx++) printf("0x%08X,%c", table[idx], j==3 ? '\n' : ' '); } printf("};\n"); }