summaryrefslogtreecommitdiff
path: root/include/lib.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/lib.sh')
-rw-r--r--include/lib.sh36
1 files changed, 25 insertions, 11 deletions
diff --git a/include/lib.sh b/include/lib.sh
index 7c4d71ea..6fc3bd1e 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -4,8 +4,8 @@
# Copyright (c) 2020-2025 Leah Rowe <leah@libreboot.org>
# Copyright (c) 2025 Alper Nebi Yasak <alpernebiyasak@gmail.com>
-cbfstool="elf/cbfstool/default/cbfstool"
-rmodtool="elf/cbfstool/default/rmodtool"
+cbfstool="elf/coreboot/default/cbfstool"
+rmodtool="elf/coreboot/default/rmodtool"
remkdir()
{
@@ -53,12 +53,10 @@ setvars()
fi
val="$1"
shift 1
- while true; do
- [ $# -lt 1 ] && break
- _setvars="$1=\"$val\"; $_setvars"
+ while [ $# -gt 0 ]; do
+ printf "%s=\"%s\"\n" "$1" "$val"
shift 1
done
- printf "%s\n" "${_setvars% }"
}
setcfg()
@@ -71,11 +69,9 @@ setcfg()
chkvars()
{
- while true; do
- [ $# -lt 1 ] && break
+ while [ $# -gt 0 ]; do
eval "[ -n \"\${$1+x}\" ] || err \"$1 unset\""
- eval "[ -n \"\$$1\" ] || err \"$1 unset\""
- shift 1
+ eval "[ -n \"\$$1\" ] || err \"$1 unset\"; shift 1; :"
done; :
}
@@ -99,12 +95,30 @@ findpath()
done
}
+pad_one_byte()
+{
+ paddedfile="`mktemp`" || err "mktemp pad_one_byte"
+ x_ cp "$1" "$paddedfile"
+ cat "$paddedfile" config/data/coreboot/0 > "$1" || err "!pad $1"; :
+ x_ rm "$paddedfile"
+}
+
+unpad_one_byte()
+{
+ xromsize="$(expr $(stat -c '%s' "$1") - 1)" || err "!int"
+ [ $xromsize -lt 524288 ] && err "too small, $xromsize: $1"
+
+ unpaddedfile="`mktemp`" || err "mktemp unpad_one_byte"
+ x_ dd if="$1" of="$unpaddedfile" bs=$xromsize count=1
+ x_ mv "$unpaddedfile" "$1"
+}
+
fx_()
{
fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd"
xx="$1" && shift 1
"$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || err "FATAL: !sort fx_"
- dx_ "$xx" "$fd" || break
+ dx_ "$xx" "$fd" || :
x_ rm -f "$fd"
}