carl9170: Update to latest upstream
[linux-libre-firmware.git] / ath9k_htc / target_firmware / firmware-crc.pl
1 #!/usr/bin/env perl
2 ##
3  # Copyright (c) 2013 Qualcomm Atheros, Inc.
4  #
5  # All rights reserved.
6  #
7  # Redistribution and use in source and binary forms, with or without
8  # modification, are permitted (subject to the limitations in the
9  # disclaimer below) provided that the following conditions are met:
10  #
11  #  * Redistributions of source code must retain the above copyright
12  #    notice, this list of conditions and the following disclaimer.
13  #
14  #  * Redistributions in binary form must reproduce the above copyright
15  #    notice, this list of conditions and the following disclaimer in the
16  #    documentation and/or other materials provided with the
17  #    distribution.
18  #
19  #  * Neither the name of Qualcomm Atheros nor the names of its
20  #    contributors may be used to endorse or promote products derived
21  #    from this software without specific prior written permission.
22  #
23  # NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
24  # GRANTED BY THIS LICENSE.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
25  # HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
26  # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
27  # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28  # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29  # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30  # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31  # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
32  # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
33  # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
34  # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
35  # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  ##
37
38 use strict;
39 my $crc = 0;
40 my $bytes;
41 my $buf;
42 while (($bytes = read(STDIN, $buf, 4)) == 4) {
43         print $buf;
44         my $v = unpack("N", $buf);
45         $crc = $crc ^ $v;
46 }
47 print pack("N", $crc);