From 76d4d6b2bafada7b790e817b7324d53f3d3a0c7f Mon Sep 17 00:00:00 2001 From: David Timber Date: Thu, 20 Aug 2020 12:23:35 +0930 Subject: Progress ... * Move DVault out of executable. Dynamically load it on startup * Improved testing scheme * Tidy up prne_*assert* macro series * Protocol: store host credentials in base64 string. No mask * Use the lock shm as a shared_global so the stats can persist * mmap() the executable read-only for later use --- src/build-utils.sh | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 src/build-utils.sh (limited to 'src/build-utils.sh') diff --git a/src/build-utils.sh b/src/build-utils.sh new file mode 100755 index 0000000..77ca1e0 --- /dev/null +++ b/src/build-utils.sh @@ -0,0 +1,69 @@ +#!/bin/bash +cmd_align-size () { + local aligned + + if [ $# -lt 2 ]; then + echo "Usage: $0 " >&2 + return 2 + fi + + let "aligned = $2 % $1" + if [ $aligned -eq 0 ]; then + aligned=$2 + else + let "aligned = ($2 / $1 + 1) * $1" + fi + + echo $aligned + + return 0 +} + +cmd_align-file () { + if [ $# -lt 2 ]; then + echo "Usage: $0 " >&2 + return 2 + fi + + truncate -s $("$SELF" align-size "$1" $(stat -c "%s" $2)) "$2" +} + +cmd_append-uint32 () { + local a b c d + + if [ $# -lt 2 ]; then + echo "Usage: $0 " >&2 + return 2 + fi + + let "a = ($1 & 0xFF000000) >> 24" + let "b = ($1 & 0x00FF0000) >> 16" + let "c = ($1 & 0x0000FF00) >> 8" + let "d = ($1 & 0x000000FF) >> 0" + a=$(printf "%X" $a) + b=$(printf "%X" $b) + c=$(printf "%X" $c) + d=$(printf "%X" $d) + printf "\\x$a\\x$b\\x$c\\x$d" >> "$2" +} + +cmd_append-uint16 () { + local a b + + if [ $# -lt 2 ]; then + echo "Usage: $0 " >&2 + return 2 + fi + + let "a = ($1 & 0xFF00) >> 8" + let "b = ($1 & 0x00FF) >> 0" + a=$(printf "%X" $a) + b=$(printf "%X" $b) + printf "\\x$a\\x$b" >> "$2" +} + +SELF="$0" +cmd="$1" +shift 1 + +"cmd_$cmd" $@ -- cgit