From c1388a2deb00b65ee4a06c0a1d4c461f2194ef38 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Sat, 28 Sep 2019 15:12:55 +0200 Subject: base-files: move xor() from caldata extraction to functions.sh The xor() function is defined in each of the caldata extraction scripts for several targets. Move it to functions.sh to reduce duplicate code. Signed-off-by: Adrian Schmutzler --- package/base-files/files/lib/functions.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'package/base-files') diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index 860fc04510..81176431d1 100755 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -17,6 +17,22 @@ NO_EXPORT=1 LOAD_STATE=1 LIST_SEP=" " +# xor multiple hex values of the same length +xor() { + local val + local ret="0x$1" + local retlen=${#1} + + shift + while [ -n "$1" ]; do + val="0x$1" + ret=$((ret ^ val)) + shift + done + + printf "%0${retlen}x" "$ret" +} + append() { local var="$1" local value="$2" -- cgit v1.2.3