6 u32int xor = -1, init, poly = 0xedb88320;
15 for(n = 0; n < 256; n++){
17 for(k = 0; k < 8; k++)
27 calc(u32int init, uchar *buf, ulong len)
33 c = table[(*buf++ ^ c) & 0xff] ^ c >> 8;
38 sum(int fd, char *name)
45 while((n = read(fd, buf, sizeof buf)) > 0)
46 crc = calc(crc, buf, n);
48 fprint(2, "reading %s: %r\n", name ? name : "stdin");
56 print("%ux\t%s\n", crc, name);
62 fprint(2, "usage: %s [-x xorval] [-i initial] [-p poly] [file...]\n", argv0);
67 main(int argc, char *argv[])
73 xor = strtol(EARGF(usage()), 0, 0);
76 init = strtol(EARGF(usage()), 0, 0);
79 poly = strtol(EARGF(usage()), 0, 0);
88 else for(i = 0; i < argc; i++){
89 fd = open(argv[i], OREAD);
91 fprint(2, "crc32: can't open %s: %r\n", argv[i]);