BAL and Maple Release 2.2
Signed-off-by: Shad Ansari <developer@Carbon.local>
diff --git a/bal_release/tools/copyright_tools/insert_copyright.pl b/bal_release/tools/copyright_tools/insert_copyright.pl
new file mode 100755
index 0000000..6f01d1a
--- /dev/null
+++ b/bal_release/tools/copyright_tools/insert_copyright.pl
@@ -0,0 +1,169 @@
+#!/usr/bin/perl
+###############################################################################
+#
+# Copyright 2015 Broadcom Corporation
+#
+# This program is the proprietary software of Broadcom Corporation
+# and/or its licensors, and may only be used, duplicated, modified or
+# distributed pursuant to the terms and conditions of a separate,
+# written license agreement executed between you and Broadcom (an
+# "Authorized License"). Except as set forth in an Authorized License,
+# Broadcom grants no license (express or implied), right to use, or
+# waiver of any kind with respect to the Software, and Broadcom
+# expressly reserves all rights in and to the Software and all
+# intellectual property rights therein. IF YOU HAVE NO AUTHORIZED
+# LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND
+# SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE
+# SOFTWARE.
+#
+# Except as expressly set forth in the Authorized License,
+#
+# 1. This program, including its structure, sequence and organization,
+# constitutes the valuable trade secrets of Broadcom, and you shall use
+# all reasonable efforts to protect the confidentiality thereof, and to
+# use this information only in connection with your use of Broadcom
+# integrated circuit products.
+#
+# 2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED
+# "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
+# REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR
+# OTHERWISE, WITH RESPECT TO THE SOFTWARE. BROADCOM SPECIFICALLY
+# DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
+# NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
+# ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
+# CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT
+# OF USE OR PERFORMANCE OF THE SOFTWARE.
+#
+# 3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM
+# OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+# INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY
+# RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF
+# BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii)
+# ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE
+# ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY
+# NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED
+# REMEDY.
+#
+###############################################################################
+#
+# Script: insert_copyright.pl
+#
+# Purpose: This script inserts a copyright header into the beginning
+# of a c/c++, shell script, and Makefiles.
+#
+# Usage: ./insert_copyright.pl -l <license file> [-t <type>] <source file>
+# Options:
+#
+# -l <file> Specifies the license/copyright file to be inserted into the file
+# -t <type> Specifies the type of copyright to insert...
+# 's' - shell script
+# 'm' - Makefile
+# 'c' - (default) c/c++ file
+#
+###############################################################################
+use Getopt::Long;
+my $licfile = "";
+my $srcfile = "";
+my $type = "";
+$result = GetOptions ("license_file=s" => \$licfile,
+ "type=s" => \$type);
+
+$srcfile = shift;
+
+## printf "$licfile, $type, $srcfile\n";
+
+sub InsertCfileCopyright
+{
+ my $lic = shift;
+ my $src = shift;
+
+ print "/******************************************************************************\n";
+ print " *\n";
+
+ open( LICF, "< $lic" ) or die "Can't open $lic : $!";
+ while( $line = <LICF> ) {
+ print " * $line";
+ }
+ close LICF;
+
+ print " *\n";
+ print " *****************************************************************************/\n";
+ print " \n";
+
+ if (length($srcfile) > 0) {
+ open( SRCF, "< $src" ) or die "Can't open $src : $!";
+ while( $line = <SRCF> ) {
+ print "$line";
+ }
+ close SRCF;
+ }
+}
+
+sub InsertMakefileCopyright
+{
+ my $lic = shift;
+ my $src = shift;
+
+ print "###############################################################################\n";
+ print "#\n";
+
+ open( LICF, "< $lic" ) or die "Can't open $lic : $!";
+ while( $line = <LICF> ) {
+ print "# $line";
+ }
+ close LICF;
+
+ print "#\n";
+ print "###############################################################################\n";
+
+ if (length($srcfile) > 0) {
+ open( SRCF, "< $src" ) or die "Can't open $src : $!";
+ while( $line = <SRCF> ) {
+ print "$line";
+ }
+ close SRCF;
+ }
+}
+
+sub InsertShCopyright
+{
+ my $lic = shift;
+ my $src = shift;
+
+ if (length($srcfile) > 0) {
+ open( SRCF, "< $src" ) or die "Can't open $src : $!";
+ $line = <SRCF>;
+ print "$line";
+ }
+
+ print "###############################################################################\n";
+ print "#\n";
+
+ open( LICF, "< $lic" ) or die "Can't open $lic : $!";
+ while( $line = <LICF> ) {
+ print "# $line";
+ }
+ close LICF;
+
+ print "#\n";
+ print "###############################################################################\n";
+
+ if (length($srcfile) > 0) {
+ while( $line = <SRCF> ) {
+ print "$line";
+ }
+ close SRCF;
+ }
+}
+
+if ($type eq "s") {
+ InsertShCopyright($licfile, $srcfile);
+} elsif ($type eq "m") {
+ InsertMakefileCopyright($licfile, $srcfile);
+} elsif ($type eq "c" || $type == "") {
+ InsertCfileCopyright($licfile, $srcfile);
+}
+
+exit;
+
+
diff --git a/bal_release/tools/copyright_tools/strip_c_copyright.pl b/bal_release/tools/copyright_tools/strip_c_copyright.pl
new file mode 100755
index 0000000..2464c58
--- /dev/null
+++ b/bal_release/tools/copyright_tools/strip_c_copyright.pl
@@ -0,0 +1,86 @@
+#!/usr/bin/perl
+###############################################################################
+#
+# Copyright 2008-2014 Broadcom Corporation
+#
+# This program is the proprietary software of Broadcom Corporation
+# and/or its licensors, and may only be used, duplicated, modified or
+# distributed pursuant to the terms and conditions of a separate,
+# written license agreement executed between you and Broadcom (an
+# "Authorized License"). Except as set forth in an Authorized License,
+# Broadcom grants no license (express or implied), right to use, or
+# waiver of any kind with respect to the Software, and Broadcom
+# expressly reserves all rights in and to the Software and all
+# intellectual property rights therein. IF YOU HAVE NO AUTHORIZED
+# LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND
+# SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE
+# SOFTWARE.
+#
+# Except as expressly set forth in the Authorized License,
+#
+# 1. This program, including its structure, sequence and organization,
+# constitutes the valuable trade secrets of Broadcom, and you shall use
+# all reasonable efforts to protect the confidentiality thereof, and to
+# use this information only in connection with your use of Broadcom
+# integrated circuit products.
+#
+# 2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED
+# "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
+# REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR
+# OTHERWISE, WITH RESPECT TO THE SOFTWARE. BROADCOM SPECIFICALLY
+# DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
+# NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
+# ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
+# CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT
+# OF USE OR PERFORMANCE OF THE SOFTWARE.
+#
+# 3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM
+# OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+# INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY
+# RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF
+# BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii)
+# ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE
+# ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY
+# NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED
+# REMEDY.
+#
+###############################################################################
+#
+# Script: strip_c_copyright.pl
+#
+# Purpose: This script removes a copyright header from a c/c++
+# file. The file is passed into the perl script via STDIN, so this
+# script must be used in conjunction with something like 'cat'.
+#
+# Usage: cat <file> | ./strip_c_copyright.pl
+#
+#
+# Previous attemps at c-style regular expressions...
+# s#(?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/).*\n##;
+# s#(?:\/\*.*Copyright\(c\)(?:[^*]|(?:\*+[^*\/]))*\*+\/).*\n|(?:\/\*(?:[^*]|(?:\*+[^*\/]))*Copyright\(c\)(?:[^*]|(?:\*+[^*\/]))*\*+\/).*\n##;
+# good => s#(?:\/\*.*Copyright(?:[^*]|(?:\*+[^*\/]))*\*+\/).*\n|(?:\/\*(?:[^*]|(?:\*+[^*\/]))*Copyright(?:[^*]|(?:\*+[^*\/]))*\*+\/).*\n##;
+# good => s#(?:\/\*.*Copyright(?:[^*]|(?:\*+[^*\/]))*\*+\/).*(?:\s)+|(?:\/\*(?:[^*]|(?:\*+[^*\/]))*Copyright(?:[^*]|(?:\*+[^*\/]))*\*+\/).*(?:\s)+##;
+#
+# The following regex can be used for removing redundant C++
+# copyright header from libssd files...
+#
+# s#\/\/\*+[^*]*Copyright[^*]*\/\/\*+#//****************************************************************************#;
+#
+###############################################################################
+
+$/ = undef;
+$_ = <>;
+
+#
+# The following regex handles the old Teknovus-style copyright headers
+#
+# e.g. "/* Copyright(c) 2008-2012 Broadcom, Corp. */"
+#
+#s#(?:\/\*.*Copyright(?:[^*]|(?:\*+[^*\/]))*\*+\/).*(?:\s)+##;
+
+#
+# The following regex handles the new Broadcom standard copyright headers
+#
+s#(?:\/\*(?:[^*]|(?:\*+[^*\/]))*Copyright(?:[^*]|(?:\*+[^*\/]))*\*+\/).*(?:\s)+##;
+print;
+
diff --git a/bal_release/tools/copyright_tools/strip_sh_copyright.pl b/bal_release/tools/copyright_tools/strip_sh_copyright.pl
new file mode 100755
index 0000000..82406b1
--- /dev/null
+++ b/bal_release/tools/copyright_tools/strip_sh_copyright.pl
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+###############################################################################
+#
+# Copyright 2008-2014 Broadcom Corporation
+#
+# This program is the proprietary software of Broadcom Corporation
+# and/or its licensors, and may only be used, duplicated, modified or
+# distributed pursuant to the terms and conditions of a separate,
+# written license agreement executed between you and Broadcom (an
+# "Authorized License"). Except as set forth in an Authorized License,
+# Broadcom grants no license (express or implied), right to use, or
+# waiver of any kind with respect to the Software, and Broadcom
+# expressly reserves all rights in and to the Software and all
+# intellectual property rights therein. IF YOU HAVE NO AUTHORIZED
+# LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND
+# SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE
+# SOFTWARE.
+#
+# Except as expressly set forth in the Authorized License,
+#
+# 1. This program, including its structure, sequence and organization,
+# constitutes the valuable trade secrets of Broadcom, and you shall use
+# all reasonable efforts to protect the confidentiality thereof, and to
+# use this information only in connection with your use of Broadcom
+# integrated circuit products.
+#
+# 2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED
+# "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
+# REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR
+# OTHERWISE, WITH RESPECT TO THE SOFTWARE. BROADCOM SPECIFICALLY
+# DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
+# NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
+# ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
+# CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT
+# OF USE OR PERFORMANCE OF THE SOFTWARE.
+#
+# 3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM
+# OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+# INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY
+# RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF
+# BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii)
+# ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE
+# ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY
+# NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED
+# REMEDY.
+#
+###############################################################################
+#
+# Script: strip_sh_copyright.pl
+#
+# Purpose: This script removes a copyright header from a shell script
+# file or Makefile. The file is passed into the perl script via
+# STDIN, so this script must be used in conjunction with something
+# like 'cat'.
+#
+# Usage: cat <file> | ./strip_sh_copyright.pl
+#
+###############################################################################
+
+$/ = undef;
+$_ = <>;
+s/##+(?:[^#]|(?:#[^#])*)*Copyright(?:[^#]|(?:#[^#])*)*##+\n//g;
+print;
diff --git a/bal_release/tools/copyright_tools/update_copyright.sh b/bal_release/tools/copyright_tools/update_copyright.sh
new file mode 100755
index 0000000..15f414d
--- /dev/null
+++ b/bal_release/tools/copyright_tools/update_copyright.sh
@@ -0,0 +1,221 @@
+#!/bin/sh
+###############################################################################
+#
+# <:copyright-BRCM:2016:proprietary:standard
+#
+# Broadcom Ltd. Proprietary and Confidential.(c) 2016 Broadcom Ltd.
+# All Rights Reserved
+#
+# This program is the proprietary software of Broadcom Ltd. and/or its
+# licensors, and may only be used, duplicated, modified or distributed pursuant
+# to the terms and conditions of a separate, written license agreement executed
+# between you and Broadcom Ltd. (an "Authorized License"). Except as set forth in
+# an Authorized License, Broadcom Ltd. grants no license (express or implied), right
+# to use, or waiver of any kind with respect to the Software, and Broadcom Ltd.
+# expressly reserves all rights in and to the Software and all intellectual
+# property rights therein. IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+# NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+# BROADCOM LTD AND DISCONTINUE ALL USE OF THE SOFTWARE.
+#
+# Except as expressly set forth in the Authorized License,
+#
+# 1. This program, including its structure, sequence and organization,
+# constitutes the valuable trade secrets of Broadcom Ltd., and you shall use
+# all reasonable efforts to protect the confidentiality thereof, and to
+# use this information only in connection with your use of Broadcom Ltd.
+# integrated circuit products.
+#
+# 2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+# AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+# WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+# RESPECT TO THE SOFTWARE. BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+# ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+# FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+# COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+# TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+# PERFORMANCE OF THE SOFTWARE.
+#
+# 3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+# ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+# INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+# WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+# IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+# OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+# SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+# SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+# LIMITED REMEDY.
+# :>
+#
+###############################################################################
+#
+# Script: update_copyright.sh
+#
+# Purpose: This script updates the copyright comment headers in
+# c/c++, shell script, and Makefiles. Depending on the options
+# specified below, this script will also automatically create a
+# Perforce changelist and checkout the files before updating the
+# copyright headers.
+#
+# Usage: ./update_copyright.sh [-c chglist num|"none"] <files>
+# Options:
+#
+# -c num|"none" If -c is specified with a Perforce changelist
+# number, then files that are updated by this
+# script will be put into the specified changelist.
+#
+# If '-c none' is specified, the script will not
+# execute any Perforce commands before updating the
+# copyright in files. The user is expected to checkout
+# the files prior to excuting this script.
+#
+# If -c is not specified (default), a new change list
+# is created and all updated files are put into the new
+# change list.
+#
+#
+# This script makes use of the following perl scripts:
+# strip_c_copyright.pl - Strips a copyright header from a c/c++ file.
+# strip_sh_copyright.pl - Strips a copyright header from a Makefile or shell
+# script.
+# insert_copyright.pl - Inserts a copyright header into a c/c++, shell script,
+# or Makefile file.
+#
+#
+# --------------------------
+# Copyright Update Procedure
+# --------------------------
+#
+# The following procedure should be used to update the copyright information.
+#
+# 1) find . -regextype egrep -regex '.*\.c|.*\.h|.*\.cpp|.*Makefile|.*Makefile\.sdk|.*\.mk|.*\.sh' | xargs $PROJROOT/tools/copyright_tools/update_copyright.sh
+#
+# To exlude a directory from the search, use the following command
+#
+# 1a) find . -path ./3rdparty -prune -o -regextype egrep -regex '.*\.c|.*\.h|.*\.cpp|.*Makefile|.*Makefile\.sdk|.*\.mk|.*\.sh' | xargs $PROJROOT/tools/copyright_tools/update_copyright.sh
+#
+# 2) Update the "Copyright (c)" statement in the debug CLI (./lib/libdbg/dbgCli.c)
+# - Note: newer versions of the script may already handle this automatically.
+#
+# 3) Update the following files by hand because they do not follow
+# the standard source file naming conventions:
+# - bal/cur/3rdparty/indigo/indigo/modules/ofpal_driver/module/src/ofpal_driver.c
+# - bal/cur/3rdparty/indigo/indigo/modules/ofpal-driver/utest/main.c
+# - bal/cur/doxygen/Makefile
+#
+# Also, you can use the following command to find additional straglers...
+#
+# find . | xargs grep 2013
+#
+# (Optional) Use the following procedure to verify the changes.
+#
+# a) Use p4 to build a list of files that are being modified by this CL.
+#
+# p4 describe <CL from step1> | grep '^\.\.\.' | awk '{print $2}' | sed 's%//SystemSoftware/Rel/pioneer/dml/%%g' | sed 's%\#.$%%g' > p4_changes_files.txt
+#
+# b) Add the following bash script to a file called temp.sh and
+# add execute permissions to the file.
+#
+# #!/bin/sh
+# #
+# while read -r line; do
+# echo "$line: "`p4 diff -ds $line | grep changed`
+# done < p4_changes_files.txt
+#
+# c) Run the script
+#
+# ./temp.sh | tee p4_diffs.txt
+#
+# d) Check the scripe for unusual/unexpected changes and use 'p4 diff file'
+# to investigate.
+#
+# cat p4_diffs.txt | grep -v "changed 1 chunks 1 / 1 lines" | tee t1.txt
+#
+#
+###############################################################################
+
+COPYRIGHT_FILE=${PROJROOT}/COPYRIGHT
+P4_CHANGELIST_DESC="Copyright Header Update - "`date`
+
+if [ "$1" = "-c" ]
+ then
+ P4_CHANGELIST_NUM="$2"
+
+ if [ "$P4_CHANGELIST_NUM" = "" ]
+ then
+ echo "ERROR: must specify 'none' or P4 change list number for the '-c' option."
+ exit 1
+ elif [ "$P4_CHANGELIST_NUM" = "none" ]
+ then
+ echo "NOTE: Perforce commands will be skipped"
+ else
+ echo "Using existing change list $P4_CHANGELIST_NUM"
+ fi
+ shift ; shift
+else
+ P4_CHANGELIST_NUM=`echo -e "Change: new\nDescription: ${P4_CHANGELIST_DESC}" | p4 change -i | cut -d " " -f 2`
+ echo "Created change list $P4_CHANGELIST_NUM"
+fi
+
+for path in "$@"
+do
+ file=`basename $path`
+
+ file_ext="${file#*.}"
+
+ # Only checkout files from perforce is an existing or new change list was specified
+ if [ "$P4_CHANGELIST_NUM" != "none" ]
+ then
+
+ # Only update text files
+ p4_file_type=`p4 fstat $path | grep headType | cut -d " " -f 3 | grep -o text`
+ if [ "$p4_file_type" != "text" ]
+ then
+ echo "WARNING: skipping file '$path' because it it not a text file."
+ continue ### resumes iteration of an enclosing for loop ###
+ fi
+
+ # Open the file for editing
+ p4 opened $path 2>&1 | grep -q "not opened"
+ if [ $? != 0 ]
+ then
+ echo "WARNING: file '$path' is already opened for edit..."
+ else
+ p4 edit -c $P4_CHANGELIST_NUM $path &>/dev/null
+ fi
+ fi
+
+ # Update the Copyright based on file type
+ if [ "$file_ext" == "c" ] || [ "$file_ext" == "h" ] || [ "$file_ext" == "cpp" ]
+ then
+ #
+ # C/C++ files
+ #
+ echo -ne "Updating '$file', type = c/c++ ... "
+ cat $path | perl ${PROJROOT}/tools/copyright_tools/strip_c_copyright.pl > $path"_crtemp";
+ perl ${PROJROOT}/tools/copyright_tools/insert_copyright.pl -t c -l ${COPYRIGHT_FILE} $path"_crtemp" > $path;
+ rm $path"_crtemp"
+ echo "done."
+ elif [ "$file_ext" == "sh" ]
+ then
+ #
+ # Shell script files
+ #
+ echo -ne "Updating '$file', type = shell script ... "
+ cat $path | perl ${PROJROOT}/tools/copyright_tools/strip_sh_copyright.pl > $path"_crtemp";
+ perl ${PROJROOT}/tools/copyright_tools/insert_copyright.pl -t s -l ${COPYRIGHT_FILE} $path"_crtemp" > $path;
+ rm $path"_crtemp"
+ echo "done."
+ elif [ "$file" == "Makefile" ] || [ "$file" == "Makefile.sdk" ] || [ "$file_ext" == "mk" ]
+ then
+ #
+ # Makefiles
+ #
+ echo -ne "Updating '$file', type = Makefile ... "
+ cat $path | perl ${PROJROOT}/tools/copyright_tools/strip_sh_copyright.pl > $path"_crtemp";
+ perl ${PROJROOT}/tools/copyright_tools/insert_copyright.pl -t m -l ${COPYRIGHT_FILE} $path"_crtemp" > $path;
+ rm $path"_crtemp"
+ echo "done."
+ else
+ echo "Skipping $file, type = unknown type"
+ fi
+done
\ No newline at end of file