diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-01-18 14:01:04 +0200 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-01-18 14:04:15 +0200 |
commit | c842430437cbf2e584994c8eba71bf29bab6cdfc (patch) | |
tree | 74db9d2fd6d711ccffe104386ddab9055fc38f14 /ubi-utils/scripts/ubicrc32.pl | |
parent | 5d048c343fa24e33741ee4e921650f77ab510f81 (diff) |
ubi-utils: move various stuff to sort-me-out
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'ubi-utils/scripts/ubicrc32.pl')
-rw-r--r-- | ubi-utils/scripts/ubicrc32.pl | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/ubi-utils/scripts/ubicrc32.pl b/ubi-utils/scripts/ubicrc32.pl deleted file mode 100644 index 92711cb..0000000 --- a/ubi-utils/scripts/ubicrc32.pl +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/perl -w - -# Subroutine crc32(): Calculates the CRC on a given string. - -{ - my @table = (); - - # @brief Calculate CRC32 for a given string. - sub crc32 - { - unless (@table) { - # Initialize the CRC table - my $poly = 0xEDB88320; - @table = (); - - for my $i (0..255) { - my $c = $i; - - for my $j (0..7) { - $c = ($c & 1) ? (($c >> 1) ^ $poly) : ($c >> 1); - } - $table[$i] = $c; - } - } - my $s = shift; # string to calculate the CRC for - my $crc = shift; # CRC start value - - defined($crc) - or $crc = 0xffffffff; # Default CRC start value - - for (my $i = 0; $i < length($s); $i++) { - $crc = $table[($crc ^ ord(substr($s, $i, 1))) & 0xff] - ^ ($crc >> 8); - } - return $crc; - } -} - -sub crc32_on_file -{ - my $file = shift; - - my $crc32 = crc32(''); - my $buf = ''; - my $ret = 0; - - while ($ret = read($file, $buf, 8192)) { - $crc32 = crc32($buf, $crc32); - } - defined($ret) - or return undef; - printf("0x%x\n", $crc32); -} - - -# Main routine: Calculate the CRCs on the given files and print the -# results. - -{ - if (@ARGV) { - while (my $path = shift) { - my $file; - open $file, "<", $path - or die "Error opening '$path'.\n"; - - &crc32_on_file($file) - or die "Error reading from '$path'.\n"; - close $file; - } - } else { - &crc32_on_file(\*STDIN) - or die "Error reading from stdin.\n"; - } -} |