![Markus Armbruster](/assets/img/avatar_default.png)
We have code for a quite a few block formats. While I trust that all of these formats are useful at least for some people in some circumstances, some of them are of a kind that friends don't let friends use in production. This patch provides an optional block format whitelist, default off. If a whitelist is configured with --block-drv-whitelist, QEMU proper can use only whitelisted formats. Other programs, like qemu-img, are not affected. Drivers for formats off the whitelist still participate in format probing, to ensure all programs probe exactly the same. Without that, QEMU proper would be prone to treat images with a format off the whitelist as raw when the image's format is probed. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
100 lines
2.1 KiB
Bash
Executable file
100 lines
2.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
echo "/* Automatically generated by create_config - do not modify */"
|
|
|
|
while read line; do
|
|
|
|
case $line in
|
|
VERSION=*) # configuration
|
|
version=${line#*=}
|
|
echo "#define QEMU_VERSION \"$version\""
|
|
;;
|
|
PKGVERSION=*) # configuration
|
|
pkgversion=${line#*=}
|
|
echo "#define QEMU_PKGVERSION \"$pkgversion\""
|
|
;;
|
|
ARCH=*) # configuration
|
|
arch=${line#*=}
|
|
arch_name=`echo $arch | tr '[:lower:]' '[:upper:]'`
|
|
echo "#define HOST_$arch_name 1"
|
|
;;
|
|
CONFIG_AUDIO_DRIVERS=*)
|
|
drivers=${line#*=}
|
|
echo "#define CONFIG_AUDIO_DRIVERS \\"
|
|
for drv in $drivers; do
|
|
echo " &${drv}_audio_driver,\\"
|
|
done
|
|
echo ""
|
|
;;
|
|
CONFIG_BDRV_WHITELIST=*)
|
|
echo "#define CONFIG_BDRV_WHITELIST \\"
|
|
for drv in ${line#*=}; do
|
|
echo " \"${drv}\",\\"
|
|
done
|
|
echo " NULL"
|
|
;;
|
|
CONFIG_*=y) # configuration
|
|
name=${line%=*}
|
|
echo "#define $name 1"
|
|
;;
|
|
CONFIG_*=*) # configuration
|
|
name=${line%=*}
|
|
value=${line#*=}
|
|
echo "#define $name $value"
|
|
;;
|
|
ARCH=*) # configuration
|
|
arch=${line#*=}
|
|
arch_name=`echo $arch | tr '[:lower:]' '[:upper:]'`
|
|
echo "#define HOST_$arch_name 1"
|
|
;;
|
|
HOST_USB=*)
|
|
# do nothing
|
|
;;
|
|
HOST_CC=*)
|
|
# do nothing
|
|
;;
|
|
HOST_*=y) # configuration
|
|
name=${line%=*}
|
|
echo "#define $name 1"
|
|
;;
|
|
HOST_*=*) # configuration
|
|
name=${line%=*}
|
|
value=${line#*=}
|
|
echo "#define $name $value"
|
|
;;
|
|
TARGET_ARCH=*) # configuration
|
|
target_arch=${line#*=}
|
|
echo "#define TARGET_ARCH \"$target_arch\""
|
|
;;
|
|
TARGET_BASE_ARCH=*) # configuration
|
|
target_base_arch=${line#*=}
|
|
if [ "$target_base_arch" != "$target_arch" ]; then
|
|
base_arch_name=`echo $target_base_arch | tr '[:lower:]' '[:upper:]'`
|
|
echo "#define TARGET_$base_arch_name 1"
|
|
fi
|
|
;;
|
|
TARGET_XML_FILES=*)
|
|
# do nothing
|
|
;;
|
|
TARGET_ABI_DIR=*)
|
|
# do nothing
|
|
;;
|
|
TARGET_ARCH2=*)
|
|
# do nothing
|
|
;;
|
|
TARGET_DIRS=*)
|
|
# do nothing
|
|
;;
|
|
TARGET_*=y) # configuration
|
|
name=${line%=*}
|
|
echo "#define $name 1"
|
|
;;
|
|
TARGET_*=*) # configuration
|
|
name=${line%=*}
|
|
value=${line#*=}
|
|
echo "#define $name $value"
|
|
;;
|
|
esac
|
|
|
|
done # read
|