|
|
1.1 ! root 1: ! 2: #include "sysconfig.h" ! 3: #include "sysdeps.h" ! 4: ! 5: static unsigned long crc_table[256]; ! 6: static void make_crc_table() ! 7: { ! 8: unsigned long c; ! 9: int n, k; ! 10: for (n = 0; n < 256; n++) ! 11: { ! 12: c = (unsigned long)n; ! 13: for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320 : 0); ! 14: crc_table[n] = c; ! 15: } ! 16: } ! 17: uae_u32 get_crc32 (uae_u8 *buf, int len) ! 18: { ! 19: uae_u32 crc; ! 20: if (!crc_table[1]) ! 21: make_crc_table(); ! 22: crc = 0xffffffff; ! 23: while (len-- > 0) { ! 24: crc = crc_table[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8); ! 25: } ! 26: return crc ^ 0xffffffff; ! 27: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.