BAL and Maple Release 2.2

Signed-off-by: Shad Ansari <developer@Carbon.local>
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