--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools/romtools/rombuild/fcw.pl Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,84 @@
+#
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# fcw.pl - compare two files as 32-bit words
+#
+
+use strict;
+
+if (@ARGV!=2)
+ {
+#........1.........2.........3.........4.........5.........6.........7.....
+ print <<USAGE_EOF;
+
+Usage:
+ fcw file1 file2 -- compare two files
+
+USAGE_EOF
+ exit 1;
+ }
+
+my $left=@ARGV[0];
+my $right=@ARGV[1];
+
+open LEFT, $left or problem("Cannot open $left") and return;
+open RIGHT, $right or problem("Cannot open $right") and return;
+
+binmode LEFT;
+binmode RIGHT;
+
+if (compare_streams())
+ {
+ print "Files are identical\n";
+ }
+
+sub compare_streams
+ {
+ my $same = 1;
+ my $offset = 0;
+ my $leftbuf;
+ my $rightbuf;
+
+ BINARY_COMPARISON: while (1)
+ {
+ my $leftlen = read LEFT, $leftbuf, 4096;
+ my $rightlen= read RIGHT, $rightbuf, 4096;
+ if ($rightlen == 0 && $leftlen == 0)
+ {
+ return $same;
+ }
+ if ($leftbuf eq $rightbuf)
+ {
+ $offset += $leftlen;
+ }
+ else
+ {
+ my @leftwords = unpack "V*", $leftbuf;
+ my @rightwords = unpack "V*", $rightbuf;
+ foreach $_ (@leftwords)
+ {
+ if ($_ != @rightwords[0])
+ {
+ printf "%06x: %08x != %08x\n", $offset, $_, @rightwords[0];
+ }
+ shift @rightwords;
+ $offset+=4;
+ }
+ $same=0;
+ }
+ }
+ }
+
+
+