CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions
[xz.git] / debug / crc32.c
blobeed47939a8767902118f31c4f873ecc6cdddda3c
1 // SPDX-License-Identifier: 0BSD
3 ///////////////////////////////////////////////////////////////////////////////
4 //
5 /// \file crc32.c
6 /// \brief Primitive CRC32 calculation tool
7 //
8 // Author: Lasse Collin
9 //
10 ///////////////////////////////////////////////////////////////////////////////
12 #include "sysdefs.h"
13 #include "lzma.h"
14 #include <stdio.h>
17 int
18 main(void)
20 uint32_t crc = 0;
22 do {
23 uint8_t buf[BUFSIZ];
24 const size_t size = fread(buf, 1, sizeof(buf), stdin);
25 crc = lzma_crc32(buf, size, crc);
26 } while (!ferror(stdin) && !feof(stdin));
28 //printf("%08" PRIX32 "\n", crc);
30 // I want it little endian so it's easy to work with hex editor.
31 printf("%02" PRIX32 " ", crc & 0xFF);
32 printf("%02" PRIX32 " ", (crc >> 8) & 0xFF);
33 printf("%02" PRIX32 " ", (crc >> 16) & 0xFF);
34 printf("%02" PRIX32 " ", crc >> 24);
35 printf("\n");
37 return 0;