Annotation of coherent/g/usr/lib/misc/crc16.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Tables for the table-driven CRC16 algorithm.
        !             3:  * This should be relatively uniform statistically.
        !             4:  */
        !             5: static unsigned short crctab1[] = {
        !             6:        0000000,        0140301,        0140601,        0000500,
        !             7:        0141401,        0001700,        0001200,        0141101,
        !             8:        0143001,        0003300,        0003600,        0143501,
        !             9:        0002400,        0142701,        0142201,        0002100
        !            10: };
        !            11: 
        !            12: static unsigned short crctab2[] = {
        !            13:        0000000,        0146001,        0154001,        0012000,
        !            14:        0170001,        0036000,        0024000,        0162001,
        !            15:        0120001,        0066000,        0074000,        0132001,
        !            16:        0050000,        0116001,        0104001,        0043000
        !            17: };
        !            18: 
        !            19: /*
        !            20:  * Read a string return the hash value computed using CRC-16 methods.
        !            21:  * usefull for various kinds of hashing including diff programs
        !            22:  * and symbol tables.
        !            23:  */
        !            24: unsigned short
        !            25: crc16(p)
        !            26: register char *p;
        !            27: {
        !            28:        register unsigned char tmp, c;
        !            29:        register unsigned short h;
        !            30: 
        !            31:        for (h = 0; c = *p; p++) {
        !            32:                tmp = c ^ h;
        !            33:                h = (h >> 8) ^ crctab1[tmp & 15] ^ crctab2[tmp >> 4];
        !            34:        }
        !            35:        return (h);
        !            36: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.