On systems where the IASL tool exists, we can convert extected ACPI tables to ASL format, which is useful for debugging and documentation purposes. This script does this for all ACPI tables under tests/data/acpi/. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
53 lines
1 KiB
Bash
Executable file
53 lines
1 KiB
Bash
Executable file
#!/usr/bin/bash
|
|
|
|
outdir=
|
|
while getopts "o:" arg; do
|
|
case ${arg} in
|
|
o )
|
|
outdir=$OPTARG
|
|
;;
|
|
\? )
|
|
echo "Usage: ./tests/data/acpi/disassemle-aml.sh [-o <output-directory>]"
|
|
exit 1
|
|
;;
|
|
|
|
esac
|
|
done
|
|
|
|
for machine in tests/data/acpi/*
|
|
do
|
|
if [[ ! -d "$machine" ]];
|
|
then
|
|
continue
|
|
fi
|
|
|
|
if [[ "${outdir}" ]];
|
|
then
|
|
mkdir -p "${outdir}"/${machine} || exit $?
|
|
fi
|
|
for aml in $machine/*
|
|
do
|
|
if [[ "$aml" == $machine/*.dsl ]];
|
|
then
|
|
continue
|
|
fi
|
|
if [[ "$aml" == $machine/SSDT*.* ]];
|
|
then
|
|
dsdt=${aml/SSDT*./DSDT.}
|
|
extra="-e ${dsdt}"
|
|
elif [[ "$aml" == $machine/SSDT* ]];
|
|
then
|
|
dsdt=${aml/SSDT*/DSDT};
|
|
extra="-e ${dsdt}"
|
|
else
|
|
extra=""
|
|
fi
|
|
asl=${aml}.dsl
|
|
if [[ "${outdir}" ]];
|
|
then
|
|
asl="${outdir}"/${machine}/${asl}
|
|
fi
|
|
iasl -d -p ${asl} ${extra} ${aml}
|
|
done
|
|
done
|